Open Stack is a free and open software platform for cloud computing. Cloud computing can be defined as a shared pool of configurable computer system resources and services that can be rapidly provided and scaled with minimum management effort over the internet or private network.
Cloud computing allows three very basic service models to share the resources and services are listed below:
- Infrastructure as a Services (IaaS)
- Platform as a Service (PaaS)
- Software as a Service (Saas)
We will discuss about these in details in some other post.
Open stack is capable to provide all above service models, but in practice it is mostly deployed with Infrastructure as a Services (IaaS), where Virtual Machines (VMs) and other resources (User Interface, Storage, Compute and Monitoring) are made available to Users. The Open stack platform is consists of interrelated components that can control diverse, multi-vendor hardware pools of computing, storage and networking resources throughout a data center. Open stack allow management through a web-based dashboard or through CLI commands or RESTful web services.
Open Stack Summary:
- Born on: 21 October 2010
- First Release Name : Austin
- Service offer with first release : Compute -Nova, Storage – Swift
- Coding Language: Python
- OS Requirement: Cross Platform
- Open Component : 40+
- Open Source Code Repo: git.openstack.org
- Website: www.openstack.org
Open Stack components:
Open stack is a modular architecture to provides different IaaS services with different components with various codes names. Based on the latest release named Rocky there are about 40 component that open stack have. We have explained here the major ones.
- Compute (Nova): OpenStack Compute (Nova) is a cloud computing fabric controller, which is the main part of an IaaS system. It is designed to manage and automate pools of computer resources and can work with widely available virtualization technologies, as well as bare metal and high-performance computing (HPC) configurations.
- Networking (Neutron): OpenStack Networking (Neutron) is a system for managing networks and IP addresses. OpenStack Networking ensures the network is not a bottleneck or limiting factor in a cloud deployment, and gives users self-service ability, even over network configurations.
- Block storage (Cinder): OpenStack Block Storage (Cinder) provides persistent block-level storage devices for use with OpenStack compute instances. The block storage system manages the creation, attaching and detaching of the block devices to servers. Block storage volumes are fully integrated into OpenStack Compute and the Dashboard allowing for cloud users to manage their own storage needs.
- Identity (Keystone): OpenStack Identity (Keystone) provides a central directory of users mapped to the OpenStack services they can access. It acts as a common authentication system across the cloud operating system and can integrate with existing backend directory services.
- Image (Glance): OpenStack Image (Glance) provides discovery, registration, and delivery services for disk and server images. Stored images can be used as a template. It can also be used to store and catalog an unlimited number of backups. The Image Service can store disk and server images in a variety of back-ends, including Swift. The Image Service API provides a standard REST interface for querying information about disk images and lets clients stream the images to new servers.
- Object storage (Swift): OpenStack Object Storage (Swift) is a scalable redundant storage system. Objects and files are written to multiple disk drives spread throughout servers in the data center, with the OpenStack software responsible for ensuring data replication and integrity across the cluster. Storage clusters scale horizontally simply by adding new servers. Should a server or hard drive fail, OpenStack replicates its content from other active nodes to new locations in the cluster. Because OpenStack uses software logic to ensure data replication and distribution across different devices, inexpensive commodity hard drives and servers can be used.
- Dashboard (Horizon): OpenStack Dashboard (Horizon) provides administrators and users with a graphical interface to access, provision, and automate deployment of cloud-based resources. The design accommodates third party products and services, such as billing, monitoring, and additional management tools. The dashboard is also brand-able for service providers and other commercial vendors who want to make use of it. The dashboard is one of several ways users can interact with OpenStack resources.
- Orchestration (Heat): Heat is a service to orchestrate multiple composite cloud applications using templates, through both an OpenStack-native REST API and a CloudFormation-compatible Query API.
- Workflow (Mistral): Mistral is a service that manages workflows. User typically writes a workflow using workflow language based on YAML and uploads the workflow definition to Mistral via its REST API. Then user can start this workflow manually via the same API or configure a trigger to start the workflow on some event.
- Telemetry (Ceilometer): OpenStack Telemetry (Ceilometer) provides a Single Point Of Contact for billing systems, providing all the counters they need to establish customer billing, across all current and future OpenStack components. The delivery of counters is traceable and auditable, the counters must be easily extensible to support new projects, and agents doing data collections should be independent of the overall system.
- Database (Trove): Trove is a database-as-a-service provisioning relational and a non relational database engine.
- Elastic map reduce (Sahara): Sahara is a component to easily and rapidly provision Hadoop clusters. Users will specify several parameters like the Hadoop version number, the cluster topology type, node flavor details (defining disk space, CPU and RAM settings), and others. After a user provides all of the parameters, Sahara deploys the cluster in a few minutes. Sahara also provides means to scale a pre-existing Hadoop cluster by adding and removing worker nodes on demand.
- Bare metal (Ironic): Ironic is an OpenStack project that provisions bare metal machines instead of virtual machines. It was initially forked from the Nova Bare-metal driver and has evolved into a separate project. It is best thought of as a bare-metal hyper-visor API and a set of plugins that interact with the bare-metal hyper-visors. By default, it will use Pre-boot Execution Environment and Intelligent Platform Management Interface in concert to provision and turn on and off machines, but Ironic supports and can be extended with vendor-specific plugins to implement additional functionality.
- Messaging (Zaqar): Zaqar is a multi-tenant cloud messaging service for Web developers. The service features a fully RESTful API, which developers can use to send messages between various components of their SaaS and mobile applications by using a variety of communication patterns. Underlying this API is an efficient messaging engine designed with scalability and security in mind. Other OpenStack components can integrate with Zaqar to surface events to end users and to communicate with guest agents that run in the “over-cloud” layer.
- OpenStack Shared File System (Manila) provides an open API to manage shares in a vendor agnostic framework. Standard primitives include ability to create, delete, and give/deny access to a share and can be used standalone or in a variety of different network environments.
- DNS (Designate): Designate is a multi-tenant REST API for managing DNS. This component provides DNS as a Service and is compatible with many backend technologies, including PowerDNS and BIND. It doesn’t provide a DNS service as such as its purpose is to interface with existing DNS servers to manage DNS zones on a per tenant basis.
- Search (Searchlight): Searchlight provides advanced and consistent search capabilities across various OpenStack cloud services. It accomplishes this by offloading user search queries from other OpenStack API servers by indexing their data into ElasticSearch. Searchlight is being integrated into Horizon and also provides a Command-line interface.
- Key manager (Barbican): Barbican is a REST API designed for the secure storage, provisioning and management of secrets. It is aimed at being useful for all environments, including large ephemeral Clouds.
- Container orchestration (Magnum): Magnum is an OpenStack API service developed by the OpenStack Containers Team making container orchestration engines such as Docker Swarm, Kubernetes, and Apache Mesos 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 virtual machines or bare metal in a cluster configuration.
- Root Cause Analysis (Vitrage): Vitrage is the OpenStack RCA (Root Cause Analysis) service for organizing, analyzing and expanding OpenStack alarms & events, yielding insights regarding the root cause of problems and deducing their existence before they are directly detected.
- Rule-based alarm actions (Aodh): This alarming service enables the ability to trigger actions based on defined rules against metric or event data collected by Ceilometer or Gnocchi.
Open Stack Deployment Schemes:
As the OpenStack project has matured, vendors have proved multiple ways for deploying OpenStack for the customers:
- OpenStack-based Public Cloud: In this model, a vendor provides a public cloud computing system based on the OpenStack project.
- On-premises distribution : In this model, a customer downloads and installs an OpenStack distribution within their internal network.
- OpenStack-based Private Cloud: In this, A vendor hosts an OpenStack-based private cloud: including the underlying hardware and the OpenStack software.
- OpenStack-as-a-Service: Here, a vendor hosts OpenStack management software (without any hardware) as a service. Customers sign up for the service and pair it with their internal servers, storage and networks to get a fully operational private cloud.
- Appliance based OpenStack : Nebula was a vendor that sold appliances that could be plugged into a network which spawned an OpenStack deployment.
Open Stack Releases with Available Components:
|Release name||Release date||Included Component code names|
|Austin||21 October 2010||Nova, Swift|
|Bexar||3 February 2011||Nova, Glance, Swift|
|Cactus||15 April 2011||Nova, Glance, Swift|
|Diablo||22 September 2011||Nova, Glance, Swift|
|Essex||5 April 2012||Nova, Glance, Swift, Horizon, Keystone|
|Folsom||27 September 2012||Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder|
|Grizzly||4 April 2013||Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder|
|Havana||17 October 2013||Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer|
|Icehouse||17 April 2014||Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove|
|Juno||16 October 2014||Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara|
|Kilo||30 April 2015||Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic|
|Liberty||16 October 2015||Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight|
|Mitaka||7 April 2016||Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum|
|Newton||6 October 2016||Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum, aodh, cloudkitty, congress, freezer, mistral, monasca-api, monasca-log-api, murano, panko, senlin, solum, tacker, vitrage, Watcher|
|Ocata||22 February 2017||Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum, aodh, cloudkitty, congress, freezer, mistral, monasca-api, monasca-log-api, murano, panko, senlin, solum, tacker, vitrage, Watcher|
|Pike||30 August 2017||Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum, aodh, cloudkitty, congress, freezer, mistral, monasca-api, monasca-log-api, murano, panko, senlin, solum, tacker, vitrage, Watcher|
|Queens||28 February 2018||Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum, aodh, cloudkitty, congress, freezer, mistral, monasca-api, monasca-log-api, murano, panko, senlin, solum, tacker, vitrage, Watcher, blazar, ceilometer-powervm, karbor, octavia, storlets, tricircle, zun|
|Rocky||30 August 2018||aodh, barbican, blazar, ceilometer, cinder, cloudkitty, congress, cyborg, designate, ec2-api, glance, heat, horizon, ironic, karbor, keystone, magnum, manila, masakari, mistral, monasca-api, monasca-log-api, murano, neutron, nova, octavia, panko, qinling, sahara, senlin, solum, storlets, swift, tacker, tricircle, trove, vitrage, watcher, zaqar, zun|
- Open Stack Website
- Open Stack git