OpenStack is an open-source platform for cloud solutions. This platform is usually deployed in the IaaS form (infrastructure-as-a-service), where virtual servers and other resources are mediated to customers.
The software platform contains interconnected components that control different hardware sources from different suppliers for processing, storage and network resources through the data centre. Users can control the platform though the web dashboard, a command line tool or using RESTful Services.
OpenStack originally started in 2010 as a joint project of Rackspace Hosting and NASA. It is currently managed by the Open Stack Foundation, a non-profit organisation founded to promote this software and its community. More than 500 companies have been involved in the project.
OpenStack community is working together in a six-month release cycle with frequent development milestones.
During the planning of each release, the community meets at the OpenStack Design summit to facilitate developers’ cooperation and gather plans. These summits are part of the OpenStack conference.
OpenStack is based on the modular architecture.
Nova is a major part of the IaaS system. It is designed to manage and automate computer resources groups and can function with available virtualisation technologies or, for example, with the HPC configuration. Nova is written in Python and uses a wide range of external libraries, for example Eventlet, Kombu or SQLAlchemy. Architecture is designed to be horizontally scalable.
With widespread integration into corporate infrastructure, it is increasingly important to monitor the performance of Nova.
Neutron is a network and IP addresses management system. It ensures that the network isn’t a bottleneck and gives users the possibility to set up the network despite the configuration.
Neutron offers network models for different applications or user groups. Standard models include flat models or VLANs that separate server from the traffic. Neutron manages IP addresses which allows the dynamic transfer of the traffic to any source of the IT infrastructure, so that users can be redirected in the case of failure or during the maintenance.
Cinder provides block storage systems. It manages their creation, assignment and disconnection from servers.
Keystone is a central repository of users which is mapped to services they can access.
Other OpenStack’s components include Ceilometer (for telemetry), Trove (for databases), Sahara, Ironic, Zaqar (for messaging), Manila (shared files system), Designate (DNS), Searchlight (for searching), Barbican (key management), Magnum (container orchestration), Vitrage and Aodh.