OpenStack Cloud: Myths and Reality

    The OpenStack project arose on the initiative of two manufacturers and combined their products - the Rackspace object storage and the NASA hypervisor management system. “OpenStack aims to help organizations provide cloud computing resources running on standard hardware,” the vendors said. In this article we will try to figure out whether this is actually so.

    Openstack today


    The first release of OpenStack was released in October 2010. Thus, Rackspace became one of the closest competitors to another IaaS cloud provider - Amazon Web Services (AWS), which was losing ground at that time. In essence, 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 service catalog. Today the platform includes:
    • Hypervisor Management Tool (Nova)
    • object storage (Swift)
    • virtual machine image storage (Glance)
    • web-based management interface (Horizon)
    • Directory of users and services (Keychain)
    • Network Infrastructure Management Tool (Neutron)
    • block storage (Cinder)
    • Cloud Application Orchestrator (Heat)
    • resource metering tool (Ceilometer)
    • a means of providing a database as a service.

    In the near future it is planned to realize 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 so far as Linux in 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 functional of the solution is constantly being transformed, supplemented, and the documentation does not always keep up with these changes. Often in a new release there are opportunities that are not reflected in the instructions for the product.

    Troubleshooting is very difficult, because usually in response to any errors OpenStack produces a few kilobytes of stack trace. You have to spend a lot of time and effort only to determine the cause of the failure.

    Implementing OpenStack requires serious work by programmers. If you intend to sell cloud services based on this product (even if within the framework of one of your companies), the functionality available in it will be clearly insufficient. For example, you cannot restrict the network traffic of one virtual machine so that it does not interfere with others. The basic features of OpenStack do not allow smoothly adjusting the consumed resources and even migrate the virtual machine to another host. There are no availability monitoring tools 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 a 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? You can download OpenStack absolutely free. However, due to the unavailability of the product, its "free" results in serious labor costs in terms of refinement.

    Developed by the free community? On the OpenStack website you can see statistics: who and to what extent participated in the development of the solution code.

    Throughout OpenStack



    Rackspace was the most distinguished company, making money by providing users with infrastructure as a service. Next up is Red Hat, which sells, implements and supports OpenStack solutions; then HP and IBM, which provide OpenStack-based cloud services. As you can see, the share of free enthusiastic programmers (OpenStack Foundation) is minimal, and in terms of the number of users it 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 a little, but the leaders have remained almost the same. Plus, new players appeared - Mirantis, which sells only OpenStack (installations and support), as well as SUSE. The manufacturers close the list, each with its own goals. NEC provides support for its OpenStack hardware. VMware is trying to protect its ecosystem by "leading" the implementation of OpenStack compatibility with ESXi.

    Will I have my own Amazon with OpenStack? Is this technology a key success factor for the cloud provider? No, it's not. This is clearly seen in the Gartner magic quadrant. The vast majority of companies use VMware, a little less popular KVM. But the Xen platform was preferred by IBM, Fujitsu and GoGrid, as well as the clear leader of Amazon. It’s clear that this is not a hypervisor at all.



    Can traditional virtual machines be replaced with cloudy 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)
    Big ones. Data is stored inside the VMSmall ones. Data is stored outside the VM
    1 application - 1 VM 1 application - a lot of VM
    VM life cycle - years VM life cycle - from hours to months (applications are not inside the VM, but outside)
    You can increase a particular VM with the application only to the size of its hostWith an increase / decrease in the number of users, you can dynamically create / delete VMs
    Vertical scaling (increasing VM performance) Horizontal scaling (increasing the number of VMs)
    The application is inside and will not survive a VM crash, i.e. it is important to ensure fault toleranceIn the event of a VM failure, the cloud application creates it from scratch, while remaining operational
    SLA requires application availability through Live Migration, HA, and other similar functionality SLA requires the ability to add / remove VM instances to maintain application availability

    Exploitation. OpenStack does not have high availability tools or specific plans for its implementation. There is no backup system for VMs either. If the virtualization server fails, then we 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 this is not the case. The main management system for product development and testing is KVM. The rest are either not fully tested (for example, Microsoft Hyper-V, VMware hypervisors, Citrix XenServer 6.2), or not tested at all (Baremetal, Docker, LXC via libvirt, Xen via libvirt) and their operation in OpenStack cannot be guaranteed. In the latter case, at startup, you will see a message like: "The libvirt driver is not tested on xen / x86_64 by the OpenStack project and thus its quality can not be ensured."

    At the same time, the possibility of live migration (Live Migration), i.e. transferring VMs from one physical server to another without stopping services, is disabled by default in OpenStack. Despite the fact that this functionality is supported by the main hypervisor - KVM.

    OpenStack Application


    Despite the indicated features and shortcomings, the OpenStack platform can be used for various tasks. One of the options: you already have some kind of cloud environment (for example, the same Amazon or Rackspace), but you want to move by deploying cloud services at home.

    Another scenario: you plan to become a cloud provider, you have a startup, enough finance, programmers, a desire to work, and most importantly, some know-how that you will deploy in this cloud environment. Those. you're not going to make 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 you need a cloud platform to develop a new application, it also makes sense to pay attention to OpenStack. Alternatively, you can use only some separate OpenStack module. For example, using the work of several programmers, write and implement something like a corporate Dropbox based on Swift.

    Also popular now: