Ubuntu Cloud Juju

Post on 29-Aug-2014

10.604 views 3 download

Tags:

description

 

Transcript of Ubuntu Cloud Juju

Ubuntu Cloud Infrastructure

Nick Barcet <nick.barcet@canonical.com>Ubuntu Cloud Product Manager

2 Presentation by Nick Barcet

Cloud computing stack

Network

etc..LenovoDellIBMHP

etc..HyperVVMWareKVMXen

Amazon, GoGrid, 3Tera, OpenStack, etc...

GoogleApps, Java, Azure, etc...

Salesforce.com, GoogleDocs, Office, etc...

Storage

3 Presentation by Nick Barcet

Ubuntu Cloud

Network

x86

KVM, Xen

Ubuntu Cloud Infrastructure and Guest

Juju (CloudFoundry)

(Ubuntu One)

Storage

ARM

LXC Orchestra(Bare metal provisioning)

4 Presentation by Nick Barcet

U buntu C loud

Rapid deploymentOptimize resources & immediacy (self service IT)Best of breed (KVM, Xen, LXC, OpenStack) Compatible technology (matches EC2)Supports multiple guest O/S Secure, trusted & open source

Ubuntu Cloud InfrastructureOutstanding 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.

H ybr id Focus

Ubuntu Cloud GuestUbuntu Cloud Infra. (public or private IaaS)Maximise benefits whilst minimising risksElasticitySimplifies burstingCommon StandardsCommon Ubuntu machine image

5 Presentation by Nick Barcet OpenStack in Action, Paris

Ubuntu Cloud Infrastructure → Ubuntu Oneiric Ocelot (11.10)

Build your infrastructure as a service public or private cloud

● Based on OpenStack● Supporting KVM, Xen & LXC hypervisors● All components can be made highly

available● EC2, EBS and S3 compatible● One of the workload made easy to deploy

with OrchestraKVM, Xen or LXC

Ubuntu Server

Ubuntu Cloud Guest Any OS

OpenStack

Your Workloads

6 Presentation by Nick Barcet OpenStack in Action, Paris

Ubuntu Cloud Infrastructure on ARM in 11.10

LXC based OpenStack● Contributed by Canonical to OpenStack

with ARM support in mind● Technology preview for ARM and LXC

support

LXC

Ubuntu Server

Ubuntu CloudGuest

Kernel compatible OS

OpenStack

Any Workloads

7 Presentation by Nick Barcet

Orchestra

8 Presentation by Nick Barcet OpenStack in Action, Paris

Ubuntu Orchestra

Install Orcherstra on your first server

Orchestra Infrastructure Server

9 Presentation by Nick Barcet OpenStack in Action, Paris

Ubuntu Orchestra

Associate profiles with MAC addresses via the web or API interface

Orchestra Infrastructure Server

10 Presentation by Nick Barcet OpenStack in Action, Paris

Ubuntu Orchestra

Turn on your hardware, the deployment happens, your infrastructure is ready!

Orchestra Infrastructure Server

11 Presentation by Nick Barcet OpenStack in Action, Paris

Ubuntu Orchestra

Bare metal deployment 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)

Orchestra Infrastructure Server

12 Presentation by Nick Barcet

Installing Orcherstra

> sudo apt- get install ubuntu- orchestra- server

13 Presentation by Nick Barcet

Installing Orcherstra

14 Presentation by Nick Barcet

Installing Orchestra

15 Presentation by Nick Barcet

Installing Orchestra

16 Presentation by Nick Barcet

17 Presentation by Nick Barcet

Orchestra ready

● Latest Ubuntu ISO is downloaded● Package repositories are setup● PXE, TFTP, DHCP and Cobbler are ready

–> Let's define some servers

18 Presentation by Nick Barcet

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"

19 Presentation by Nick Barcet

JujuDevops Distilled

20 Presentation by Nick Barcet

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

21 Presentation by Nick Barcet

What drives DevOps?

● Speed of the deployment

● Continuous Integration, Automated Testing, etc.

● Fast change vs. Stability

22 Presentation by Nick Barcet

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

23 Presentation by Nick Barcet

You've got the tools already

● Hardware● Virtualization● Platform (OS) ● Configuration Management

… need to tie that together into something whole.

24 Presentation by Nick Barcet

Manages Services, not Machines

25 Presentation by Nick Barcet

Elevate to Juju

ServiceOrchestration

ConfigurationManagement

Virtualization

OperatingSystem

Hardware

26 Presentation by Nick Barcet

Juju, DevOps Distilled

● Reuse existing deployment charms in an openly-accessible repository of shared expertise

● Reproduce deployments for test and staging purposes

● Rapid deployment of your dependencies for development purposes

● Compose whole systems from individual application components and describe the entire deployment

● Explicit control over deployment, configuration and upgrade options

● See what’s deployed and track usage in the cloud

● Create and share charms for new applications

● Monitor, scale, shrink and adjust deployment parameters in real time

● Explicitly connect different components and maintain those relationships over time

● Collaborate with developers on the exact deployment and upgrade processes

● Get more done: implement decisions immediately regardless of infrastructure scale

Dev Ops

http://juju.ubuntu.com

27 Presentation by Nick Barcet

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.

28 Presentation by Nick Barcet

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

29 Presentation by Nick Barcet

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.

30 Presentation by Nick Barcet

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.

31 Presentation by Nick Barcet

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

32 Presentation by Nick Barcet

Juju's internals

33 Presentation by Nick Barcet OpenStack in Action, Paris

Juju

Juju treats individual services as atoms that are described as charms and can be instantiated one or many times.

Juju environment

and dependency solver

Cloud appCloud appCloud app

34 Presentation by Nick Barcet OpenStack in Action, Paris

Juju

Each charm (or atom) define dependencies and/or provides.

Cloud appCloud appCloud app

LoadBalancerHAProxy

SQL DatabaseMySQL

Juju environment

and dependency solver

Depends Provides

Provides Depends

35 Presentation by Nick Barcet OpenStack in Action, Paris

Juju

Multiple charms can provide the same service and can be easily switched.

Cloud appCloud appCloud app

LoadBalancerHAProxy

SQL DatabaseMySQL

Juju environment

and dependency solver

Depends Provides

Provides Depends

Varnish

36 Presentation by Nick Barcet OpenStack in Action, Paris

Juju

Juju maintains the relations between the services so that you don't need to care about the elasticity of your environment.

Relations are to charms what bounds are to atoms.

Services are loosely coupled but highly cohesive.

Cloud appCloud appCloud app

VarnishVarnish

MySQLMySQLMySQL

Juju RelationJuju environment

and dependency solver

Juju Relation

37 Presentation by Nick Barcet OpenStack in Action, Paris

Juju

Juju delivers service focused management through their life-cycle

● Offers the same simple rules to components of you infra as we do already for packages on your servers: dependencies, provides

● Adds the notion of dynamic relations between components

● To provide you with simple automated elasticity that is easy to expand

● Working on your bare metal servers (through Orchestra*) as easily as on your favourite clouds (AWS, OpenStack*, ...)

Cloud appCloud appCloud app

Varnish

MySQLMySQL

Juju RelationJuju environment

and dependency solver*

Juju Relation

*coming soon

38 Presentation by Nick Barcet

Juju's Architechture

39 Presentation by Nick Barcet

Deploying OpenStack with Juju

40 Presentation by Nick Barcet

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

41 Presentation by Nick Barcet

Deploying OpenStak

● > juju bootstrap

● > juju deploy mysql - - placement=local

● > juju deploy rabbit- mq - - placement=local

● > juju deploy –config=~/formulas/openstack.yaml nova- cloud- controller

● > juju add- relation nova- cloud- controller rabbitmq

● > juju add- relation nova- cloud- controller mysql

● > juju deploy –config=~/formulas/openstack.yaml glance

● > juju add- relation glance mysql

● > juju add- relation glance:image- service nova- cloud- controller:image- service

● > juju deploy - - config=~/formulas/openstack.yaml - - repository= p̀wd ̀nova- compute

● > juju add- relation nova- compute rabbitmq

● > juju add- relation nova- compute mysql

● > juju add- relation nova- cloud- controller:nova- network nova- compute:nova- network

● > juju add- relation glance:image- service nova- compute:image- service

42 Presentation by Nick Barcet

Scaling OpenStack

● > juju add-unit nova-compute

or

● > juju add-unit nova-cloud-controller

43 Presentation by Nick Barcet

OpenStack is now in action !

Thank you

Nick Barcet

<nick.barcet@canonical.com>

www.ubuntu.com