during the last few weeks I’ve been working on Fuel, an open source deployment and management tool for OpenStack.
In this blog post I’m going to present Fuel, how it works, what it offers and I’m also going to talk about a few personal thoughts derived from my personal experience with Fuel.
What’s Openstack and what’s Fuel?
OpenStack is a free and open-source software platform for cloud computing. The software platform consists of interrelated components that control hardware pools of computing, storage, and networking resources throughout a data center. It basically allows the end user to spawn Virtual Machines on-demand. The image here below gives an overview of its architecture:
Fuel, on the other hand, is a tool developed by Mirantis that provides a faster, less complicated and nicer way to deploy OpenStack environments. When installing a software plaform like OpenStack a lot of complicated and repetitive task have to be made, for example: the object storage, the identity manager, the networking services, the compute service etc. have to be configured and deployed. This makes deploying OpenStack a nightmare for many user. In order to solve this problem and also have a more scalable infrastructure, the Fuel software has been developed.
How does Fuel work?
Fuel is composed of a CentOS image which is called the Fuel Master. Iside this CentOS image there are 11 docker container (EDIT: Fuel v9 doesn’t use containers anymore), each one running a dedicated service such as: keystone for autenthication, niginx for the web GUI, postgres for the database etc. Thanks to these containers the Fuel Master, after having configured the correct networks, is able to add and remove “nodes” on the fly and without having to reconfigure the OpenStack environment. These “nodes” are of three types, Controller, Storage and Compute.
Controller nodes, which handles the orchestration activities and provides the OpenStack dashboard and the external API access. Compute nodes are used to create, manage and terminate Virtual Machines. And finally Storage nodes which are used to store the Virtual Machine data.
As mentioned before another Fuel functionality is the Network configuration. A total of four network have to be defined and configured in the Fuel Master. One is the Public network, which allows inbound connections to VMs (Controllers and Tenant VMs) from external networks (e.g., the Internet) as well as outbound connections from VMs to the external networks. The second one is the Storage network which is used to provide storage services such as replication traffic or migrating a disk. The third network is the Management which handles all nova-api and other api traffic. Thanks to this separation one can be sure that when doing operation on a VM the other traffic isn’t affected. Finally, the last one is the Private network which is used for communication between each tenant’s VMs.
This is the first part of a series of posts about Fuel. Stay tuned for the next parts!