JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

57
JBoss. Cloud. Bob McWhirter Technical Architect JBoss Fellow 1

description

JBoss Developer Webinar Series: BoxGrinder & SteamCannon.

Transcript of JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Page 1: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

JBoss. Cloud.Bob McWhirterTechnical ArchitectJBoss Fellow

1

Page 2: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Who am I?

• Joined JBoss in 2007

• Co-founder of Drools

• Bob the Despot of the Codehaus

• aka "BMW"

2

Page 3: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Agenda

• Define some terminology

• BoxGrinder to create Virtual Machines

• SteamCannon to create a PaaS

• Demos

• Deltacloud

3

Page 4: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Terminology

4

Page 5: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

IaaS

• Infrastructure as a service.

• Virtual hardware.

• Pretty barren.

• Amazon EC2, Rackspace Cloud

5

Page 6: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

PaaS

• Platform as a Service.

• Higher-order substrate for applications.

• Google App Engine, Heroku

6

Page 7: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Image

• A snapshot/template for a server.

• Archetypical VM copied and launched.

• AMI, .vmx, .raw

7

Page 8: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Instance

• A server launched from an image.

8

Page 9: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

1. IaaS

9

Page 10: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Infrastructure

10

Virtual servers and networks, available and priced on a per-usage basis.

Page 11: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Undifferentiated

11

Page 12: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Slightly Differentiated

12

Page 13: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

13http://www.flickr.com/photos/pagedooley/1092862034/

Page 14: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

14http://www.flickr.com/photos/equitus/3435154099/

Page 15: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

15

http://www.flickr.com/photos/booleansplit/2979169728/

Page 16: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

But serves no particular purpose...

16

Page 17: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

2. PaaS

17

Page 18: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Platform gives purpose...

18

Page 19: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Platform

19

A substrate upon which to deploy your applications.

The contract your application targets.

Page 20: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Application

A collection of components, services and data solving some problem.

May be Java, Ruby, PHP, Perl, C, or a mixture.

20

Page 21: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Don't get hung up on .wars and .ears.

21

Page 22: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Platforms customize the infrastructure

22

Page 23: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

With IaaS, a server is the unit of deployment

23

Page 24: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Platforms are servers operating in collusion

24

Page 25: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

25

Load Balancer

App Server

Database

App ServerApp Server

Page 26: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

26

How do we create these colluding server units?

Page 27: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

27

Page 28: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

28

Simple Appliance

Description

VMware

EC2 S3 AMI

EC2 EBS AMI

KVM

Page 29: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

29

name: appserverversion: 1release: 5summary: SteamCannon back-end appliancehardware: memory: 2048 partitions: "/": size: 4appliances: - _basepackages: includes: - jboss-as6 - jboss-as6-cloud-profiles - torquebox-jruby - torquebox-deployers - torquebox-cloud-profiles-deployerspost: base: - "echo -e '\n - JBossAS' >> /etc/sysconfig/steamcannon-agent"

Page 30: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

30

name: appserverversion: 1release: 5summary: SteamCannon back-end appliancehardware: memory: 2048 partitions: "/": size: 4appliances: - _basepackages: includes: - jboss-as6 - jboss-as6-cloud-profiles - torquebox-jruby - torquebox-deployers - torquebox-cloud-profiles-deployerspost: base: - "echo -e '\n - JBossAS' >> /etc/sysconfig/steamcannon-agent"

Page 31: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

31

name: appserverversion: 1release: 5summary: SteamCannon back-end appliancehardware: memory: 2048 partitions: "/": size: 4appliances: - _basepackages: includes: - jboss-as6 - jboss-as6-cloud-profiles - torquebox-jruby - torquebox-deployers - torquebox-cloud-profiles-deployerspost: base: - "echo -e '\n - JBossAS' >> /etc/sysconfig/steamcannon-agent"

Page 32: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

32

name: appserverversion: 1release: 5summary: SteamCannon back-end appliancehardware: memory: 2048 partitions: "/": size: 4appliances: - _basepackages: includes: - jboss-as6 - jboss-as6-cloud-profiles - torquebox-jruby - torquebox-deployers - torquebox-cloud-profiles-deployerspost: base: - "echo -e '\n - JBossAS' >> /etc/sysconfig/steamcannon-agent"

Page 33: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

33

name: appserverversion: 1release: 5summary: SteamCannon back-end appliancehardware: memory: 2048 partitions: "/": size: 4appliances: - _basepackages: includes: - jboss-as6 - jboss-as6-cloud-profiles - torquebox-jruby - torquebox-deployers - torquebox-cloud-profiles-deployerspost: base: - "echo -e '\n - JBossAS' >> /etc/sysconfig/steamcannon-agent"

Page 34: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

34

$ boxgrinder-build -W \ appserver.appl \ -p ec2 -d ami

Page 35: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

35

Time passes...

Page 36: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

ami-XXXXXX

36

Page 37: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

A few times

37

• Front-end (httpd, mod_cluster)

• Appserver (JBoss AS6 + TorqueBox)

• Database (PostgresSQL)

• All-in-one (JBoss AS6 + PostgresSQL)

Page 38: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

38

http://www.flickr.com/photos/deltamike/112665708/

Page 39: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

39

http://www.flickr.com/photos/resedabear/4739589400/

Page 40: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

40

SteamCannon

Page 41: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

41

http://www.flickr.com/photos/sheilascarborough/3532118420/

Page 42: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

42

Environment

Platform Image

Instance1..* 1..*

1..*

based on based on

Page 43: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

43

Platforms

• JBoss 2-Tier

• JBoss 3-Tier

• Developer Standalone

Page 44: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Environments• My Sandbox

• My Other Sandbox

• Staging

• QA

• Production

• Steven

• Experimental

44

Page 45: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Demo!(Photo Album)

45

Page 46: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

1. SteamCannon launches a node.

46

Page 47: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

2. It deploys an application to the node.

47

Page 48: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Demo!(Rails 3, clustered, *-ds.xml)

48

Page 49: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

1. SteamCannon launches several nodes.

49

Page 50: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

2. SteamCannon orchestrates weaving them together.

50

Page 51: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

3. SteamCannon deploys artifacts to the correct services.

51

Page 52: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Bottom line...

52

• BoxGrinder allows us to bake "best practices" into server images

• SteamCannon adds trusted remote hands to do the logistics of clustering & configuration

• Click and deploy, even complex, multi-artifact applications

Page 53: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Deltacloud

Oh yeah, SteamCannon talks to the IaaS provider using the Deltacloud API.

53

Page 54: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Demo!(Deltacloud API)

54

Page 55: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Future directions

• Additional platforms, including other data and service platforms

• Infinispan (Data grid)

• HornetQ (Messaging fabric)

• Improved UI/UX/Workflows

• Higher-order "applications"

• Movement between environments

55

Page 56: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Try it!

•http://boxgrinder.org/

•http://steamcannon.org/

• Download the VMware image

• Boot the AMI

• http://steamcannon.org/try/

56

Page 57: JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Q&A

57