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:
Pros and Cons with this traditional approach:
PROs :: application resource isolation
CONs :: administration complexity, under-utilized resources, time and cost
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:
Pros and Cons with this virtualization approach:
PROs :: application resource isolation, better system resource utilization
CONs :: administration complexity, cost
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:
Pros and Cons with this cloud approach:
PROs :: better system resource utilization, dynamic resource provisioning and deployment
CONs :: constantly evolving, talent, complex administration
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:
Keystone :: Identity and access
Glance :: Virtual machine images
Neutron :: Networking
Cinder :: Block storage
Swift :: Data object storage
Nova :: Compute instances
Horizon :: Management dashboard
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.
Manage users, groups, and roles
Manage services and endpoints of all the components in the cloud
Manage user permissions to access various services and endpoints
Glance
Provides virtual machine image management services for OpenStack.
Create and manage bootable virtual machine guest images with the desired applications pre-installed and configured
Neutron
Provides virtual network management services for OpenStack.
Create and manage virtual networks
Manage routes between the virtual networks
Cinder
Provides block device storage management services for OpenStack.
Create and manage volumes on top of block storage devices
Attach and detach volumes to virtual server (compute) instances
Swift
Provides the object storage management services for OpenStack.
Store and retrieve files with content
Nova
Provides virtual server instance (compute node) management services for OpenStack.
Create server (compute) instances on demand using the virtual machine guest images from Glance with the desired virtual network configuration
Manage attachment/detachment of storage volumes to server (compute) instances
Horizon
Provides a web-based management dashboard for OpenStack.
Graphical user interface for performing various administrative operations on the OpenStack Cloud environment
The following illustrates all the above mentioned components that make the OpenStack Cloud environment: