JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

Post on 14-Dec-2014

1.314 views 0 download

description

JBoss Developer Webinar Series: BoxGrinder & SteamCannon.

Transcript of JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon

JBoss. Cloud.Bob McWhirterTechnical ArchitectJBoss Fellow

1

Who am I?

• Joined JBoss in 2007

• Co-founder of Drools

• Bob the Despot of the Codehaus

• aka "BMW"

2

Agenda

• Define some terminology

• BoxGrinder to create Virtual Machines

• SteamCannon to create a PaaS

• Demos

• Deltacloud

3

Terminology

4

IaaS

• Infrastructure as a service.

• Virtual hardware.

• Pretty barren.

• Amazon EC2, Rackspace Cloud

5

PaaS

• Platform as a Service.

• Higher-order substrate for applications.

• Google App Engine, Heroku

6

Image

• A snapshot/template for a server.

• Archetypical VM copied and launched.

• AMI, .vmx, .raw

7

Instance

• A server launched from an image.

8

1. IaaS

9

Infrastructure

10

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

Undifferentiated

11

Slightly Differentiated

12

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

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

15

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

But serves no particular purpose...

16

2. PaaS

17

Platform gives purpose...

18

Platform

19

A substrate upon which to deploy your applications.

The contract your application targets.

Application

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

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

20

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

21

Platforms customize the infrastructure

22

With IaaS, a server is the unit of deployment

23

Platforms are servers operating in collusion

24

25

Load Balancer

App Server

Database

App ServerApp Server

26

How do we create these colluding server units?

27

28

Simple Appliance

Description

VMware

EC2 S3 AMI

EC2 EBS AMI

KVM

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"

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"

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"

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"

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"

34

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

35

Time passes...

ami-XXXXXX

36

A few times

37

• Front-end (httpd, mod_cluster)

• Appserver (JBoss AS6 + TorqueBox)

• Database (PostgresSQL)

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

38

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

39

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

40

SteamCannon

41

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

42

Environment

Platform Image

Instance1..* 1..*

1..*

based on based on

43

Platforms

• JBoss 2-Tier

• JBoss 3-Tier

• Developer Standalone

Environments• My Sandbox

• My Other Sandbox

• Staging

• QA

• Production

• Steven

• Experimental

44

Demo!(Photo Album)

45

1. SteamCannon launches a node.

46

2. It deploys an application to the node.

47

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

48

1. SteamCannon launches several nodes.

49

2. SteamCannon orchestrates weaving them together.

50

3. SteamCannon deploys artifacts to the correct services.

51

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

Deltacloud

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

53

Demo!(Deltacloud API)

54

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

Try it!

•http://boxgrinder.org/

•http://steamcannon.org/

• Download the VMware image

• Boot the AMI

• http://steamcannon.org/try/

56

Q&A

57