OpenStack is a Cloud operating system, modular, able to offer process and storage management services according to the IaaS (Infrastructure as a Service) model. It is a project born in 2010 from a collaboration between NASA and Rackspace Cloud, which owes its rapid growth to contributions from different fronts. On the one hand there is its totally open source nature: OpenStack is written in Python and uses several other free software; this has helped to ensure the support of a large community. On the other hand, a decisive boost to its development is due to the strong interest of large industrial companies such as HP, Cisco, Dell, AT&T and many others. Before going into the meanders of the Horizon dashboard, we briefly present the general overview of this project, with the aim of giving a broader vision of the topic. We will therefore deal with a description of the main modules that compose it, its architecture and functionality.
OpenStack modules
The following image is particularly indicative of OpenStack's purposes: it shows how the framework of the platform consists of three large functionalities (compute, network and storage), managed overall by a data center and ready to interact with the user through dashboards (a panel accessible via browser) or appropriate programming APIs. On the official website of the project you can find a considerably more detailed version, which shows the complexity of the platform.
The most important modules of Openstack are:
- Nova (Compute): the main module, which controls the entire platform. It is used to manage instances of virtual machines and internal communication systems. Its tasks are carried out through various specialized services, coordinated to collaborate. Among these, nova-schedule stands out, which deals with allocating instances on physical machines and, nova-compute, which communicates with the hypervisor installed on the physical machine to manage the various phases of an instance, from startup to shutdown;
- Neutron (Network): module specialized in network communication;
- Swift (Object Storage): distributed storage system designed for high reliability and scalability. Ideal for managing very large storage spaces to be dedicated to online storage or backup;
- Keystone (Identity): centralizes all the authentication and authorization problems for the various OpenStack modules;
- Glance (Image Service): virtual image management service. It consists of three main parts: a database (typically MySQL), a cataloging service for virtual images and a large set of APIs for interaction;
- Horizon (Dashboard): Web interface with which the user communicates;
- Cinder (Block Storage): manages block volumes for saving data;
- Octavia (Load Balancing): a scalable load balancer service.
The present guide is structured in the following sections: