jboss developer webinar: cloud: boxgrinder & steamcannon
DESCRIPTION
JBoss Developer Webinar Series: BoxGrinder & SteamCannon.TRANSCRIPT
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