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.

The development

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.

Components

OpenStack is based on the modular architecture.

Nova

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

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

Cinder provides block storage systems. It manages their creation, assignment and disconnection from servers.

Keystone

Keystone is a central repository of users which is mapped to services they can access.

Other components

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.

The advantages of using OpenStack

  • Quick innovations. Orchestrations and self-service options contained in OpenStack allow developers a faster and better access to resources. This reduces the time of development and testing, and there is more space for experiments.
  • Faster market entry. Due to the rapid deployment of IT resources, end-users don’t have to wait days or weeks for the use of network services and applications.
  • Maximum scalability and use of resources. Although OpenStack is not as scalable as public clouds, it offers a high degree of scalability.
  • Simple fulfilment of regulatory requirements. It is a private cloud system, so it is easy to comply with regulatory requirements.

The disadvantages of using OpenStack

  • Longer implementation period. It is quite hard to learn how to use OpenStack. Introduction into the company may take longer, as the implementation is complex.
  • Missing documentation. OpenStack doesn’t have accurate and comprehensive documentation.