deploying with ubuntu cloudodm.ubuntu.com/uhs/2011/deploying ubuntu cloud.pdf · deploying with...

46
Deploying with Ubuntu Cloud

Upload: others

Post on 31-May-2020

33 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

Deploying with Ubuntu Cloud

Nick Barcet <[email protected]>Ubuntu Cloud Product Manager

Page 2: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

2 Presentation by Kyle MacDonald

Cloud computing stack

Network

etc..LenovoDellIBMHP

etc..HyperVVMWareKVMXen

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

GoogleApps, Java, Azure, etc...

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

Storage

Page 3: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

3 Presentation by Kyle MacDonald

Ubuntu Cloud

Network

x86

KVM, Xen

Ubuntu Cloud Infrastructure and Guest

Juju (CloudFoundry)

(Ubuntu One)

Storage

ARM

LXC Orchestra(Bare metal provisioning)

Page 4: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

4 Presentation by Kyle MacDonald

What is Ubuntu Cloud?

● Ubuntu is the reference OS for IaaS (Cloud Infrastructure)

● Ubuntu is the leading Guest OS (Cloud Guest)

● Juju is the base for the next generation Ubuntu

Page 5: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

5 Presentation by Kyle MacDonald

Ubuntu Cloud Infrastructure Value Proposition

Why Ubuntu Cloud Infrastructure?

● Best in class deployment tools- Orchestra- Juju- Can adapt to any customer preferred tool

● Best in class management tools- Landscape- Juju

- Nagios, Collectd and other OSS

● Ubuntu provides the base components for most OpenStack distributors- HP Cloud - Dell OpenStack

- Rackspace Cloud Builder

● Ubuntu and OpenStack synchronized

development releases

● Ubuntu is the reference OS for OpenStack

Why OpenStack?

● Fastest ever growing OpenSource project- in terms of partners (HP, Citrix, Dell, Cisco, RackSpace, etc...)

- in terms of contributions (43 companies involved in the Diablod release)

- in terms of time to Market (5 major public clouds expected by EO 2011)

● Built to support the needs of public clouds (which supersedes private)

● Built to provide no SPOF

● Massively extensible in terms of

functionalities- SAN- Network

- Hypervisors - etc..

Page 6: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

Ubuntu Cloud Infrastructure

Page 7: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

7 Presentation by Kyle MacDonald

Ubuntu Cloud Infrastructure

Openstack Compute (aka Nova)●Delivers instances and disk space on demand to run Ubuntu Cloud Guest or most other Operating Systems.

●Logical equivalent to AWS EC2

Openstack Image Service (aka Glance)●Delivers machines images locally and remotely

●Ubuntu Cloud Guest enabled●Logical equivalent of AWS AMI Server

Openstack Object Storage (aka Swift)●Delivers Peta-scale object storage capabilities with redundancy built-in.

●Logical equivalent to AWS S3

An IaaS stack based on 3 pillars

Page 8: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

8 Presentation by Kyle MacDonald

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 Orchestra

KVM, Xen or LXC

Ubuntu Server

Ubuntu Cloud Guest

Any OS

OpenStack

Your Workloads

Page 9: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

9 Presentation by Nick Barcet

Orchestra

Page 10: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

10 Presentation by Kyle MacDonald

Ubuntu Orchestra

Install Orcherstra on your first server

Orchestra Infrastructure Server

Page 11: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

11 Presentation by Kyle MacDonald

Ubuntu Orchestra

Associate profiles with MAC addresses via the web or API interface

Orchestra Infrastructure Server

Page 12: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

12 Presentation by Kyle MacDonald

Ubuntu Orchestra

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

Orchestra Infrastructure Server

Page 13: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

13 Presentation by Kyle MacDonald

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

Page 14: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

14 Presentation by Kyle MacDonald

Installing Orcherstra

> sudo apt-get install ubuntu-orchestra-server

Page 15: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

15 Presentation by Kyle MacDonald

Installing Orcherstra

Page 16: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

16 Presentation by Kyle MacDonald

Installing Orchestra

Page 17: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

17 Presentation by Kyle MacDonald

Installing Orchestra

Page 18: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

18 Presentation by Kyle MacDonald

Page 19: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

19 Presentation by Kyle MacDonald

Orchestra ready

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

–> Let's define some servers

Page 20: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

20 Presentation by Kyle MacDonald

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"

Page 21: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

21 Presentation by Nick Barcet

JujuDevops Distilled

Page 22: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

22 Presentation by Kyle MacDonald

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

Page 23: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

23 Presentation by Kyle MacDonald

What drives DevOps?

● Speed of the deployment

● Continuous Integration, Automated Testing, etc.

● Fast change vs. Stability

Page 24: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

24 Presentation by Kyle MacDonald

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

Page 25: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

25 Presentation by Kyle MacDonald

You've got the tools already

● Hardware

● Virtualization

● Platform (OS)

● Configuration Management

… need to tie that together into something whole.

Page 26: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

26 Presentation by Nick Barcet

Manages Services, not Machines

Page 27: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

27 Presentation by Kyle MacDonald

Elevate to Juju

ServiceOrchestration

ConfigurationManagement

Virtualization

OperatingSystem

Hardware

Page 28: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

28 Presentation by Kyle MacDonald

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

Page 29: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

29 Presentation by Kyle MacDonald

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 charm is similar to installing a package on Ubuntu:

ask for it and it’s there, remove it and it’s completely gone.

Page 30: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

30 Presentation by Kyle MacDonald

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 charms

Page 31: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

31 Presentation by Kyle MacDonald

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.

Page 32: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

32 Presentation by Kyle MacDonald

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.

Page 33: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

33 Presentation by Kyle MacDonald

Juju is Easy

● There’s no need to learn a domain specific language (DSL) to

use Juju or create charms. You can be up and running with

your own charm in minutes

Page 34: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

34 Presentation by Nick Barcet

Juju's internals

Page 35: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

35 Presentation by Kyle MacDonald

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

Page 36: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

36 Presentation by Kyle MacDonald

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

Page 37: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

37 Presentation by Kyle MacDonald

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

Page 38: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

38 Presentation by Kyle MacDonald

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

Page 39: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

39 Presentation by Kyle MacDonald

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

Page 40: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

40 Presentation by Nick Barcet

Deploying OpenStack with Juju

Page 41: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

41 Presentation by Kyle MacDonald

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

Page 42: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

42 Presentation by Kyle MacDonald

Deploying OpenStak

● > juju bootstrap

● > juju deploy mysql --placement=local

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

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

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

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

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

● > juju add-relation glance mysql

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

● > juju deploy --config=~/charms/openstack.yaml --repository=`pwd` 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

Page 43: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

43 Presentation by Nick Barcet

OpenStack is now ready !

Page 44: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

44 Presentation by Kyle MacDonald

Scaling OpenStack

● > juju add-unit nova-compute

or

● > juju add-unit nova-cloud-controller

Page 45: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

45 Presentation by Kyle MacDonald

Juju key take-outs

● Juju is Easy

● Juju can deploy on bare metal with Orchestra

● Juju can deploy on Openstack and AWS

● Juju is available today

● Juju is supported today

● Juju is innovative technology that bring value by it's simplicity

● Juju provides a growing collections of charms for leading

workloads

Page 46: Deploying with Ubuntu Cloudodm.ubuntu.com/uhs/2011/Deploying Ubuntu Cloud.pdf · Deploying with Ubuntu Cloud Nick Barcet  Ubuntu Cloud Product Manager

Thank you

Nick Barcet

<[email protected]>

www.ubuntu.com