juju on ubuntu cloud

42

Upload: francisco-goncalves

Post on 13-May-2015

2.604 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Juju on ubuntu cloud
Page 2: Juju on ubuntu cloud

Zhengpeng [email protected] Ltd.

Page 3: Juju on ubuntu cloud

3

What is DevOps?

Page 4: Juju on ubuntu cloud

4

What drives DevOps?

● Speed of the deployment● Continuous Integration, Automated Testing,

etc. ● Fast change vs. Stability

Page 5: Juju on ubuntu cloud

5

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 6: Juju on ubuntu cloud

6

You've got the tools already

● Hardware● Virtualization● Platform (OS) ● Configuration Management● … need to tie that together into something whole.

Page 7: Juju on ubuntu cloud

7

Manages Services, not Machines

Devops Distilled

Page 8: Juju on ubuntu cloud

8

Elevate to Juju

ServiceOrchestration

ConfigurationManagement

Virtualization

OperatingSystem

Hardware

Page 9: Juju on ubuntu cloud

9

Juju is DevOps distilled.

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.

Page 10: Juju on ubuntu cloud

10

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

Page 11: Juju on ubuntu cloud

11

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.

Page 12: Juju on ubuntu cloud

12

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 13: Juju on ubuntu cloud

13

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.

Page 14: Juju on ubuntu cloud

14

● Encapsulates services - a formula defines all the ways the service needs to expose or consume config data to/from other services.

● Orchestrates provisioning (EC2, OpenStack, Bare Metal)

● Juju makes sharing Charms easy

Page 15: Juju on ubuntu cloud

15

Page 16: Juju on ubuntu cloud

16 Presentation by B.Saller, N.Barcet

Page 17: Juju on ubuntu cloud

17 Presentation by B.Saller, N.Barcet

Page 18: Juju on ubuntu cloud

18 Presentation by B.Saller, N.Barcet

Page 19: Juju on ubuntu cloud

19 Presentation by B.Saller, N.Barcet

Page 20: Juju on ubuntu cloud

20 Presentation by B.Saller, N.Barcet

Page 21: Juju on ubuntu cloud

21

$ juju bootstrap$ juju deploy hadoop-master$ juju deploy hadoop-slave

Page 22: Juju on ubuntu cloud

22

Charms

● Reusable, codified best-practice. ● Distilled deployment expertise.● Communication via interfaces.● Doesn't require foreknowledge of who will

use them or how

Page 23: Juju on ubuntu cloud

23

Relating services

Page 24: Juju on ubuntu cloud

24

Relations

● A high-level interface describing the interactions between services

● Services have `provides` and `requires` interfaces● Juju models the relationship between services, not

machines

Page 25: Juju on ubuntu cloud

25

Scaling services

Page 26: Juju on ubuntu cloud

26

DOES THIS WEBSCALE?

Page 27: Juju on ubuntu cloud

27

Services

Services change during their lifetime:

● Number of instances?

● Which machines they run on?

● What services they depend on?

● And how those services are implemented?

Page 28: Juju on ubuntu cloud

28

$ juju bootstrap$ juju deploy hadoop-master$ juju deploy hadoop-slave$ juju add-relation hadoop-master hadoop-slave$ juju add-unit hadoop-slave

Page 29: Juju on ubuntu cloud

29

$ juju bootstrap$ juju deploy hadoop-master$ juju deploy hadoop-slave$ juju add-relation hadoop-master hadoop-slave$ juju add-unit hadoop-slave$ juju add-unit hadoop-slave

Page 30: Juju on ubuntu cloud

30

$ juju bootstrap$ juju deploy hadoop-master$ juju deploy hadoop-slave$ juju add-relation hadoop-master hadoop-slave$ juju add-unit hadoop-slave$ juju add-unit hadoop-slave$ juju add-unit hadoop-slave

Page 31: Juju on ubuntu cloud

31

Page 32: Juju on ubuntu cloud

32

Page 33: Juju on ubuntu cloud

33

~40 charms~40 charms

Page 34: Juju on ubuntu cloud

34

Juju Under the Hood

Page 35: Juju on ubuntu cloud

35

Page 36: Juju on ubuntu cloud

36 Presentation by B.Saller, N.Barcet

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 37: Juju on ubuntu cloud

37 Presentation by B.Saller, N.Barcet

Juju

Each charm defines dependencies and/or provides.

Cloud appCloud appCloud app

LoadBalancerHAProxy

SQL DatabaseMySQL

Juju environment

and dependency solver

Depends Provides

Provides Depends

Page 38: Juju on ubuntu cloud

38 Presentation by B.Saller, N.Barcet

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 39: Juju on ubuntu cloud

39 Presentation by B.Saller, N.Barcet

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 formulas 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 40: Juju on ubuntu cloud

40 Presentation by B.Saller, N.Barcet

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 41: Juju on ubuntu cloud

● All development is public● Free and Open Source Software● Communication is open

Join Us● IRC: #juju on irc.freenode.net ● Launchpad: https://launchpad.net/juju ● Web: https://juju.ubuntu.com/

Page 42: Juju on ubuntu cloud

cloud.ubuntu.com