What Are The Projects That Make Up OpenStack?

Projects are the tools in OpenStack that handle the core cloud computing components of Compute, Identity, Storage, Networking, and Image Services. Each project is responsible for automating some part of your cloud infrastructure, and you have various project options for each function, ex: for storage, you can use Swift, Cinder or Manila.

Each project works with well defined REST APIs that allow users and applications to communicate with OpenStack and allow for inter-project communication. While OpenStack projects were developed independently and do not need all other projects to function properly, they can work together to optimize your cloud. There are over 45 projects that can be added to your cloud, but most people focus on the core projects that create the functionality of your cloud.

Before deciding which project you should include in your cloud, you must first understand the options you have for each function and their differences, to know which will be best suited for your use case.

In this blog post, I will discuss some OpenStack projects, what purpose they can serve in your cloud and what other projects you will need to use them. I will also note what can be considered each project’s AWS “similar” service and here I use the word similar very loosely. If you use some AWS services this is to help you understand what OpenStack projects you can explore as alternatives for your use case but they are not identical software.

OpenStack, But Easy

Launch a Cloud in 45 Seconds >>

What Are The Core OpenStack Projects?

OpenStack core project cinder

CINDER: provides block storage service, it is responsible for virtualizing block storage devices and provides storage volumes for your compute resources. This OpenStack project allows you to access resources without knowing where the storage is actually deployed or on what type of device it’s on. Cinder achieves this by using  either reverence implementation or plugin drivers for other storage devices.

Cinder Block storage is similar to AWS EBS.

 If you want to use Cinder, you will also need Keystone.

OpenStack core project keystone

KEYSTONE: is used for client authentication, authorization and service discovery. Keystone supports various authentication protocols such as LDAP, OAuth, OpenID Connect, SAML and SQL for authentication and authorization. It is use as the identity service in OpenStack. Many applications depend on Keystone, so if you’re building an OpenStack cloud, it’s likely you will need this project.
Keystone is similar to AWS IAM (Identity and Access Management).

OpenStack core project glance

GLANCE: provides the image management service in your cloud. It grants you the ability to discover, register, and retrieve virtual machines, docker and bare metal images.
Glance is similar to AWS Amazon Machine Images.  

OpenStack core project neutron

NEUTRON: is responsible for delivering networking-as-a-service in the cloud. It is an SDN networking project. Neutron is used to provision virtual networks, subnets, ports, routers and a variety of advanced networking services. 
Neutron is similar to AWS Networking.

If you want to use Neutron, you will also need Keystone.

OpenStack core project nova

NOVA: provides you with quick access to compute resources, this includes bare metal, virtual machines, and containers. Nova also allows you to provision and manage your virtual machines (instances). Most OpenStack clouds include the Nova project because it grants you access to massively scalable on-demand  compute resources. Nova uses the services of the networking project Neutron to provision a network port for your instance. What makes Nova extra special is that it was one of the first two OpenStack projects to be developed and released. Nova was NASA’s contribution to the founding of OpenStack.
A Nova Instance similar to AWS EC2.

If you would like to use Nova, you will also need: Glance, Keystone, Neutron and Placement.

OpenStack core project swift

SWIFT: is an object storage service that is highly available, distributed, and scalable. Swift is the project you would turn to if you want to store unconstructed data that can grow indefinitely because it allows you to store data efficiently, safely and cheaply.  This project was developed by RackSpace and is one of the two projects that OpenStack was launched with. Swift is similar to AWS S3. Learn more about AWS S3 alternatives.

What Are Other OpenStack Projects I Should Know About?

There are two projects most users consider when deciding what dashboard they want to use with their OpenStack cloud, these are Horizon and Skyline. These would take the place of an AWS console in your cloud.

 

OpenStack core project horizon

HORIZON: a web based dashboard API client. Horizon grants you a web based user interface to other OpenStack projects such as Nova, Swift, Keystone, etc. It provides support for all core OpenStack projects, allows you to add new components, and it is simple and easy to navigate which  creates an interface that users are inclined to use. At OpenMetal, we use Horizon as the dashboard in our clouds. And as someone who started using it with limited cloud experience, I can attest to it being intuitive and user friendly.

To use Horizon, you will need Keystone.

OpenStack project skyline

SKYLINE: an OpenStack Dashboard which has a modern technology stack and ecology. This makes it easier for developers to maintain and users to operate.

To use Skyline, you will need Keystone.

Apart from the core and dashboard projects, there are many other projects that you can use to develop and customize your cloud. Here are some of the projects I have learned about so far through my work with OpenMetal. These are listed in alphabetical order, not in order of importance.

OpenStack project aodh

AODH: your alarm, often used together with Ceilometer to trigger warnings based on preconfigured parameters.

To use Aodh, you will also need Keystone. 

OpenStack project barbican

BARBICAN: is the OpenStack Key Manager Service. It provides secure storage, provisioning and management of classified data.
If you want to use Barbican,  you will also need KeyStone.

OpenStack project ceilometer

CEILOMETER: is used to collect usage samples and data from the various cloud resources (instances, volumes, networks, etc) and stores them in a time series database. These usage samples can be used to create various views and aid in the resolution of some telemetry use cases. Ceilometer is usually used for usage accounting, (chargebacks and billing purposes) and to scale your infrastructure up and down.

OpenStack project designate

DESIGNATE: is a multi-tenant DNS-as-a-service. It provides a REST API with integrated Keystone authentication and can be configured to auto-generate records based on Neutron and Nova actions. 
Designated can be thought of as similar to AWS Route 53.

 

EC2 API: provides you with standalone EC2 API service which allows you to implement VPC API and create standalone service for EC2 API support. This is not a replacement for Nova EC2 API, therefore it is installed in a different port. EC2 API has two services: EC2 API service that accepts and responds to end users EC2 and VPC API calls, and EC2 API metadata service that provides OpenStack metadata to API servers.

OpenStack project freezer

FREEZER: is a multi operating system and can provide efficient and flexible back ups. You can use Freezer for distributed back up, restore and disaster recovery as a service. It can provide block based backups, file based incremental backup, point-in-time actions, job synchronizations and much more.
To use Freezer, you will also need Keystone.

OpenStack project heat

HEAT: provides OpenStack-native REST API, CloudFormation-compatible Query API and autoscaling service that integrates with the OpenStack Telemetry services. You can use Heat to orchestrate the infrastructure resources of your cloud applications based on templates you create in the form of text files that can be treated like code.
Heat with Scaling can be compared to AWS Scaling. 

If you want to use Heat, you will also need Keystone
.

OpenStack project ironic

IRONIC: provides bare metal as-a-service. It allows you to provision bare metal, not virtual machines. You can integrate Ironic with Nova and Neutron, this integration will allow you to provision both virtual machines and physical machines using Nova.

OpenStack project magnum

MAGNUM: is used to deploy container orchestration engines such as Kubernetes, Docker Swarm and Apache Mesos by making them available as first class resources in OpenStack. Magnum uses Heat to orchestrate an OS image which contains Docker and Kubernetes and runs that image in either a virtual machine or bare metal in a cluster configuration.

Magnum can be thought of as  AWS ECS dockers.

To use Magnum, you will also need Glance, Heat, Keystone, Neutron and Nova.

OpenStack project manila

MANILA: provides a shared file system service. Manila was derived from the Cinder project and provides a canonical storage provisioning control plane.   Manila’s drivers can support different storage protocols such as NFS, CIFS, HDFS, etc. Manila can be used to scale your workloads, isolate processes to avoid domino effect failures, and diagnose, debug and rectify failures.

OpenStack project maskari

MASAKARI: automatically recovers failed Instances. This allows it to provide Instances High Availability Service for OpenStack clouds. Masakari can recover KVM-based virtual machines from failure events and provide an APR service to manage and control the automated rescue mechanism. This protects your cloud from the impact of failures such as virtual machine process down, provisioning process down and nova-compute host failure.
In order to use Masakari, you will need Keystone and Nova.

OpenStack project murano

MURANO: allows you to publish various cloud ready applications in a browsable catalog. This allows even inexperienced cloud users to use the catalog to compose reliable application environments.
To use Murano, you will also need Heat and Keystone.

OpenStack project octavia

OCTAVIA: is the operator-scale load balancing solution that was designed to work with OpenStack. Octavia is used to manage a fleet of virtual machines, containers or bare metal servers which it can spin up on demand. Octavia’s ability to spin up resources on-demand is what sets it apart from other load balancing solutions that you may consider for your cloud.
If you want to use Octavia, you will also need Glance, Keystone, Neutron and Nova.

OpenStack project placement

PLACEMENT: provides an HTTP API for tracking your cloud resource inventory and usage. This helps other services in your cloud effectively manage and allocate their resources.

OpenStack project rally

RALLY: is used to automate the measuring and profiling, so you can detect how code changes will affect your cloud’s performance. This is an amazing tool for administrators, because it quickly notifies them if there will be a misconfiguration of services and reduce errors resulting from upgrades. 

OpenStack project sahara

SAHARA: is used to provision data processing frameworks using OpenStack APIs. Sahara provides you with means to provision Hadoop, Spark and Storm clusters by specifying configuration parameters, such as the framework version, cluster topology, node hardware details and more. This OpenStack project allows for fast provisioning of data processing clusters, utilization of unused compute power and Analytics-as-a-service for ad-hoc or bursty analytic workloads.

OpenStack project solum

SOLUM: you can use Solum to make your cloud services easier to consume and integrate with your applications development process. You can achieve this by automating the source-to-image process and simplifying app-centric deployments.
To use Solum you will need  Heat and Keystone.

OpenStack project trove

TROVE: provides database-as-a-service. You can use Trove to quickly and easily use features of a relational database without the burden of handling complex administrative tasks. With Trove you can provision and manage multiple database instances.
Trove provides a similar function to AWS RDS for your relational database needs.

OpenStack project zun

ZUN: you can use Zun to create and manage containerized workloads with either tools or API directly.  Zun provides you with an OpenStack API for launching and managing containers that are supported by different technologies. To manage your containers with Zun, you will want to integrate it with other OpenStack projects such as Neutron (for network), Kuryr (to bridge the container frameworks networking models) and Cinder (for volume). This will allow you to use APIs to manage your containers without the complexity of different container technologies.
If you want to use Zun you will also need  Keystone, Kuryr and Neutron. Zun can also be integrated with Cinder, Glance and Heat.

Closing Thoughts On OpenStack Projects

As you can see, there are many OpenStack projects that you can use to build a cloud that can handle your use case and workloads. This is not even a complete list of all OpenStack projects available for use. When you launch an OpenMetal cloud, you’re getting an On-Demand Private OpenStack cloud preloaded: Aodh, Ceilometer, Cinder, Glance, Gnocchi, HAProxy, Heat, Horizon, Keystone, Magnum, Neutron, Nova, Octavia, Rabbitmq and Watcher. You can also add Designate, Barbican and Masakari after you’ve deployed your cloud. Our clouds are backed by Ceph, utilize Kolla Ansible, Docker and provide Kubernetes integration.

Still have questions?     Chat With Us

As you can see, while OpenStack projects work well together, they also work with other popular software because the open source community continually work on ways to optimize OpenStack and ensure that it is seamless to use other open source software that you may need.

Now that we have covered What Is OpenStack and What Are The Projects That Make Up OpenStack, next we will cover the benefits of using an OpenStack cloud.

Read More on the OpenMetal Blog

Demystifying Open Source Cloud: What You Need To Know

If you’re searching for a solution to take full control of your infrastructure, you might have come across the term “open source cloud.” But what exactly is it? In this comprehensive blog, we’ll dive deep into the concept of open source clouds and explore why  …Read More

OpenStack Learner’s Guide

OpenStack is bustling with life, boasting an impressive production of over 40 cores. As a result, the demand for knowledgeable OpenStack engineers has skyrocketed. Are you ready to take charge of your OpenStack training? Look no further!  Dive into this treasure trove of knowledge ….Read More

What Is OpenStack?

OpenStack is an open source platform composed of several independent components. These components interoperate with each other through Application Programming Interface (API). These components are complementary but do not depend on all other components …. Read More

Test Drive

For eligible organizations, individuals, and Open Source Partners, Private Cloud Cores are free to trial. Apply today to qualify.

Apply Now

Subscribe

Join our community! Subscribe to our newsletter to get the latest company news, product releases, updates from partners, and more.

Subscribe