The document discusses Ubuntu Cloud Infrastructure and OpenStack deployment using Juju and Orchestra. It provides an overview of Juju for orchestrating services and deploying charms. It then demonstrates how to deploy OpenStack on bare metal servers managed by Orchestra using Juju relations to connect the OpenStack components like Nova, Glance, RabbitMQ etc. Scaling is shown to be easily done with Juju by adding additional units.
2. Cloud computing stack
Salesforce.com, GoogleDocs, Office, etc...
GoogleApps, Java, Azure, etc...
Amazon, GoGrid, 3Tera, OpenStack, etc...
Storage Network
Xen KVM VMWare HyperV etc..
HP IBM Dell Lenovo etc..
2 Presentation by Nick Barcet
3. Ubuntu Cloud
(Ubuntu One)
Juju (CloudFoundry)
Ubuntu Cloud Infrastructure and Guest
Storage Network
KVM, Xen LXC Orchestra
(Bare metal provisioning)
x86 ARM
3 Presentation by Nick Barcet
4. Ubuntu Cloud Infrastructure
Outstanding technology
Ability to use the same Ubuntu machine
images and management tools across both
private and public IaaS systems, minimising
costly re-training or application change when
moving from private to public and vice versa.
U bu n tu C lou d H y br id F ocu s
Rapid deployment Ubuntu Cloud Guest
Optimize resources & immediacy Ubuntu Cloud Infra. (public or private IaaS)
(self service IT) Maximise benefits whilst minimising risks
Best of breed (KVM, Xen, LXC, OpenStack) Elasticity
Compatible technology (matches EC2) Simplifies bursting
Supports multiple guest O/S Common Standards
Secure, trusted & open source Common Ubuntu machine image
4 Presentation by Nick Barcet
5. Ubuntu Cloud Infrastructure → Ubuntu Oneiric Ocelot (11.10)
Your Workloads Build your infrastructure as
a service public or private
cloud
Ubuntu Cloud
Any OS Based on OpenStack
Guest
●
●
Supporting KVM, Xen & LXC hypervisors
●
All components can be made highly
OpenStack available
●
EC2, EBS and S3 compatible
●
One of the workload made easy to deploy
with Orchestra
KVM, Xen or LXC
Ubuntu Server
5 Presentation by Nick Barcet OpenStack in Action, Paris
6. Ubuntu Cloud Infrastructure on ARM in 11.10
Any Workloads LXC based OpenStack
●
Contributed by Canonical to OpenStack
with ARM support in mind
Ubuntu Cloud Kernel compatible ●
Technology preview for ARM and LXC
Guest OS support
OpenStack
LXC
Ubuntu Server
6 Presentation by Nick Barcet OpenStack in Action, Paris
8. Ubuntu Orchestra
Orchestra Install Orcherstra on your
Infrastructure Server
first server
8 Presentation by Nick Barcet OpenStack in Action, Paris
9. Ubuntu Orchestra
Orchestra Associate profiles with
Infrastructure Server
MAC addresses via the
web or API interface
9 Presentation by Nick Barcet OpenStack in Action, Paris
10. Ubuntu Orchestra
Orchestra Turn on your hardware,
Infrastructure Server
the deployment happens,
your infrastructure is
ready!
10 Presentation by Nick Barcet OpenStack in Action, Paris
11. Ubuntu Orchestra
Orchestra Bare metal deployment
Infrastructure Server
from the Ubuntu Installer
●
Zero touch deployment of complex
workloads
●
Configuration management
●
Customizable
Components
●
Cobbler
●
Fact database
●
Cloud-Init
●
Pluggable management tools
(Juju as default)
11 Presentation by Nick Barcet OpenStack in Action, Paris
12. Installing Orcherstra
> sudo apt- get install ubuntu- orchestra- server
12 Presentation by Nick Barcet
17. Orchestra ready
●
Latest Ubuntu ISO is downloaded
●
Package repositories are setup
●
PXE, TFTP, DHCP and Cobbler are ready
–> Let's define some servers
17 Presentation by Nick Barcet
18. Declaring servers for Orchestra
sudo cobbler system add
--name="cempedak.canonical.com"
--mac-address="00:24:81:e4:59:9c"
--ip-address="10.55.55.2"
--dns-name="cempedak.canonical.com"
--hostname="cempedak.canonical.com"
--profile="oneiric-x86_64-ensemble"
--mgmt-classes="orchestra-juju-available"
--kopts="console=ttyS0,9600n8 DEBCONF_DEBUG=developer
netcfg/dhcp_timeout=120 netcfg/choose_interface=eth0"
18 Presentation by Nick Barcet
20. What is DevOps?
●
Rate of agile development and deployment requires deeper
interaction between teams
●
A melding of development, deployment, and QA principles,
methods, and practices
●
Fills the gap between developers and system administrators
20 Presentation by Nick Barcet
21. What drives DevOps?
●
Speed of the deployment
●
Continuous Integration, Automated Testing, etc.
●
Fast change vs. Stability
21 Presentation by Nick Barcet
22. What does DevOps “deliver”?
●
Fast repeatable server setup, consistent environment
●
Abstract ops tasks to empower devs
●
Smaller deployments empower ops
●
Repeatable processes that let you scale out quickly
22 Presentation by Nick Barcet
23. You've got the tools already
●
Hardware
●
Virtualization
●
Platform (OS)
●
Configuration Management
… need to tie that together into something whole.
23 Presentation by Nick Barcet
25. Elevate to Juju
Service
Orchestration
Configuration
Management
Virtualization
Operating
System
Hardware
25 Presentation by Nick Barcet
26. Juju, DevOps Distilled
Dev Ops
●
Reuse existing deployment charms in an ●
Explicit control over deployment,
openly-accessible repository of shared configuration and upgrade options
expertise ●
See what’s deployed and track usage in the
●
Reproduce deployments for test and staging cloud
purposes ●
Create and share charms for new
●
Rapid deployment of your dependencies for applications
development purposes ●
Monitor, scale, shrink and adjust deployment
●
Compose whole systems from individual parameters in real time
application components and describe the ●
Explicitly connect different components and
entire deployment maintain those relationships over time
●
Collaborate with developers on the exact
deployment and upgrade processes
●
Get more done: implement decisions
http://juju.ubuntu.com regardless of infrastructure
immediately
scale
26 Presentation by Nick Barcet
27. Juju's Charms
●
Charms are a shareable, re-usable, and repeatable
expressions of DevOps best practices.
●
You can use them unmodified, or easily change and connect
them to fit your needs.
●
Deploying a formula is similar to installing a package on
Ubuntu: ask for it and it’s there, remove it and it’s completely
gone.
27 Presentation by Nick Barcet
28. Juju is a community of DevOps expertise.
●
Most of the application you want will be available in Juju.
●
Juju provides direct and free access to a DevOps community-
contributed collection of formulas
28 Presentation by Nick Barcet
29. Juju provides service orchestration
●
Juju focuses on managing the service units you need to
deliver a single solution, above simply configuring the
machines or cloud instances needed to run them.
●
Charms developed, tested, and deployed on your own
hardware will operate the same in an EC2 API compatible
cloud, including OpenStack.
29 Presentation by Nick Barcet
30. Juju is intelligent
●
Juju exposes re-usable service units and well-defined
interfaces that allow you to quickly and organically adjust and
scale solutions without repeating yourself.
30 Presentation by Nick Barcet
31. Juju is Easy
●
There’s no need to learn a domain specific language (DSL) to
use Juju or create formulas. You can be up and running with
your own formula in minutes
31 Presentation by Nick Barcet
33. Juju
Juju treats individual services
as atoms that are described
as charms and can be
instantiated one or many
Juju environment
times.
Cloud app
Cloud app
Cloud app
and dependency
solver
33 Presentation by Nick Barcet OpenStack in Action, Paris
34. Juju
Load
Balancer
HAProxy Each charm (or atom) define
dependencies and/or
Depends Provides
provides.
Juju environment
Cloud app
Cloud app
Cloud app
and dependency
solver
Provides Depends
SQL Database
MySQL
34 Presentation by Nick Barcet OpenStack in Action, Paris
35. Juju
Load
Balancer
HAProxy
Varnish Multiple charms can provide
the same service and can be
Depends Provides
easily switched.
Juju environment
Cloud app
Cloud app
Cloud app
and dependency
solver
Provides Depends
SQL Database
MySQL
35 Presentation by Nick Barcet OpenStack in Action, Paris
36. Juju
Varnish
Varnish Juju maintains the relations
between the services so that
Juju Relation
you don't need to care about
the elasticity of your
Juju environment
environment.
Cloud app
Cloud app
Cloud app
Relations are to charms what
and dependency
solver
Juju Relation bounds are to atoms.
MySQL
Services are loosely coupled
MySQL
MySQL but highly cohesive.
36 Presentation by Nick Barcet OpenStack in Action, Paris
37. Juju
Varnish Juju delivers service focused
management through their
Juju Relation
life-cycle
Juju environment ●
Offers the same simple rules to components
of you infra as we do already for packages
on your servers: dependencies, provides
Cloud app
Cloud app
Cloud app ●
Adds the notion of dynamic relations
between components
and dependency
solver*
●
To provide you with simple automated
Juju Relation
elasticity that is easy to expand
●
Working on your bare metal servers (through
Orchestra*) as easily as on your favourite
clouds (AWS, OpenStack*, ...)
MySQL
37 Presentation by Nick Barcet OpenStack in Action, Paris soon
*coming
40. Back to the Orchestra server
● > sudo apt- get install juju
● > sudo mkdir - p ~/.juju
● > sudo vi ~/.ensemble/environments.yaml
juju: environments
environments:
orchestra:
type: orchestra
# Specify the orchestra server (santol's IP address)
orchestra- server: 10.55.55.7
# Specify storage. In this case we are using webdav installed by orchestra.
storage- url: http://10.55.55.7/webdav
# Specify cobbler's usr/pass
orchestra- user: cobbler
orchestra- pass: cobbler
admin- secret: fooooo
# Mangement classes
acquired- mgmt- class: orchestra- juju- acquired
available- mgmt- class: orchestra- juju- available
40 Presentation by Nick Barcet