what is openstack

Intro to the OpenStack project

Sean Mooney

3 minute read

What Is OpenStack?

For those of you who have not heard of “OpenStack” or the OpenStack Foundation, you might be wondering what it is.
Wikipedia “currently” defines it as an a free and open-source software platform for cloud computing, mostly deployed
as an infrastructure-as-a-service (IaaS).

While that is true, it is incomplete and unless you know what infrastructure as a service is it’s not very helpful.
Granted the Wikipedia page does actually explain what OpenStack is and what OpenStack does but ill have a go anyway.

OpenStack as software is a collection of composable interrelated projects, primarily written in python, for creating
private and public clouds environments. OpenStack provides an abstraction layer that allows a collection of servers
to be managed as pools of compute, storage and networking services.

Compute, Storage and Networking are the 3 pillars of IT service that make up a standard IT infrastructure.
OpenStack provides a software interface to manage these 3 pillars of IT infrastructure and is, therefore,
an Infrastructure as a service offering.

The main projects that comprise OpenStack’s IaaS offering are what used to be known as the OpenStack core projects.

Core Projects:

  • Nova: Compute Project
  • Neutron: Networking Project
  • keystone: Autentication Project
  • Glance: Images as a service Project
  • Cinder: Block Storeage Project
  • swift: Object Storage Project

Non-Core projects?:

But if there is a Core then are there more non-core projects? For OpenStack that is a resounding YES!!!
in fact since the creation of the big tent and arguably before, the compendium of OpenStack
and OpenStack related projects has been
expanding beyond IaaS to Orchestration, Platform as a service, advanced services such as container orchestration
and support services such as workflow engines, database as a service, backup as a service and
many other micro-services that can be composed to build your own OpenStack-powered application.

A listing of offical project teams can be found in the openstack govournace repo
and many other affilated projects can be found by exploring the openstack namesace on github.

How mature are all these projects?

With all these core and non-core project to choose for do I need them all? How mature are they really?
Are they all ready to use in my production application?

Well, the answer to the first question is simple, OpenStack is a composition of micro-services that
work together to provide a could of your own design. if you don’t need object storage then you
can deploy without swift, already have ceph deployed? No problem you can have cinder, nova and glance
can use that as your storage backend. Do you want DNS as a service but not orchestration?
You can deploy designate but leave heat out of your cloud deployment.

The second question of how mature these projects are is a little harder to answer. The OpenStack Core
projects have matured over many releases to be stable and production ready, the advanced services
are at a differing level of maturity but luckily the OpenStack foundation has been developing a tool
to help you make up your own mind.

The OpenStack Project Navigator is a great place to start and if you still
have question the reaching out to the comunity is as easy as jumping on irc or
sending a mail to the mailing list.

Future Reading