OpenStack is an open-source cloud computing platform that provides software for building private and public clouds. It was initiated in 2010 by Rackspace and NASA and now has over 100 supporting companies. The document provides an overview of OpenStack, including descriptions of its core modules like Compute (Nova), Object Storage (Swift), Block Storage (Cinder), Networking (Neutron), Dashboard (Horizon), Identity (Keystone), Image Service (Glance), Telemetry (Ceilometer), Orchestration (Heat), and Database (Trove). It discusses the evolution and growth of OpenStack over time through different releases, new features in the current Icehouse release, and how to use the OpenStack APIs.
2. 2
What is OpenStack?
OpenStack is open source software to build private and public clouds
Initiated by Rackspace Cloud and NASA in 2010
The first core modules were called Compute (Nova) and Object Storage
(Swift)
Since its founding, it has seen wide industry endorsement and now
numbers more than 100 supporting companies. Including many of the
industry's largest organizations.
Current platinum members include IBM, AT&T, Canonical, HP, Nebula,
Rackspace, Red Hat, and SUSE
4. 4
OpenStack is growing
One of the most exciting things about OpenStack is that it continues to
grow dramatically and quickly, often with two or more releases per year
As a result, much of the information publicly available on the technology
is out of date
The User Survey Statistics November 2013 received nearly twice as
many answers as the previous round (performed in April 2013 with 414
responses) and 387 deployments compared to 187.
5. 5
Evolution of OpenStack
Each release has incorporated new functionality, added documentation,
and improved the ease of deployment
Austin release consisted only of two core projects: OpenStack Compute
(Nova) and OpenStack Object Storage (Swift)
Bexar complemented these with an Image Service (Glance)
Essex release added two more cores (Keystone and Horizon)
Folsom added Neutron (initially called Quantum) and Cinder cores
Havana added Ceilometer and Heat cores
6. 6
Current release – Icehouse
Icehouse release consists of ten core projects
Compute (Nova) - Object Storage (Swift)
Block Storage (Cinder) - Networking (Neutron)
Dashboard (Horizon) - Identity Service (Keystone)
Orchestration (Heat) - Telemetry (Ceilometer)
Image Service (Glance) - Database Service (Trove)
New capabilities under development for Juno and beyond
Bare Metal (Ironic)
Queue Service (Marconi)
Data Processing (Savannah)
8. 8
Nova
OpenStack Compute (Nova) controls the cloud computing fabric (the
core component of an infrastructure service).
Written in Python, it creates an abstraction layer for virtualizing
commodity server resources such as CPU, RAM, network adapters, and
hard drives, with functions to improve utilization and automation.
Its live VM management has functions to launch, resize, suspend, stop,
and reboot through integration with a set of supported hypervisors.
− When the images are running, it is possible to store and manage
files programmatically through an application programming interface
(API).
9. 9
Neutron
Networking (Neutron), formerly called Quantum is an OpenStack project
focused on delivering networking as a service.
It is designed to address deficiencies in “baked-in” networking
technology found in cloud environments, as well as the lack of tenant
control (in multi-tenant environments) over the network topology and
addressing, which makes it hard to deploy advanced networking
services.
− The massive scale of high-density, multi-tenancy cloud environments
is putting enormous strain on networks.
− They are simply struggling to keep up with the explosive, dynamic
nature of these virtualized environments.
Neutron provides a way for organizations to relieve the stress on the
network in cloud environments to make it easier to deliver networking as
a service in the cloud.
10. 10
Neutron
Includes the capability to manage LANs with capabilities for virtual LAN
(VLAN), Dynamic Host Configuration Protocol, and Internet Protocol
version 6.
Users can define networks, subnets, and routers to configure their
internal topology, and then allocate IP addresses and VLANs to these
networks.
Floating IP addresses allow users to assign (and reassign) fixed external
IP addresses to the VMs
Supports many differents networking configurations
Enables VMs to talk to each other on private network
− Some VMs can be externally accessible
11. 11
Keystone
Keystone is an OpenStack project that provides Identity, Token, Catalog
and Policy services for use specifically by projects in the OpenStack
family.
OpenStack Identity Management (Keystone) manages a directory of
users as well as a catalog of OpenStack services they can access.
Its purpose is to expose a central authentication mechanism across all
OpenStack components.
Is the identity service used by OpenStack for authentication and high-
level authorization.
− It currently supports token-based authentication and user-service
authorization.
12. 12
Swift
OpenStack Object Storage (Swift) is based on the Rackspace Cloud
Files product and is a redundant storage system ideal for scale-out
storage.
OpenStack ensures data replication and distribution across the devices
in its pool, so users can employ commodity hard disks and servers
rather than more expensive equipment.
− In the event of a component failure, OpenStack is able to replenish
the content from other active systems to new cluster members.
Access to the OpenStack Swift object storage system is through a REST
API, which is similar to the Amazon.com S3 API.
− This means that applications that are currently using S3 can use
OpenStack Swift without major re-factoring of the application code
and application
13. 13
Cinder
OpenStack Block Storage (Cinder) manages block-level storage that
compute instances use.
Block storage lends itself well to scenarios with strict performance
constraints, such as databases and file systems.
Cloud users can manage their storage requirements through the
dashboard.
The system provides interfaces to create, attach, and detach block
devices from/to servers. It is also possible to back up Cinder volumes by
using the snapshot capability.
14. 14
Glance
OpenStack Image Service (Glance) provides support for VM images,
specifically the system disks to be used in launching VM instances.
In addition to discovery, registration, and activation services, it has
capabilities for snapshots and backups.
Users can provide both private and public images to the service in a
variety of formats, VDI (VirtualBox), VMDK (VMware), qcow2
(Qemu/Kernel-based Virtual Machine).
Functions exist to register new virtual disk images, query for information
on publicly available disk images, and stream virtual disk images.
15. 15
Horizon
The dashboard is an extensible web app that allows cloud administrators
and users to control their compute, storage and networking resources
Is the graphical UI that administrators can most easily use to manage all
the projects
Provides administrators and users a graphical interface to access,
provision and automate cloud-based resources
As a cloud administrator, the dashboard provides an overall view of the
size and state of your cloud.
− You can create users and projects, assign users to projects and set
limits on the resources for those projects.
16. 16
Ceilometer
The Ceilometer project was started in 2012 with one simple goal in mind:
to provide an infrastructure to collect any information needed regarding
OpenStack projects.
Is a mechanism for centralized collection of metering and monitoring
data.
It delivers a single point of contact for billing systems to obtain all the
usage information they need across the suite of OpenStack components.
Has different types of metering.
− Cumulative - Increasing over time (instance hours)
− Gauge - Discrete items (floating IPs, image uploads) and fluctuating
values (disk I/O)
− Delta - Changing over time (bandwidth)
17. 17
Heat
Is a template-based orchestration engine for OpenStack.
It allows developers to define application deployment patterns that
orchestrate composite cloud applications in a RESTful API.
The templates can accommodate most OpenStack resource types (for
example, Nova instances and floating IP address ranges, Cinder
volumes, Keystone users).
There are also capabilities for advanced functionality, including high
availability, auto-scaling, and nested stacks.
18. 18
Trove
Trove is Database as a Service for OpenStack.
A new capability included in the integrated release allows users to
manage relational database services in an OpenStack environment.
It's designed to run entirely on OpenStack, with the goal of allowing
users to quickly and easily utilize the features of a relational database
without the burden of handling complex administrative tasks.
Cloud users and database administrators can provision and manage
multiple database instances as needed.
19. 19
Lauching a VM - Video
https://www.youtube.com/watch?v=KBP1t1daSj8&feature=youtu.be
20. 20
Attaching a Volume - Video
https://www.youtube.com/watch?v=w_9GuLejub8&feature=youtu.be
21. 21
How to use the APIs
An Application Programming Interface (API) offers a way to use the
capabilities of a service by using predefined functions.
Each core project will expose one or more HTTP/RESTful interfaces for
the purpose interacting with the outside world
You can access the APIs writing automation scripts in Python
To use the APIs with Python you can install each tool using the pip on
command line:
pip install python-keystoneclient
After that you can source your openrc
When the openrc file has been sourced, Python can retrieve the
credentials from the enviroment
22. 22
How to use the APIs
You can extract this information and
get credentials to the authetication
Example of authentication a new
nova client and list the instances:
23. 23
How to use the APIs
Booting a new instance
Example of creation of a new instance:
24. 24
Lauching a new Instance - Video
https://www.youtube.com/watch?v=2jAgtjtNO0M&feature=youtu.be
25. 25
What is new in Icehouse?
OpenStack Icehouse has nearly 350 new features to support software
development, managing data and application infrastructure at scale.
Trove
User/Schema management
− Users can do CRUD management on MYSQL Users and Schemas
through the Trove API
Flavor / Cinder Volume resizes
− Resize up/down the flavor that defines the Trove instance
− Resize up the optional Cinder Volume size if the datastore requires a
larger volume
26. 26
What is new in Icehouse?
Nova
− New support for rolling upgrades minimizes the impact to running
workloads during the upgrade process.
− Notifications are now generated upon the creation and deletion of
keypairs.
− The Compute API now exposes the hypervisor IP address, allowing it to
be retrieved by administrators using the nova hypervisor-show
command.
Horizon
− Now supports 16 languages including German, Hindi and Serbian.
− Additional improvements to the general user interface and
experience were also implemented
27. 27
What is new in Icehouse?
Glance
− The calculation of storage quotas has been improved.
Ceilometer
− Alarming improvements
time-constrained alarms, providing flexibility to set the bar higher or lower
depending on time of day or day of the week.
− Telemetry features improved access to metering data used for
automated actions or billing purposes.
Cinder
− Ability to change the type of an existing volume (retype)
− Ceilometer notifications on attach/dettach
28. 28
What is new in Icehouse?
Keystone
− New v3 API Features
POST /v3/users/{user_id}/password allows API users to update
their own passwords
/v3/regions provides a public interface for describing multi-region
deployments
GET v3/auth/token?nocatalog allows API users to opt-out of
receiving the service catalog when performing online token
validation
Neutron
− Icehouse focused on stability Neutron codebase
− Many of the existing plugins and drivers were revised to address know
performance and stability issues