What is OpenStack? The Basics, Part 1
OpenStack. In an increasingly cloud-obsessed world, you’ve probably heard of it. Maybe you’ve read it’s “one of the fastest growing open source communities in the world,” but you’re still not sure what all the hype is about.
The aim of this post is to get you from zero to 60 on the basics of OpenStack, leaving you with a clear sense of whether this flexible platform is right for your organization. Next week we'll go a little deeper, take on some of the pros and cons, and talk about where OpenStack is heading.
So what exactly is OpenStack?
OpenStack is open source software for creating private and public clouds, built and disseminated by a large and democratic community of developers, in collaboration with users.
As the OpenStack Foundation notes, hundreds of the world’s largest brands rely on OpenStack to run their businesses, reduce costs and help them become more nimble and efficient. With a strong ecosystem of support, users can choose from many difference OpenStack-powered products, and a range of support from DIY to fully managed by experts.
OpenStack controls large pools of compute, storage, and networking resources throughout a datacenter, managed through a dashboard that gives administrators control while empowering users to provision resources through a web interface.
Where did OpenStack come from?
OpenStack began with two small groups of engineers, one working for Rackspace in Texas, the other working for NASA in California; they came together in 2010 to collaborate on the open source software that could run large computer systems in transparent and collaborative ways.
As the project progressed, additional partners interested in this collaboration, and willing to share their own resources, signed on. By 2012, those partners decided to transfer governance of the project to the newly created, non-profit OpenStack. At that point it blossomed as a true open source project.
The OpenStack community — developers around the U.S. and the globe — collaborates around a six-month, time-based release cycle with frequent development milestones. Developers and users come together twice a year; with recent changes, it’s now mainly users gathering for the OpenStack Summit, while a new event, the Project Teams Gathering, focusing on the actual development work underway for the next code release.
The OpenStack ecosystem
The OpenStack platform is made up of individual projects and services that each focus on a specific function within the cloud ecosystem. There are six “core” services and 13 more optional services (here’s the full list of services on the Project Navigator).
The core services include:
- Keystone: the authentication and authorization component built into each OpenStack cloud; it also handles the environment creation (aka projects) and would be the first component of OpenStack to be installed.
- Nova: which manages the computing resources part of an OpenStack cloud; this entails instance sizing, creating instances, managing instance location. It’s considered the most important component of an OpenStack cloud.
- Neutron: responsible for creating the virtual networks within an OpenStack cloud; this means creating virtual networks, routers, subnets, firewalls, load balancers, etc.; one of the most complicated and powerful components of an OpenStack cloud.
- Glance: manages and maintains server images for your OpenStack cloud; features the capability to upload OpenStack compatible images; images can be stored locally or on object storage
- Cinder - provides Block Storage as a Service to an OpenStack cloud; it virtualizes pools of block storage devices and provides end users with a self-service API to request and consume those resources without requiring any knowledge of where that storage is actually deployed or on what type of device.
- Swift: provides Object Storage as a Service to the OpenStack cloud; it is a highly available, distributed, eventually consistent object/blob store.
How to use OpenStack
Reading over the core services, you might think you need to be an IT pro to take advantage of OpenStack. And it's certainly true that developers do appreciate this open source platform. But in addition to doing-it-yourself, or going it alone, OpenStack can also be used as a managed service.
Under the DIY model, you the consumer, will deploy, operate and support your own OpenStack cloud. Just like with any software platform, this requires a deployment and cloud expansion strategy — one of the biggest decisions you'll make, in fact — do you install from source or use one of the packaged installers? Then once it's running you'll need to make sure your services are healthy and be prepared for when they fail. Then you'll need to plan for upgrades, adding of additional OpenStack projects and integrating into other technologies, like LDAP, containers and shared storage devices.
On the other end of the spectrum is going the managed services route. This means everything in the DIY model is taken care of for you, by OpenStack experts. For those without the in-house expertise nor the resources to hire that expertise, a managed service provider assumes responsibility for providing a defined set of services — allowing your organization to focus on your core business, rather than technology. When using this model, you will build a relationship with the provider and work together to meet the needs of the business.
In my next post, I’ll cover the pros and cons of using OpenStack, depending on your needs, discuss where OpenStack is headed among the other new cutting edge technologies, like containers.
Free strategy session
We have successfully scaled OpenStack to thousands of nodes and operate private clouds for some of the largest companies in the world. Talk to our proven experts about your business objectives and we’ll strategize with you the solutions needed to achieve them — no strings attached. SIGN UP NOW.