OpenStack is a set of software
tools for building and managing cloud computing platforms for public and
private clouds. Backed by some of the biggest companies in software development
and hosting, as well as thousands of individual community members, many think
that OpenStack is the future of cloud computing. OpenStack is managed by the OpenStack Foundation, a
non-profit which oversees both development and community-building around the
project.
Introduction to OpenStack
OpenStack lets users deploy virtual
machines and other instances which handle different tasks for managing a cloud
environment on the fly. It makes horizontal scaling easy, which means that
tasks which benefit from running concurrently can easily serve more or less
users on the fly by just spinning up more instances. For example, a mobile
application which needs to communicate with a remote server might be able to
divide the work of communicating with each user across many different
instances, all communicating with one another but scaling quickly and easily as
the application gains more users.
And most importantly, OpenStack is open source software, which means that anyone
who chooses to can access the source code, make any changes or modifications
they need, and freely share these changes back out to the community at large.
It also means that OpenStack has the benefit of thousands of developers all
over the world working in tandem to develop the strongest, most robust, and
most secure product that they can.
How is OpenStack used in a cloud environment?
The cloud is all about providing
computing for end users in a remote environment, where the actual software runs
as a service on reliable and scalable servers rather than on each end users
computer. Cloud computing can refer to a lot of different things, but typically
the industry talks about running different items "as a
service"—software, platforms, and infrastructure. OpenStack falls into the
latter category and is considered Infrastructure as a Service (IaaS). Providing
infrastructure means that OpenStack makes it easy for users to quickly add new
instance, upon which other cloud components can run. Typically, the infrastructure
then runs a "platform" upon which a developer can create software
applications which are delivered to the end users.
What are the components of OpenStack?
OpenStack is made up of many
different moving parts. Because of its open nature, anyone can add additional
components to OpenStack to help it to meet their needs. But the OpenStack
community has collaboratively identified nine key components that are a part of
the "core" of OpenStack, which are distributed as a part of any
OpenStack system and officially maintained by the OpenStack community.
·
Nova is the primary computing engine behind OpenStack. It is used for
deploying and managing large numbers of virtual machines and other instances to
handle computing tasks.
·
Swift is a storage system for objects and files. Rather than the
traditional idea of a referring to files by their location on a disk drive,
developers can instead refer to a unique identifier referring to the file or
piece of information and let OpenStack decide where to store this information.
This makes scaling easy, as developers don’t have the worry about the capacity
on a single system behind the software. It also allows the system, rather than
the developer, to worry about how best to make sure that data is backed up in
case of the failure of a machine or network connection.
·
Cinder is a block storage component, which is more analogous to the
traditional notion of a computer being able to access specific locations on a
disk drive. This more traditional way of accessing files might be important in
scenarios in which data access speed is the most important consideration.
·
Neutron provides the networking capability
for OpenStack. It helps to ensure that each of the components of an OpenStack
deployment can communicate with one another quickly and efficiently.
·
Horizon is the dashboard behind OpenStack.
It is the only graphical interface to OpenStack, so for users wanting to give
OpenStack a try, this may be the first component they actually “see.” Developers
can access all of the components of OpenStack individually through an
application programming interface (API), but the dashboard provides system
administrators a look at what is going on in the cloud, and to manage it as
needed.
·
Keystone provides identity services for
OpenStack. It is essentially a central list of all of the users of the
OpenStack cloud, mapped against all of the services provided by the cloud which
they have permission to use. It provides multiple means of access, meaning
developers can easily map their existing user access methods against Keystone.
·
Glance provides image services to OpenStack. In this case,
"images" refers to images (or virtual copies) of hard disks. Glance
allows these images to be used as templates when deploying new virtual machine
instances.
·
Ceilometer provides telemetry services, which
allow the cloud to provide billing services to individual users of the cloud.
It also keeps a verifiable count of each user’s system usage of each of the
various components of an OpenStack cloud. Think metering and usage reporting.
·
Heat is the orchestration component of OpenStack, which allows
developers to store the requirements of a cloud application in a file that
defines what resources are necessary for that application. In this way, it
helps to manage the infrastructure needed for a cloud service to run.
No comments:
Post a Comment