Back

Introduction to OpenStack

Image Slider

April 5, 2019

By Guillaume Caballé - TheExpert Squad, Virtualization Engineer

OpenStack, Open Source Project

Although a relative newcomer to the IT technology landscape, OpenStack has quickly gained significant popularity in the deployment of private clouds. This first article aims to present the solution as a whole; a second article will then be dedicated to possible architecture choices and the role of the architect in general.

Initially, the project arose from the needs of two players: NASA and the hosting provider RackSpace. In June 2010, the agency decided to connect itsNovavirtual servers to theSwiftdata storage system hosted by the provider. Buoyed by their success, they released the first version of the OpenStack project, namedAustin, in October 2010.

Each year, the location of the OpenStack Design Summit determines the name of the future version. These also follow alphabetical order. Thus, the first release of OpenStack is calledAustin, the secondBexar, the thirdCactus, etc. For more information on these releases:https://releases.openstack.org/

Some of the names used by OpenStack releases

It is important to note that OpenStack is adevelopment project: theopenstack.orgwebsite does not provide any references or distributions. However, external vendors (Mirantis, Ubuntu, SUSE, etc.) can create their own distributions based on the project's Python code.

OpenStack Foundation & its contributors

The OpenStack project is governed by a foundation. Membership is free and open to everyone: it currently has over ten thousand members.

A Technical Committee of 13 people, elected by the members, is responsible for managing and supervising technical issues. Similarly, a Board of Directors deals with financial and strategic issues. This includes people appointed by the sponsoring companies and others also elected by the members.

For more information about the foundation:https://www.openstack.org/foundation/

The project benefits from numerous contributions, whether from traditional open source contributors:

  • RedHat
  • IBM
  • HP

But also companies entirely dedicated to OpenStack:

  • Mirantis
  • CloudBase

These contributions can take several forms:

  • New features
  • Drivers for specific services (drivers forCinderblock storageorSoftware Defined Network (SDN) drivers forNeutron)
  • Bug fixes

A cloud of services

Following the first version, which only includedNova andSwift services, many others have been added to the project:

  • Glance(image storage) appeared on theBexar version.
  • Keystone(identification) andHorizon(web console) appeared in theEssex version.
  • Quantum(network service), later renamedNeutron, andCinder(block storage) appeared in theFolsom version.
  • Heat(orchestration service) andCeilometer(telemetry) appeared in theHavana version.
The different OpenStack services

Service integration continues to be at the heart of the OpenStack project, with the aim of adding new features. These are introduced gradually in a development and release cycle of around six months.

Each of the features integrated into OpenStack exposes a REST API. Console commands are available to access them (common client commands). openstack) and a web interface (Horizon), but most interactions between components and users are carried out via APIs, for several reasons:

  • the deployed system can be fully automated
  • integration with other systems (orchestration solutions) is clearly defined
  • Use cases are easily implemented and automatically tested.

That's all well and good, but...

You should now have a better idea of what the OpenStack project is. However, one crucial point is missing from this presentation:what is this project for?
It is difficult to give a clear and precise answer to this question. In reality, OpenStack is more easily defined by its use cases. Users approach this solution with different objectives in mind. These may include, among others:

  • Deploying ashared service infrastructure for multiple clients. This use case is particularly common among hosting providers, such as RackSpace. This is referred to as amultitenant platform.
  • Implement aContinuous Integration and Continuous Delivery(CI/CD) mechanism as part of rapid application development. This is the most common use case in businesses. (92% of OpenStack users have CI/CD workflows
    on their private clouds for theKilo release).
  • Provide an infrastructure that enablesnetwork functions tobe deployed automatically via software. This is the use case known asSoftware-Defined Networking(SDN), which is currently the most common among telecom operators.
  • Managing infrastructure with very high computing resource requirements: this is referred to asHigh Performance Computing(HPC). This use case is particularly common in the field of research (CERN, NASA, MIT, DAIR).

For more details on theSDN Use Case, I invite you to read theSQUADarticleonthis subject:https://theexpert.squad.fr/theexpert/cloud/apres-le-cloud-place-aux-reseaux-programmables/

The challenge of architecture

This non-exhaustive list shows that OpenStack provides a diverse set of services. Next, the company must decide whether this technology meets its needs and whether its implementation fits within its context.

Initially, it may choose to deploy a "reference" architecture, where all services will be present and active. However, it is advisable to implement only those services that are actually used in production. This limits the configuration and testing required for implementation.

Referencedeployments often serve asproof of concept(PoC) when a use case is not yet mature enough to define the final state of production.

This is where OpenStack architecture comes into play. First,the company's needsmust belistedandasatisfactory infrastructuresolution proposed. Next, consistent design and deploymentdocumentationmustbe maintained.

As a result, architects will need to have in-depth knowledge of the solution, coupled with skills in network and storage architecture. These different steps will be discussed in a future article.


Resources

  • OpenStack for Architects – Michael Solberg, Ben Silverman (2017)
  • Certified OpenStack Administrator Study Guide – Andrey Markelov (2016)
  • OpenStack Administration with Ansible 2 – Walter Bentley (2016)