The OpenStack project arose at the initiative of two manufacturers and combined their products - the Rackspace object storage and the NASA hypervisor management system. "OpenStack is designed to help organizations deliver cloud computing resources running on standard hardware," the vendors say. In this article we will try to figure out whether this is in fact the case.
Openstack today
The first release of OpenStack was released in October 2010. So, Rackspace became one of the closest competitors of another IaaS cloud provider, Amazon Web Services (AWS), which at that time was losing ground. In fact, OpenStack is a copy of AWS: many services and processes on these platforms are the same and even compatible with each other.
IaaS: OpenStack vs. Amazon Web Services
')
OpenStack consists of several modules that interact with each other through a directory of services. Today the platform includes:
- hypervisor management tool (Nova)
- object storage (Swift)
- storage of images of virtual machines (Glance)
- Web Based Management (Horizon)
- directory of users and services (Keychain)
- network infrastructure management tool (Neutron)
- block storage (cinder)
- cloud application orchestrator (Heat)
- resource accounting tool (Ceilometer)
- means of providing the database as a service.
In the near future, it is planned to implement such features as the provision of physical equipment on demand, as well as the deployment of Hadoop clusters.
About myths
Is OpenStack the technology of the future, mainstream? How to know. Perhaps this is the same unexplored Klondike as Linux of the early 90s, when few people knew about it and very few saw it. OpenStack has great potential, but today it is difficult to call it a finished product. And that's why.
The functionality of the solution is constantly transformed, supplemented and the documentation does not always keep pace with these changes. Often in the new release there are opportunities that are not reflected in the instructions for the product.
Troubleshooting is very difficult, as usually, in response to any errors, OpenStack produces several kilobytes of spectrays. We have to spend a lot of time and effort just to determine the cause of the failure.
The implementation of OpenStack requires serious work of programmers. If you are going to sell cloud services based on this product (even if it is part of one of its own companies), the functionality it contains will not be enough. For example, you cannot limit the network traffic of one virtual machine so that it does not interfere with another. The basic features of OpenStack do not allow you to smoothly regulate the resources consumed and even migrate the virtual machine to another host. There is no accessibility monitoring tool either. Finally, a good example of how OpenStack is ready as a product is the procedure for adding and removing nodes with hypervisors. They are added by a specific procedure, but there is no special command to delete the compute node. You have to go to a special MySQL table and do it manually:
mysql> delete from compute_nodes where hypervisor_hostname='nova4'; Query OK, 1 row affected (0.00 sec) mysql> delete from services where host='nova4'; Query OK, 1 row affected (0.00 sec) mysql>
Gratis, that is for nothing? Download OpenStack you can absolutely free. However, due to the unavailability of the product, its “free of charge” results in serious labor costs in terms of refinement.
Developed by a free community? On the OpenStack website you can see the statistics: who and to what extent was involved in the development of the solution code.
In the history of OpenStack
More than others, the company Rackspace, earning money on providing infrastructure as a service to users, distinguished. Next are Red Hat, which sells, implements and supports OpenStack solutions; then HP and IBM, providing cloud services based on OpenStack. As you can see, the share of free programmers-enthusiasts (the OpenStack Foundation) is minimal, and in terms of the number of users, this is only 5–10 people for all 4 years.
Juno release (October 2014)
If you look at the last half of 2014, the picture has changed somewhat, but the leaders have remained almost the same. Plus, there are new players - Mirantis, selling only OpenStack (installations and support), as well as SUSE. Closing the list of manufacturers, each of which has its own goals. NEC provides support for its OpenStack hardware. VMware tries to protect its ecosystem by “leading” the implementation of OpenStack compatibility with ESXi.
With OpenStack, will I have my Amazon? Is this technology a key success factor for a cloud provider? No, it's not. This is clearly seen in the Gartner magic quadrant. The vast majority of companies use VMware, KVM is a bit less popular. But the Xen platform was favored by both IBM, Fujitsu and GoGrid, as well as the clear leader of Amazon. It is clear that the matter is not at all in the hypervisor.
Can traditional virtual machines be replaced with cloud ones? The features of the two approaches to virtualization are reflected in the comparison table (thanks to Red Hat for it).
Traditional VMs (ESXi, RHEV) | Cloud VMs (OpenStack, AWS) |
---|
Large. Data is stored inside the VM | Little ones. Data is stored outside the VM. |
1 application - 1 VM | 1 application - many VMs |
VM life cycle - years | The life cycle of a VM is from hours to months (applications are not inside the VM, but outside) |
You can increase this or that VM with the application only to the size of its host. | By increasing / decreasing the number of users, you can dynamically create / delete VMs. |
Vertical scaling (VM performance increases) | Horizontal scaling (increasing the number of VM) |
The application is inside and will not survive VM crash, i.e. it is important to ensure resiliency | In the event of a VM crash, the cloud application creates it from scratch, remaining in working condition |
SLA requires application availability through Live Migration, HA, and other similar features. | SLA requires the ability to add / remove VM instances to maintain application availability |
Exploitation. OpenStack has no means of providing high availability and no specific plans for its implementation. Backup systems for VMs also do not. If the virtualization server has failed, then we have lost the virtual machines - we will have to create new ones (and this is normal).
It is advertised that OpenStack works in all hypervisors, however it is not. The main management system for which the product is being developed and tested is KVM. The rest are either not fully tested (for example, Microsoft Hyper-V, VMware hypervisor, Citrix XenServer 6.2), or not tested at all (Baremetal, Docker, LXC via libvirt, Xen via libvirt) and their work in OpenStack cannot be guaranteed. In the latter case, when you start it, you will see a message like: "It can not be ensured."
The possibility of live migration (Live Migration), i.e. transferring VMs from one physical server to another without stopping services, is disabled in OpenStack by default. Despite the fact that this functionality is supported by the main hypervisor - KVM.
OpenStack application
Despite the indicated features and disadvantages, the OpenStack platform can be used for various tasks. One option: you already have some kind of cloud environment (for example, the same Amazon or Rackspace), but you want to move, deploying cloud services at your place.
Another scenario: you are planning to become a cloud provider, you have a start-up, enough finance, programmers, a desire to work, and most importantly, some know-how that you deploy in this cloud environment. Those. you're not going to do a second Google or Facebook, but something completely new. In this case, OpenStack is the product on the basis of which you can further develop.
If there is a regular need for testing or need a cloud platform for developing a new application, it also makes sense to pay attention to OpenStack. Alternatively, you can use only a separate OpenStack module. For example, using the work of several programmers, write and implement something like a Swift-based corporate Dropbox.