About OpenStack
OpenStack is a global collaboration
of developers and cloud computing technologists producing the ubiquitous open
source cloud computing platform for public and private clouds. The project aims
to deliver solutions for all types of clouds by
being simple to implement, massively scalable, and feature rich. The technology
consists of a series of interrelated
projects delivering various components for a cloud
infrastructure solution. OpenStack is a cloud operating system that controls large pools
of compute, storage, and networking resources throughout a datacenter, all
managed through a dashboard that gives administrators control while empowering
their users to provision resources through a web interface.
Who's behind
OpenStack?
Founded by Rackspace Hosting and
NASA, OpenStack has grown to be a global software community of developers collaborating on a standard and massively
scalable open source cloud operating system. Our mission is to enable any
organization to create and offer cloud computing services running on standard
hardware.
Who uses OpenStack?
Corporations,
service providers, VARS, SMBs, researchers, and global data centers looking to
deploy large-scale cloud deployments for private or public clouds leveraging
the support and resulting technology of a global open source community.
Why open matters:
All of the code for
OpenStack is freely available under the Apache 2.0 license. Anyone can run it,
build on it, or submit changes back to the project. We strongly believe that an
open development model is the only way to foster badly-needed cloud standards,
remove the fear of proprietary lock-in for cloud customers, and create a large
ecosystem that spans cloud providers.
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 a "fabric controller," which is used for
deploying and managing large numbers of virtual machines and other instances to
handle computing tasks. OpenStack Compute (code-name Nova)
·
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. OpenStack Object Storage (code-name Swift)
·
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. OpenStack Block Storage (code-name Cinder)
·
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. OpenStack Networking (code-name Neutron)
·
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. OpenStack Dashboard (code-name Horizon)
·
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. OpenStack Identity (code-name 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. OpenStack Image Service (code-name Glance)
·
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. OpenStack Telemetry (code-name Ceilometer)
·
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. OpenStack Orchestration (code-name Heat)
·
Trove is Database Service allows users to quickly and easily utilize
the features of a relational database without the burden of handling complex
administrative tasks. OpenStack Database (code-name Trove)
The
following are new capabilities under development for the Juno revision and beyond:
* Queue Service (code-named “Marconi”) cloud messaging and notification service for developers
building applications on top of OpenStack. Queue Service (code-name Marconi)
* Data Processing (code-named “Sahara”) simple means to provision a Hadoop cluster on top of
OpenStack. Data
Processing (code-name Sahara)
Industry Vendors
The
top three vendors in every hardware category support OpenStack and the list of
other vendors is growing
every quarter. Cisco Systems in April announced a $1
billion investment in its Cisco Cloud Services based on OpenStack.
Hewlett-Packard recently rebranded its cloud portfolio to Helion and announced a $1 billion commitment to
developing its cloud based on OpenStack. - Top 3 router vendors: Cisco, Juniper, Alcatel
- Top 3 x86 vendors: HP, Dell, IBM
- Top 3 blade vendors: HP, Cisco, IBM
- Top 3 Linux vendors: Red Hat, Canonical, SUSE
- Top 3 switch vendors: Cisco, Juniper, HP
- Top 3 Storage vendors: EMC, IBM, NetApp
- Top 3 Hypervisors: KVM, Xen (both Open source) ESXi -VMware
Is OpenStack Ready For Production?
This is “the question” that runs through the
mind when diving deep on OpenStack.
Yes, there is great momentum behind OpenStack.
Yes, there is good vendor support for OpenStack. And yes, the community is
growing with almost 4500 professionals attending the May 2014 Summit in
Atlanta, GA (USA).
But Can all this help convince businesses to
adopt OpenStack?
Neither the momentum and growing support, nor
the growing community and growing number of services with API specifications
can convince a business to adopt OpenStack.
Real world deployment stories, lessons from
the trenches, and willingness on part of the early adopters to take the stage
and share with confidence that OpenStack is ready - is the way to convince the audience.
2014 OpenStack Summit in Atlanta gave us some
directions OpenStack IS ready for early adapters
Though OpenStack still lacks the polish of
competitive approaches, it is sufficiently rich in its service offerings and
most of the core components are stable for production environments.
Moving to OpenStack is now about taking a calculated risk. Yes, you can
calculate the cost of investigating it. Yes, you can take the risk -- the
chances of success are reasonably high. Why?
Second, vendors like Red Hat, Canonical,
Mirantis, OpsCode, Persistent, have launched testing tools and programming
toolkits to make OpenStack deployment and programming relatively painless. Yes,
you need Linux system administration skills and might need some beginner
scripting skills, but the tutorials are easy to follow – you can watch a
training video and deploy OpenStack in a multi-node environment in a
matter of hours.
- Are there issues with release rollouts? Yes, but the
issues are marginal compared to the situation in 2012 or 2013.
- Are the data models across L2 and L3 networking layers
perfect? No, but they are on the right track and there is better
commitment from vendors with skin in the game. The current design is good
enough to interoperate with existing networking topologies.
- Is there any coolness to the platform? Absolutely –
look at Heat for orchestration and Ceilometer for metering. These are
value added services, going beyond basic Compute/Network/Storage services.
- Are consulting and support services available? Yes, and
growing. Vendors like Mirantis, MetaCloud, and Persistent are deploying
OpenStack and offering development services for their customers.
- Should a customer go into production within 90 days? It
is possible but not advised by F5. Customers should setup a lab and test
for at least 3-4 months, based on use cases, then start sharing and
deploying workloads between their OpenStack and rest of the infrastructure
(traditional or public cloud), and plan a phased production rollout.
·
Enterprises (E.g.
BestBuy, Ebay) delivering Developer self-service and IT efficiency
Proof points:
Proof points:
- Over 15000 Compute instances created and deleted
- 500 active Compute instances, going up to 1500
- Integrated into existing networking topologies
Goals achieved:
- Developer focused adoption (No tickets!)
- Remove the blame-game (no more "IT caused
downtime!")
- Parallel development (Build fast!)
- Reduce cycle time from code complete to code deploy
(Deploy fast!)
- IT focuses on automation and monitoring
·
Providers
(E.g. ATT, Comcast, Bluehost) maintain and scale tenant environment without
downtime
Proof points:
Proof points:
- Running OpenStack in production in double digit Data
Centers globally
- Scale up replaced with Scale out (add more servers to
increase capacity)
- Setup an entire infrastructure stack for an event (e.g.
NCAA real-time feeds), use it, tear it down once the event is done
- Compute node belongs to the Tenant, but provider can
patch the underlying OS with live migration without affecting workload
availability
- Use of APIs enables custom live upgrade (this is
possible with commercial software too, but now possible in open source
software with API customizations) - Upgrade algorithm: HA + 1 - Use a
combination of Scale back, rollback - do HA + 1, then live migrate to new
node, then validate, then update the taken off node.
Conclusion
Customers can invest in OpenStack now. it will require investment unlike a point-and-click cloud platform deployment experience. But, it will also provide an excellent opportunity to begin transforming IT processes and toolset.
Customers can invest in OpenStack now. it will require investment unlike a point-and-click cloud platform deployment experience. But, it will also provide an excellent opportunity to begin transforming IT processes and toolset.
For more info -> OpenStack Architecture video presentation