I still remember when I was a beginner at OpenStack. I was at American Express and was rolling off a five-year data center migration project. I was looking for something else to get into. When I finally met with my executive leadership for a new project, I was told, "we're starting a new internal cloud using OpenStack and we'd like you to lead the architecture effort for the cloud infrastructure group." I figured I'd just Google "OpenStack" and I'd find all sorts of guides and tutorials. I thought "I'll have this built in no time." Boy was I wrong. Since OpenStack was still pretty new back then, the amount of resources and information were only a small fraction of what is out there today.
Now, fast forward five years to the Boston OpenStack Summit and I'm sitting with a table full of OpenStack enthusiasts and one of them says "man, I wish there was a session here for real beginners." The person beside him replies with "yeah, my boss told me to come here and learn about OpenStack but I really feel like I need an intro course before I can really get into the other sessions."
That's when it hit me. I'm going to submit a summit talk for the next summit and it will start from the very beginning. I'm going to give new users a jumpstart so they can get as much out of the summit as possible.
How would you explain OpenStack to a complete newcomer?
Explaining OpenStack to a complete newcomer isn't as easy as it sounds. We can't assume that a newcomer has cloud IT experience in AWS or is at least a little familiar with virtualization like VMware. Without this background, we have to get in the way-back machine and catch them up to the current decade. Once we've arrived in the at around year 2010, I can start by introducing them to the concept of a self-service infrastructure orchestrator, wrapped around an on-demand pool of configurable resources. We start with "why" something like that would be desirable and what business problems it solves. Once a beginner understands the "why" of concepts of private cloud, I move forward with "what" OpenStack is, "when" it emerged and what specific technology problems it solves. After that's understood, I can then move forward with larger topics of "how" OpenStack operates and "who" has contributed and how they are organized. Without some type of logical approach, a newcomer might feel like they only have part of the story.
In regards to its importance for companies looking to modernize their infrastructure, OpenStack is the most open, flexible, extensible and vendor agnostic private cloud software that exists today. For Gartner's Bimodal Mode 1 applications it performs great as a self-service host for virtual applications and provides great scalability. For example, CERN and Walmart run clouds with 200,000+ cores. For Mode 2 applications that are being developed in a high-velocity agile development environment, OpenStack is an essential tool to deliver infrastructure as code within an enterprise's data center, a critical part of an efficient code pipeline. The days of high cost vendor lock-in, swivel chair VM creation and bolt-on tools for self-service are already appearing much smaller in the rear view mirror of enterprise IT.
How did OpenStack come about?
OpenStack was created by an alien race that wanted us to have better open tools for infrastructure and freedom of choice in compute, storage and networks. On their planet, they were locked into very expensive galactic vendors and wanted to save our race from such a fate.
Okay, not exactly, but OpenStack did have roots at NASA (Anso labs). It's a long story that I'll tell at the Sydney summit, but the short version is that the technology from the Nebula platform at NASA caught the attention of Rackspace Hosting and after agreeing to work on OpenStack together they announced the first official release almost exactly six years ago, on October 21, 2010.
Since that fateful day in 2010, there have been all sorts of changes. Today, OpenStack really looks more like a modern space shuttle versus the model rocket it was in 2010. In the beginning, there were very few projects like Nova (compute) and Swift (object storage). Now there are over 60 different projects and teams working on new features, functionality, and scalability of the platform. Adoption has skyrocketed and the false notions that a company has to have the resources of a Walmart or eBay to run an OpenStack cloud have been disproven. Sure, OpenStack was very immature in the early years, but no more so than Linux or any other open source project, but, in the last few years OpenStack has really come of age. Today, over half of Fortune 100 companies are running OpenStack.
What are some of the key concepts that OpenStack users should be aware of?
New users to OpenStack should first familiarize themselves with the operation of OpenStack. This can be done in many ways, including Packstack and DevStack. Most involve downloading the code from a git repository, configuring a few lines of configuration and then launching a script to install OpenStack all-in-one into a VM or some spare hardware. In 15-20 minutes they will have a fully operational OpenStack cloud that they can actually use. Once familiar with the way OpenStack works using the web-based graphical interface (Horizon) and the command-line interface (openstackclient), I suggest users learn about the basic architecture of OpenStack and the core projects like Nova, Cinder, Glance, Keystone, Swift, and Neutron. Once users feel comfortable with the features and functionality of these projects, they can move on to more advanced skills like installing OpenStack by the published install guides on docs.openstack.org and exploring some of the other 50+ optional projects.
How can someone learn more to take their next steps with OpenStack?
Unlike when I started with OpenStack, there are now so many great resources available to users today. When I was given the task of building my first proof-of-concept OpenStack cloud, there weren't even stable tools for building a whole stack, and it was almost impossible to automate an install. That, coupled with the fact that documentation for beginners simply wasn't readily available. Today, there are tons of ways to install OpenStack in a fully automated way.
Fortunately for those who want to get started on OpenStack today, I suggest sites like "Learn OpenStack" and Red Hat's "Understanding OpenStack" websites. In addition, I would recommend grabbing a copy of "OpenStack for Architects" if you're interested in a holistic discussion what it takes to build a successful production OpenStack cloud. If you more of a visual learner, there are some really great YouTube videos that explain how to install OpenStack many different ways and videos about every OpenStack project in extreme detail. Of course, there are companies like Red Hat and OnX that provide standard and custom OpenStack and cloud training as well.