Vancouver -- If you're attending an OpenStack conference for the first time and don't want to come across as a neophyte -- either when talking to speakers about cloud computing, or to vendors about distributed storage and the pitfalls of using open source hypervisors while cruising the exhibitors' hall -- here are a few cloud computing terms you should become familiar with to create the impression you're as knowledgeable as anyone else who's pretending to know what they're talking about.
OpenStack -- This is the open source, cloud computing software everyone is talking about. If you've ever wanted to create your own private cloud, but knew that creating a scalable, distributed and easily managed product was just too much work, then OpenStack is for you. It should be noted that OpenStack is the only software piece that makes managing all the compute pools, networked servers, storage systems and centralized administration possible. However, the hardware on which this private cloud software is deployed is not associated with OpenStack.
Swift -- Two of the most core concerns with cloud-based systems are 1) how to manage compute resources and 2) how two manage data across the cloud. Also known as OpenStack Object Storage, Swift addresses the latter; namely, the challenges of dealing with data and object storage across a highly distributed system.
Even on simple, straightforward enterprise applications where one program writes data to a single database, managing persistence is a challenge. But just imagine if distributed compute nodes scattered across the globe were trying to update a distributed set of hard drives and other storage devices that were themselves distributed across the globe.
Of course, Swift is more than just another big data project; instead, it addresses the whole issue of distributed data storage in a new and unique way. "The basic concept that I think makes Swift fundamentally new is that you separate the data you are storing from the media you are storing it on," said John Dickinson, director of technology at SwiftStack. And along with this clean separation that organizations taking a DevOps approach to development will love, the solution is also incredibly scalable. With Swift, "you can save unstructured data in a way that can grow without bounds," Dickinson said.
John Dickinson, SwiftStack director of technology
Maintaining consistency, minimizing latency, guaranteeing accuracy and delivering partition tolerance pushes every limit of Brewer's CAP theorem. How does OpenStack address the distributed storage problem? Swift is the answer.
Nova -- As mentioned in the discussion of Swift, managing data and compute resources are two of the biggest challenges architects encounter when creating a cloud-based platform. Swift addresses the object storage challenge, while Nova deals with all of the computational issues. Also known as OpenStack Compute, Nova is what really provides the infrastructure piece of this infrastructure as a service (IaaS) offering. Managing compute pools; spinning up new runtime images based on preconfigured ISO files; dealing with hypervisors and bringing the promise of high-performance computing (HPC) to fruition? That's what Nova is all about.
Python -- Python is the language in which every OpenStack component is written. If you want to contribute a patch for Nova or offer up a new feature, make sure it's written in Python. Making suggestions like "Would this not be easier to write in Java?" or "Is there not a C++ library that does all of this already?" will get you thrown out of any design session, and will more than likely result in a lifetime ban from any future conferences. Of course, there are products OpenStack leverages in its implementation that aren't necessarily written in Python. For example, RabbitMQ is written in Erlang, and OpenStack relies upon it heavily. But RabbitMQ is more of an external piece than part of OpenStack's core computing. But regardless, Python is the programming language of choice for OpenStack. If you want to contribute to the project, Python is the language you'll want to learn.
OpenCompute -- This is a "do not get it confused with OpenStack" entry. OpenCompute is a project whose goal is to create the most infinitely scalable hardware on the planet, and that means figuring out how to design physical systems with tangible things like solid state drives (SSDs), network ports, CPUs and cooling fans. Even though OpenStack and OpenCompute are two distinctly different animals, it is possible to deploy OpenStack software on systems designed by OpenCompute -- the results of which can be quite astounding.
This, of course, is by no means an exhaustive list. There's a plethora of other important projects such as Cinder for block storage; Neutron for connectivity-as-a-service; Sahara for data processing services and Keystone for authentication. But all of those cloud computing terms will slowly be absorbed by your brain so long as you master the basics and open your mind up to everything that's happening at the OpenStack conference: keynotes, lectures, design sessions and time spent exploring the exhibit hall. The OpenStack conference is undoubtedly a great place to immerse yourself in the world of open source cloud computing.
You can follow Cameron McKenzie on Twitter: @potemcam