Last year I attended a half dozen conferences. When I wasn’t browsing the products on the exhibit floor, I spent time speaking to fellow attendees in the halls. One topic came up over and over: OpenStack. I’ve followed the open-source platform for a few years. I’ve watched it gain steam with open-source fans along with corporations like Intel and Rackspace. But I didn’t realize what interest people were taking in it. I returned home and decided to take another look. This week I’d like to share with you an OpenStack introduction and why so many companies have adopted it.
What is OpenStack?
OpenStack is a set of open-source software tools for building and managing cloud computing platforms. Thousands of individuals and companies like Red Hat, Dell and Rackspace have created OpenStack. They work together with the goal of making OpenStack the most robust and secure platform on the market. OpenStack competes with cloud platforms such as Amazon Web Services and Microsoft Azure. Companies us it to manage both public and private clouds.
OpenStack is an IaaS (infrastructure as a service). The infrastructure makes it easy for developers to build services and applications on top of it. Before we go any further, it helps to understand the role of each primary component. The OpenStack community has identified nine primary components that are part of the core stack. Let’s quickly cover the nice core components.
Nova is the primary compute engine of OpenStack. Developers designed it to manage virtual machines on standard hardware. Nova is similar in function to EC2 from AWS and was one of the contributions from NASA when OpenStack got started.
Swift is the object storage system contributed by Rackspace. Swift is similar to S3 from Amazon in that it’s able to scale to massive sizes. Using a unique identifier, developers utilize Swift to decide where objects are stored. This allows the system to easily scale because developers don’t have to worry about the storage capacity on a single system.
Cinder is the block storage component of OpenStack. It works more like tradition storage in performance and architecture.
Keystone is the main tool for user authentication and role-based access controls. It acts as a central directory of all users and their respective permissions. Keystone supports traditional username and password logins as well.
Glance allows the user to spin up virtual machines by creating templates for them. It works with Cinder to store images it creates from templates, but it can also create its own images.
Horizon is the only graphical component of OpenStack. It’s basically a web-based tool that users and administrators use to access the other components. Many call it the dashboard of OpenStack.
Neutron manages all network associated with OpenStack clouds. It includes APIs that allow administrators to customize and deploy a variety of network types such as flat networks, VLANs or VPNs.
Heat helps developers manage the infrastructure needed for a cloud service to run. It defines all the resources each application needs to run properly.
Ceilometer is the billing engine of OpenStack. It’s still evolving, but consider it the metering agent of OpenStack.
There are more components to OpenStack but these are the core ones. By the time you read this I expect developers will have added even more.
A lot of the attraction of OpenStack is its philosophy of evolving the platform in the open. When you choose OpenStack, you’re choosing a community as much as a platform. And that community will be your partner. I don’t want to get into a discussion of which philosophy is better. Both Amazon and Microsoft have proven over the years they know what their customers want, but there’s clearly room for more players. The OpenStack community determines the direction of the platform. The OpenStack community makes their decisions in the public domain which means failures are easier to spot.
Amazon and Microsoft provide many of the same services found in OpenStack. They also provide enterprise level consulting and support which many companies demand. But they have also optimized their cloud services to work best together. Some will say this encourages vendor lock-in. That’s true, but OpenStack components also work best with other OpenStack components. The difference is that developers designed OpenStack from the start to support many applications and services. And if one doesn’t exist, you can create your own.
Making the Jump
We’re still in the early stages of OpenStack development. You’ll find a lot of rough edges in terms of rollout support and documentation. These and other areas are improving, but there’s no getting around the fact that OpenStack is built by a community of passionate folk who don’t always agree on everything. Today you have a number of choices among Tier 1 and turnkey providers. The OpenStack website keeps a current list of companies that can help you take the first step. Services include training, public clouds, private hosted clouds and consulting services.
One of the easiest ways to try OpenStack is to sign up for a test account at TryStack.org. It’s a sandbox where you can try OpenStack and test your your own apps on the platform. You even can spin up images of CentOS, Fedora, Ubuntu or OpenSUSE. You can even upload your own image. Instances last only 24 hours, but this should give you of time to look around.
OpenStack has had its share of ups and downs. It’s taken a few years to find its footing, but it appears to be on solid ground today. Nobody wants to move their business to a cloud platform only to be stranded a few years later. Migrating from one cloud platform to another is still a beast, but it’s unlikely OpenStack is going anywhere. You still need to choose your provider with caution, but know the underlying platform has solid backing.
Have you made the jump to OpenStack yet? What has been your experience so far?