In the modern world, continuous deployments are required for software production. With prominent industries around us, Openstack has a definite potential to stay. Openstack is an open source platform that lets you combine computing, networking and storage systems within a single platform. The cloud based system is well appreciated as it is designed for horizontal scalability. The effort it takes to manage cloud determines the scalability. To minimise operational costs, it is advisable to make use of automated deployment system. Among the myriad deployment tools available it is tough to select the ideal one for the requirements ahead. The project environment should be properly understood to select the best deployment tool. Here we discuss about Fuel, one of the popular deployment tools available.
Fuel is an open source tool used for deploying and managing Openstack. Initially it was a product of Mirantis, an open source cloud computing Company. It was first released in the year 2013. For cloud administrators, it provides a GUI for management and deployment of Openstack. It also provides a web user interface and command line interface for the management of Openstack environment. Fuel allows the management access to multiple open source environments and auto discovery of new nodes and their hardware.
The components of fuel:
Nailgun: It is an application that creates environments, change settings and configure networks. It is the head of the Fuel project. It makes use of Postgres to store data and AMQP (Advanced Message Queuing Protocol) to interact with the workers.
Astute: Astute executes instructions given by Nailgun, reads the information from AMQP and applies it accordingly on the managed nodes. It has to interact with Cobbler, Puppet and other components for the deployment.
Keystone: This is used for authenticating and authorising users.
Postgres: The database used for storing all the environment and configuration details.
Cobbler: It is a popular open source OS deployment tool, with which Astute interacts to create a profile for each managed node.
Puppet: The deployments are managed through Puppet, which are synced to all managed nodes and is executed by the Mcollective agent running on each node.
Mcollective agent: It allows performing tasks like hard drives cleaning, networking connectivity probing etc.
Rsync: Rsync runs as a daemon that helps to sync all the deployment scripts with managed nodes.
The Fuel architecture includes a Fuel master node and a Fuel slave node. Fuel master node is a server with Fuel application installed. It performs the configuration, provisioning and PXE booting of the Fuel slave nodes. It also handles assigning IP address to the slave nodes. A fuel slave node can be a controller, computer or a storage node. Fuel provides support for CentOS and Ubuntu. It can also be extended to support other distributions also.
Fuel is a relatively new deployment tool. However Openstack newbies often opt Fuel for its ease of use in getting the cloud up and running!!