Many cloud environments run on top of the OpenStack platform. Originally created by a joint project between hosting provider Rackspace and NASA, it was first released in mid-2010. Today, OpenStack is an open-source environment providing infrastructure as a service, allowing companies to either create clouds or use them--and to do it using off-the-shelf hardware.
The Parts of OpenStack
OpenStack sits between the user and the underlying hardware that drives the cloud implementation. It handles managing access to the system's computational and network resources by providing a layer on which applications can run. It is made up of multiple programs that each have lives of their own and can be used -- or not used -- as desired. The pieces of OpenStack generally fit into one or more of three basic categories -- network, storage and computation management -- or serve as dashboard tools to help users control the underlying system.
- OpenStack Glance. Glance weds all three plus one parts of the OpenStack system to manage virtual machines. It doesn't actually manage the process of parceling out computational resources but, instead, helps system administrators to find and manage the VMs running on the OpenStack cloud system.
- OpenStack Heat. Heat serves as an abstraction layer for templates. Templates are files that define applications that run on the cloud and a re designed to be easily created and read by system administrators, but managed by the system.
- OpenStack Horizon. Horizon is OpenStack's dashboard. It includes control tools, monitoring tools and the ability to help system administrators troubleshoot issues.
- OpenStack Nova. Nova works directly with OpenStack's computational management functions to run virtual servers and allow them to be created and scaled on an as-needed basis.
- OpenStack Swift. Swift manages storage on the cloud system. It supports a wide range of file types ranging from databases to BLOBs and other content.
The OpenStack Tradeoff
OpenStack is not a simple piece of software. Its flexibility comes with a downside: the need to heavily customize it. As such, most IT environments that use OpenStack have to maintain system administration staff that can work with it and continually tweak it. Furthermore, while it has been around for a while now, it is still not as robust as other operating systems. This can require having developers add functions as well as design software to work inside OpenStack while also doing system-level programming to add features between the stack and the hardware.
The upside of OpenStack is relatively straightforward. Installing it can save significant money, even with its costs. Since it allows organizations to more effectively use their data center infrastructure, they are able to make do with fewer servers, fewer racks, less space and less people to manage it. In the long run, these benefits more than outweigh the costs of creating and managing an OpenStack implementation.