unifying the cloud experience with ubuntu server · 1 unifying the cloud experience adam gandelman...

27
1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team [email protected] www.canonical.com CloudOpen 2012 with Ubuntu Server

Upload: others

Post on 25-Sep-2019

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

1

Unifying the Cloud Experience

Adam Gandelman

Ubuntu Server Cloud Infrastructure Team

[email protected]

www.canonical.com

CloudOpen 2012

with Ubuntu Server

Page 2: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

2

My Cloud Story – The Beginning● Building virtualization stacks and rudementary “clouds”

- Xen, Kvm, iSCSI, DRBD, Pacemaker, etc. ●Glue, Glue, Glue. Duct Tape, Duct Tape, Duct Tape.

- The basics were there, but the management capabilites were not.● Proprietary offerings were better but $$$ was an issue.● Open Source solutions worked but still a bit clunky● My Goals: Lowering costs, not so much accelerating productivity

Page 3: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

3

My Cloud Story – The Amazon Days● Working Operations at a Software-as-a-service startup● True Infrastructure-as-a-Service● APIs to meet our needs● Traded performance for amazing flexibility● automation == foozball (read: Beer)● Introduction to Ubuntu Server (the defacto on EC2)● Something seems off...

Page 4: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

4

My Cloud Story – The Amazon Days● Working Operations at a Software-as-a-service startup● True Infrastructure-as-a-Service● APIs to meet our needs● Traded performance for amazing flexibility● automation == foozball (read: Beer)● Introduction to Ubuntu Server (the defacto on EC2)● Something seems off...

vendor lock in security

closed source ???

Page 5: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

5

My Cloud Story – The Open Cloud● Safe to assume Amazon leverages FOSS ● Lets build a platform that suites the needs of all its users● Allow and encourage community and growth● We have the tools and we know how to use them: OS, software, community.

Page 6: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

6

My Cloud Story – The Future● ???

Page 7: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

7

Ubuntu Cloud Technical Overview

OpenStack

Ubuntu Server

UbuntuServer

Other OS

Orchestrated Services

Juju

UbuntuServer

MAAS

Intel, AMD, ARM

QualityAssurance

Juju

●Innovation and Quality from Top to Bottom

● Tightly integrated, loosely coupled

● Predictable, reliable

Page 8: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

8

Ubuntu Cloud Technical Overview

OpenStack

Ubuntu Server

UbuntuServer

Other OS

Orchestrated Services

● A Solid Foundation ● Cadence● Feature-rich● Supported

Juju

UbuntuServer

MAAS

Intel, AMD, ARM

QualityAssurance

Juju

Page 9: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

9

Ubuntu Cloud Technical Overview

Ubuntu Server

UbuntuServer

Other OS

Orchestrated Services

● A Solid Foundation ● Cadence● Feature-rich● Supported

Juju

UbuntuServer

MAAS

Intel, AMD, ARM

QualityAssurance

Juju

● Open IaaS● Flexible● Configurable● Open and Free

UbuntuServer

Other OS

UbuntuServer

OpenStack

Page 10: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

10

Ubuntu Cloud Technical Overview

Ubuntu Server

UbuntuServer

Other OS

Orchestrated Services

● A Solid Foundation ● Cadence● Feature-rich● Supported

Juju

UbuntuServer

MAAS

Intel, AMD, ARM

QualityAssurance

Juju

● Open IaaS● Flexible● Configurable● Open and Free

UbuntuServer

Other OS

UbuntuServer

OpenStack

Orchestrated Services

● Enabling IT for the Future● Automation● DevOps● Agility

Page 11: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

11

Ubuntu Cloud Technical Overview

Ubuntu Server

UbuntuServer

Other OS

Orchestrated Services

● A Solid Foundation ● Cadence● Feature-rich● Supported

Juju

UbuntuServer

MAAS

Intel, AMD, ARM

QualityAssurance

Juju

● Open IaaS● Flexible● Configurable● Open and Free

UbuntuServer

Other OS

UbuntuServer

OpenStack

Orchestrated Services

● Enabling IT for the Future● Automation● DevOps● AgilityJuju

MAAS

Juju

Page 12: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

12

Juju?

Service Orchestration Framework

● Originally intended for the cloud (EC2):

$ juju deploy cs:wordpress

$ juju add-relation wordpress haproxy

$ juju add-unit wordpress

● It would be useful to expand to other providers:

$ juju deploy -e hpcloud cs:hadoop-slave$ juju add-relation hadoop-slave hadoop-master$ juju add-unit -n 10 hadoop-slave

● Also became apparent the same has value on HW:

$ juju deploy -e MAAS cs:nova-compute$ juju add-relation nova-compute nova-cloud-controller$ juju add-unit -n 5 nova-compute

Page 13: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

13

How do we do it?

● Problem 1: Cloud inter-operability● EC2, HP, Azure, etc., etc.

● Problem 2: Hardware● Hyper-scale?

We have the tools and we know to use them.

Ubuntu Cloud Images

cloud-init

MAAS

Page 14: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

14

Metal-as-a-Service (MAAS)

Ubuntu Server

UbuntuServer

Other OS

Juju

UbuntuServer

MAAS

Intel, AMD, ARM

Juju

UbuntuServer

Other OS

UbuntuServer

OpenStack

Orchestrated Services

Juju

MAAS

Juju

Ubuntu Server

UbuntuServer

Other OS

Juju

UbuntuServer

MAAS

Intel, AMD, ARM

Juju

UbuntuServer

Other OS

UbuntuServer

OpenStack

Orchestrated Services

Juju

MAAS

Juju

Ubuntu Server

UbuntuServer

Other OS

Juju

UbuntuServer

MAAS

Intel, AMD, ARM

Juju

UbuntuServer

Other OS

UbuntuServer

OpenStack

Orchestrated Services

Juju

MAAS

Juju

● Hardware management and inventory● Automatic discovery and enlistment.● Node inventory● Graphical management.

● API-driven machine provisioning● Consumable by Juju as a baremetal provider● Dynamic, flexible and “cloudy”

● Designed to scale● OpenStack● Hadoop● Cloudfoundry

Page 15: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

15

cloud-init

Ubuntu Server

UbuntuServer

Other OS

Juju

UbuntuServer

MAAS

Intel, AMD, ARM

Juju

UbuntuServer

Other OS

UbuntuServer

OpenStack

Orchestrated Services

Juju

MAAS

Juju

Ubuntu Server

UbuntuServer

Other OS

Juju

UbuntuServer

MAAS

Intel, AMD, ARM

Juju

UbuntuServer

Other OS

UbuntuServer

OpenStack

Orchestrated Services

Juju

MAAS

Juju

Ubuntu Server

UbuntuServer

Other OS

Juju

UbuntuServer

MAAS

Intel, AMD, ARM

Juju

UbuntuServer

Other OS

UbuntuServer

OpenStack

Orchestrated Services

Juju

MAAS

Juju

● Flexible, First boot configuration system● Yaml format● Install packages, import SSH Keys, run arbitrary

scripts, etc.● Integrated with system init.

● Provider agnostic● Plugable data sources● EC2, OpenStack (config drive), KVM, local

● Easily extended● Many user-contributed extensions and data

sources.

● Integrated● Baked into Ubuntu Cloud Images.● Used heavily by MAAS and Juju

Page 16: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

16

Example cloud-init

#cloud-configpackages: - git - bzr - python-setuptools - python-pip - vim - tmux - ipython

apt_mirror: http://mirror.home.base/ubuntu/

runcmd: - [ wget, "http://amebix.home.base/~adam/devenv/vimrc", -O, /home/ubuntu/.vimrc ] - [ wget, "http://amebix.home.base/~adam/devenv/bash_aliases", -O, /home/ubuntu/.bash_aliases ] - [ wget, "http://amebix.home.base/~adam/devenv/gitconfig", -O, /home/ubuntu/.gitconfig ] - [ wget, "http://amebix.home.base/~adam/devenv/gdbinit", -O, /home/ubuntu/.gdbinit ]

Page 17: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

17

Example cloud-init

#cloud-config# Mounts volfile exported by glusterfsd running on# "volfile-server-hostname" onto the local mount point '/mnt/data'#packages: - glusterfs-client

mounts: - [ 'volfile-server-hostname:6996', /mnt/data, glusterfs, "defaults,nobootwait", "0", "2" ]

runcmd: - [ modprobe, fuse ] - [ mkdir, '-p', /mnt/data ] - [ mount, '-a' ]

Page 18: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

18

Ubuntu Cloud Images

Ubuntu Server

UbuntuServer

Other OS

Juju

UbuntuServer

MAAS

Intel, AMD, ARM

Juju

UbuntuServer

Other OS

UbuntuServer

OpenStack

Orchestrated Services

Juju

MAAS

Juju

Ubuntu Server

UbuntuServer

Other OS

Juju

UbuntuServer

MAAS

Intel, AMD, ARM

Juju

UbuntuServer

Other OS

UbuntuServer

OpenStack

Orchestrated Services

Juju

MAAS

Juju

Ubuntu Server

UbuntuServer

Other OS

Juju

UbuntuServer

MAAS

Intel, AMD, ARM

Juju

UbuntuServer

Other OS

UbuntuServer

OpenStack

Orchestrated Services

Juju

MAAS

Juju

● Base OS image● Public Cloud● Private Cloud● KVM● LXC

● Maintained, supported● Tested● Bug fixes, security updates

● Daily Builds, Easily Avaiable● cloud-images.ubuntu.com● API● Compatable● Releases back to Hardy

Page 19: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

19

Consuming the images

Page 20: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

20

Consuming the images

Page 21: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

21

Consuming the images

EC2 via cloud-utils

$ ubuntu-cloudimg-query ami-fe5bd4ce

$ euca-run-instances -k adam -t t1.micro ami-fe5bd4ce

Page 22: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

22

Consuming the images

OpenStack

$ glance add name=ubuntu-12.04 container_format=ami \ disk_format=ami \ ubuntu-12.04-server-cloudimg-amd64-disk1.img

Uploading image 'ubuntu-12.04-amd64'Added new image with ID: 3564c7fd-6346-46e0-b810-f8a9bad5f854

$ nova boot --flavor m1.small \ --image 3564c7fd-6346-46e0-b810-f8a9bad5f854 \ my_server

Page 23: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

23

Tightly Integrated, Loosely Coupled

OpenStack

Ubuntu Server

UbuntuServer

Other OS

Orchestrated Services

Juju

UbuntuServer

MAAS

Intel, AMD, ARM

QualityAssurance

Juju

● MAAS can deploy any workload Juju can deploy.

● Hadoop on EC2● Hadoop on Metal

● MAAS is but one of many Juju providers.

● EC2, Openstack, Azure, LXC

● Cloud Images and cloud-init environment agnostic.

● Cloud-config on hardware● Ubuntu Cloud Image in LXC

Page 24: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

24

Unifying the Experience

● On EC2:$ juju deploy -e EC2 cs:wordpress$ juju add-relation wordpress haproxy$ juju add-unit wordpress

● On baremetal:$ juju deploy -e MAAS cs:nova-compute$ juju add-relation nova-compute nova-cloud-controller$ juju add-unit -n 5 nova-compute

● On HP Cloud:$ juju deploy -e hpcloud cs:hadoop-slave$ juju add-relation hadoop-slave hadoop-master$ juju add-unit -n 10 hadoop-slave

● On your private cloud:$ juju deploy -e openstack cs:mediawiki$ juju add-relation mediawiki mysql

Page 25: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

25

My Own Use Case

OpenStack Integration Testing

Page 26: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

26

My Own Use Case

OpenStack Integration Testing

● Using Juju and MAAS, deploy full OpenStack cloud to bare-metal

● Run integration and smoke tests against deployed cloud

● Use Juju to deploy an application into the new cloud, native OS API

● Use Juju to deploy an application into the new cloud, native EC2 API

Page 27: Unifying the Cloud Experience with Ubuntu Server · 1 Unifying the Cloud Experience Adam Gandelman Ubuntu Server Cloud Infrastructure Team Adam.gandelman@canonical.com CloudOpen 2012

27

Thank you.

Adam Gandelman

Ubuntu Server Cloud Infrastructure Team

[email protected]

www.canonical.com

CloudOpen 2012

Questions?