Understanding OpenStack's Success
At the time I got into the data storage industry, I was working with and developing RAID and JBOD (Just a Bunch Of Disks) controllers for 2 Gbit Fibre Channel Storage Area Networks (SAN). This was a time before "The Cloud". Things were different—so were our users. There was comfort in buying from a single source or single vendor. In an ideal world, it should all work together, harmoniously, right? And when things go awry, that single vendor should be able to solve every problem within that entire deployment.
That is why, enterprise companies typically bought from a single storage vendor and invested deeply in them. You either bought HP, Dell, EMC, Sun Microsystems or NetApp, which also was successfully carving a new market in Network Attached Storage (NAS). For example, once an EMC shop, always an EMC shop. Hundreds of thousands to even millions of dollars were spent to ensure that you were enabled for high availability, fault tolerance, training, support and more. Again, through that single vendor.
This model lasted for quite some time, but in the recent decade, things started to evolve. Customer's wanted more. New technologies, both hardware and software, began to emerge and offer very attractive functionality—virtualization (with VMware) is the first that comes to mind, external Flash arrays, software-defined storage—almost all of which helped to kickstart this thing we call the cloud. The list goes on.
These same shops started to express some frustration in this. They wanted all of these extra features that those same single vendors either did not offer or were too slow in bringing something competitive to market. Instead of running products through a single vendor and using more unified management frameworks to maintain it all, they are now toggling back and forth across multiple management interfaces from multiple vendors to accomplish simple tasks. This is all well and good when the workload is small, but it does not scale very well when that workload increases. How can you log in to a single dashboard and monitor or manage your virtual/physical machines, network, storage and more? What can bring all this moving pieces together?
What is OpenStack? OpenStack is an Apache-licensed open-source framework designed to build and manage both public and private clouds. Originally started in 2010, an effort jointly launched by Rackspace Hosting and NASA, the project has since grown exponentially and attracted a wide number of supporters and users. It is one of the fastest growing open-source projects of the modern era. The primary goal of OpenStack was to create a single and universal framework to deploy and manage various technologies in the data center dynamically. Its most recent release is Newton (October 2016), which most notably adds support for Docker to enable customers with Container-as-a-Service (Caas) capabilities.
A General Overview of OpenStack
Its interrelated components control hardware pools of processing, storage and networking resources, all managed through a web-based dashboard, a set of command-line utilities or through a RESTful Application Program Interface (API). Even though OpenStack exports and publishes its own unique API, the project does strive to maintain compatibility with competing APIs, which include Amazon's Elastic Cloud 2 (EC2) and Swift3 (S3), and also the Google Compute Engine (GCE). The idea is to allow developers to migrate their technologies from competing ecosystems into OpenStack with little effort.
Some of the more commonly used components or modules to OpenStack include:
Nova (Compute): to manage both bare metal and Hypervisor image deployments.
Neutron (Networking): to manage networks and IP addresses.
Cinder (Block Storage): to manage the creation, attachment and detachment of block storage devices to computing server nodes.
Keystone (Identity): to enable a common authentication system for all users across the cloud.
Glance (Image): to manage disk and server images while also maintaining backups.
Swift (Object Storage): to manage object data sets across a horizontally distributed storage cluster.
Horizon (Dashboard): is the graphical interfaces used to manage all OpenStack cloud-based resources.
Many hardware vendors received the memo. It wouldn't take long for those same vendors to adapt their products so that they could plug into the OpenStack framework and through one or more of its supported components. For instance, block storage vendors supported Cinder, and Hypervisor-focused vendors supported Nova.
So, what is the secret to OpenStack's success? Convergence. OpenStack brought order back to almost unmanageable ecosystems. By providing a single and standardized framework, multi-vendor deployments now are able to coexist within the same network. OpenStack's popularity should come as no surprise. I predict more success for this project and look forward seeing it thrive in the industry.