Introduction to OpenStack


Bhaskar S 06/06/2015


Overview

Traditionally, Enterprise infrastructure team would deploy actual servers (compute nodes) and/or storage hardware in one or more data centers based on the demand from application teams.

For example, one application (A1) could request one or more servers (compute nodes) with a certain requirements (8 Cores, 64GB RAM) and storage (20 TB with 1000 read iops and 1000 write iops). Another application (A2) may request one or more servers (compute nodes) with other requirements (4 Cores, 32GB RAM) and storage (5 TB with 200 read iops and 200 write iops) and so on.

Enterprise infrastructure team typically decide on a few standard configurations for servers (compute nodes) and storage. For example, high-end server (64 Cores, 128GB RAM) and a generic server (32 Cores, 64GB RAM) for the compute nodes, etc.

The following illustrates this traditional approach to deploying applications on a dedicated server (a compute node may be shared amongst one or more applications) and probably sharing a dedicated storage:

Traditional
Traditional Deployment

Pros and Cons with this traditional approach:

Enter Virtualization.

With virtualization, the enterprise infrastructure team would install hypervisors on physical servers (compute nodes) and effectively allocate virualized servers (compute node) from a single physical server to application teams.

The following illustrates this virtualization approach to deploying applications on virtual servers and probably sharing a dedicated storage:

Virtualization
Virtualization Deployment

Pros and Cons with this virtualization approach:

The next evolution - the Cloud.

One would often hear the term - Infrastructure as a Service (or IaaS) in the Cloud lingo. With IaaS, the system resources such as physical servers (compute nodes), storage, and network are virtualized and made available to applications over the Internet.

With Cloud, the enterprise infrastructure team would manage system resources (server, storage, and network) using a Cloud platform such as OpenStack.

The following illustrates this Cloud approach to deploying applications:

Cloud
Cloud Deployment

Pros and Cons with this cloud approach:

The Basics

OpenStack is a free and open-source cloud computing software platform that can be used to implement Infrastructure as a Service (IaaS) environment.

OpenStack consists of the following set of inter-related core services that come together to form the IaaS environment:

OpenStack exposes REST based API to create and manage the various resources in the cloud.

In the sections below, we will describe each of the above mentioned core servicesat a high-level.

Keystone

Provides Identity (authentication) and Access management (authorization) services for OpenStack.

Glance

Provides virtual machine image management services for OpenStack.

Neutron

Provides virtual network management services for OpenStack.

Cinder

Provides block device storage management services for OpenStack.

Swift

Provides the object storage management services for OpenStack.

Nova

Provides virtual server instance (compute node) management services for OpenStack.

Horizon

Provides a web-based management dashboard for OpenStack.

The following illustrates all the above mentioned components that make the OpenStack Cloud environment:

OpenStack
OpenStack Cloud