Chapter 1. An Introduction to OpenStack

Enterprises traditionally ran their IT services by running appropriate applications on a set of infrastructures and platforms. These were comprised of physical hardware in terms of compute, storage, and network along with software in terms of hypervisors, operating systems, and platforms. A set of experts from infrastructure, platform, and application teams would then put the pieces together and get a working solution tailored to the needs of the organization.

With the advent of virtualization and later on cloud, things have changed to a certain extent, primarily in the way things are built and delivered. Cloud, which has its foundations in virtualization, delivers a combination of relevant components as a service; be it Infrastructure as a Service (IaaS), Platform as a Service (PaaS), or Software as a Service (SaaS). In this book, we will only discuss how to provide a system with IaaS using an OpenStack-based private cloud. The key aspect of providing a system with IaaS is cross-domain automation. The system that helps us achieve this is called a Cloud Service Orchestrator or Cloud Platform or Cloud Controller. For the purposes of this book, we will refer to OpenStack as the Cloud Service Orchestrator. The Cloud Service Orchestrator or, simply put, the orchestrator is primarily responsible for the following:

  • The stitching together of hardware and software to deliver a defined service (in the context of our book, IaaS)
  • Automating the workflows that are required to deliver a service

Thus, in a cloud environment, the most important component is the orchestrator. There are several orchestrators; both free and open-source (FOSS) and commercial, which can help turn your virtualized IT infrastructure into a cloud.

Some of the choices in the FOSS segment for the orchestrators are as follows:

  • OpenStack
  • Apache CloudStack
  • Open Nebula

Some choices of commercial orchestrators are as follows:

  • VMware vRealize Automation and vRealize Orchestrator
  • VMware vCloud Director
  • Cisco Intelligent Automation for the cloud (CIAC) and UCS Director
  • Microsoft Opalis and Systems Center
  • BMC Atrium

In this book, we embark on a journey to understand the concepts, to install and configure the components of OpenStack, and finally, to build your own cloud using OpenStack. At the time of writing this book, OpenStack has been by far the most famous and widely adopted FOSS orchestrator or Cloud Software Platform in the market and the most comprehensive offering that provides IaaS among FOSS alternatives.

In this chapter, we will cover the following:

  • The differences between commercial orchestrators and FOSS orchestrators, and where each of these types of orchestrators fit well in today's world
  • The basic building blocks of a private cloud and how OpenStack is different from commercial orchestrators in building a private Cloud
  • The key differences between commercial orchestrators and OpenStack
  • An introduction to OpenStack architecture, services, and service dependencies
  • A preparation for OpenStack setup where we discuss the details of a test setup, which will lead us on a journey of building our own private cloud using OpenStack

Choosing an orchestrator

There are some key differences between commercial orchestrators, such as vRealize Automation and CIAC, and FOSS orchestrators, such as OpenStack. While both of them attempt to provide IaaS to users, it is important to understand the difference between both the types of orchestrator in order to appropriately design your Cloud.

Let's begin with commercial orchestrators; these provide a base IaaS to their users. They normally sit on top of a virtualized environment and enable an automated provisioning of compute, storage, and network, even though the extent of automation varies. As a part of the toolset, they also typically have a workflow engine, which in most cases provides us with an extensibility option.

The commercial orchestrators are a better choice when the entire orchestration needs to be plugged in to the current IT processes. They work wonderfully well when extensibility and integration are major tasks of the cloud environment, which is typically seen in large enterprises given the scale of operations, the type of business critical applications, and the maturity of IT processes.

In such large enterprises, in order to take full advantage of the private cloud, the integration and automation of the orchestrator in the IT systems of the company becomes necessary. This kind of orchestration is normally used when minimum changes are anticipated to be made to the applications. A primary use case of this is IaaS, where virtual machines are provisioned on a self-service basis and a very small learning curve is involved.

FOSS orchestrators are less extensible, but more standardized in terms of offerings. They offer standardized services that a user is expected to use as building blocks to offer a larger solution. In order to take full advantage of the FOSS orchestrators, some amount of recoding of applications is required as they need to make use of the newly offered services. The use cases here are both IaaS and PaaS (for example, Database as a Service, Message Queue as a Service, and so on).

For this reason, the APIs that are used among the FOSS orchestrators need to have some common ground. This common ground that we are talking about here is Amazon Web Services (AWS) API compatibility, as Amazon has emerged as the gold standard as far as the service-oriented cloud architecture is concerned. At the time of writing the book, OpenStack Nova still had AWS EC2 API compatibility, but this may be pushed out to the StackForge project.

  • Most FOSS orchestrators provide us with a way to use Amazon APIs wherever possible. It is for this reason that in the next section, we will compare the services available in OpenStack to the equivalent services offered by AWS.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset