SlideShare uma empresa Scribd logo
1 de 80
Baixar para ler offline
Bob McWhirter
 JBoss Fellow
Bob McWhirter
 JBoss Fellow
Who is Bob?
• JBoss Fellow
• Chief Architect of Middleware Cloud
  Computing
• Founder of...
  • The Codehaus
  • Drools
  • TorqueBox
Who is Marek?

• Marek Goldmann
• Polish!
• Electronic musician
•The guy who
 actually does
 all the work
Background

  Software
   (SaaS)


  Platform
   (PaaS)
                       Simplified
                     “cloud” stack
Infrastructure
     (IaaS)
Background

  Software
   (SaaS)              What you write
  Platform
   (PaaS)


Infrastructure
     (IaaS)
Background

  Software
   (SaaS)              What you write
  Platform
   (PaaS)              What you target
Infrastructure
     (IaaS)
Background

  Software
   (SaaS)              What you write
  Platform
   (PaaS)              What you target
Infrastructure
     (IaaS)            Where it runs
Background

  Software
   (SaaS)              What you write
  Platform
   (PaaS)              What you target
       You don’t want to care
Infrastructure
     (IaaS)            Where it runs
BoxGrinder helps turn
bare hardware into a
  useful substrate.
       (or “platform”)
BoxGrinder doesn’t
care what you consider
   to be a platform
Virtual Machines
   “appliances”
But first...


There’s at least two different
ideological camps with opinions
on creating virtual machines...
Bake v. Fry
Bake: Produce a complete virtual
machine offline, before first use.

Fry: Produce a complete virtual
machine by booting a basic VM
and then applying configuration.
Bake                    Fry
Quicker launch          Longer launch
Requires more storage   Less storage
Not up-to-date          More up-to-date
Storage
Bake                         Fry
   Base Appliance              Base Appliance


                                  Web config
   Web Appliance
                              Messaging config

Messaging Appliance           Transactions config



Transactions Appliance
Bake!


We think baking is The Right Way,
especially for developers simply
looking for reliable platforms.
Bake & Fry

Baking out an appliances does not
prohibit using existing update
mechanisms. It just provides a
starting point.
Grind

BoxGrinder grinds out fully-
configured and usable virtual
machines for a variety of IaaS
fabrics.
Repo                Repo

                      Repo


                                         EC2

Appliance
                    BoxGrinder          VMware
Definition

                                         KVM
Appliance Definition

•YAML – not XML
•Allow mix-ins/composition
•Easily re-target different base
 OSes
Let’s build a
JBossAS Appliance
Quick Example
name: back-end
version: 1
release: 1
summary: back-end appliance with JBoss AS 6
hardware:
  memory: 512
  partitions:
    "/":
      size: 2
appliances:
  - cirras
packages:
  includes:
    - jboss-as6
    - jboss-as6-cloud-profiles
    - java-1.6.0-openjdk
Prolog
name: back-end
version: 1
release: 1
summary: back-end appliance with JBoss AS 6
hardware:
  memory: 512
  partitions:
    "/":
      size: 2
appliances:
  - cirras
packages:
  includes:
    - jboss-as6
    - jboss-as6-cloud-profiles
    - java-1.6.0-openjdk
Prolog


name: back-end
version: 1
release: 1
summary: back-end appliance with JBoss AS 6
Hardware
name: back-end
version: 1
release: 1
summary: back-end appliance with JBoss AS 6
hardware:
  memory: 512
  partitions:
    "/":
      size: 2
appliances:
  - cirras
packages:
  includes:
    - jboss-as6
    - jboss-as6-cloud-profiles
    - java-1.6.0-openjdk
Hardware


hardware:
  memory: 512   512MB
  partitions:
    "/":
      size: 2   2GB
Appliance Mix-ins
name: back-end
version: 1
release: 1
summary: back-end appliance with JBoss AS 6
hardware:
  memory: 512
  partitions:
    "/":
      size: 2
appliances:
  - cirras
packages:
  includes:
    - jboss-as6
    - jboss-as6-cloud-profiles
    - java-1.6.0-openjdk
Appliance Mix-ins


appliances:
  - cirras  Mixing in cirras.appl
Tangent: cirras.appl
name: cirras
summary: Appliance template for CirrAS appliances
os:
  name: fedora
  version: 11
hardware:
  memory: 256
  partitions:
    "/":
      size: 1
packages:
  includes:
    - bash
    - kernel
    - grub
    - e2fsprogs
    - passwd
    - policycoreutils
    - chkconfig
    ...
Tangent: cirras.appl
name: cirras
summary: Appliance template for CirrAS appliances
os:
  name: fedora
  version: 11
hardware:
  memory: 256
  partitions:
    "/":
      size: 1
packages:
  includes:
    - bash
    - kernel
    - grub
    - e2fsprogs
    - passwd
    - policycoreutils
    - chkconfig
    ...
Appliance Mix-ins
           cirras.appl mixed in




os:
  name: fedora
  version: 11
Appliance Mix-ins
            cirras.appl mixed in



repos:
  - name: "cirras-#ARCH#"
    baseurl: "http://repo.boxgrinder.org/cirras/p
  - name: "cirras-noarch"
    baseurl: "http://repo.boxgrinder.org/cirras/p
Appliance Mix-ins
back-end.appl               cirras.appl
                overrides
hardware:                   hardware:
  memory: 512                 memory: 256
  partitions:                 partitions:
    "/":                        "/":
      size: 2                     size: 1
Okay, let’s get back to
back-end.appl...
Contents
name: back-end
version: 1
release: 1
summary: back-end appliance with JBoss AS 6
hardware:
  memory: 512
  partitions:
    "/":
      size: 2
appliances:
  - cirras
packages:
  includes:
    - jboss-as6
    - jboss-as6-cloud-profiles
    - java-1.6.0-openjdk
Contents


packages:
  includes:
    - jboss-as6
    - jboss-as6-cloud-profiles
    - java-1.6.0-openjdk
Contents


packages:
                          plus everything from
  includes:
                          cirras.appl
    - jboss-as6
    - jboss-as6-cloud-profiles
    - java-1.6.0-openjdk
Great, I have a text file, what
 about a virtual machine?
Meta Appliance

Start with our meta-appliance VM
(built with BoxGrinder)

        Ruby • RubyGems • Git
     RPM dev tools • qemu • libguestfs
Simple installation


$ gem install boxgrinder-build

$ rpm -Uvh http://s3.amazonaws.com/ec2-
      downloads/ec2-ami-tools.noarch.rpm
Pipeline
                                     Plugins


 Simple      Build         Convert     EC2     Deliver
                     RAW
Definition                            VMware
Do it!

$ boxgrinder-build -V 
  ../cirras/appliances/back-end.appl
D, [2010-06-18T18:57:33.364113 #5110] DEBUG -- : Reading definition from '../cirras/appliances/back-end.appl' file...
D, [2010-06-18T18:57:33.365527 #5110] DEBUG -- : Reading definition from '../cirras/appliances/cirras.appl' file...
D, [2010-06-18T18:57:33.369167 #5110] DEBUG -- : Executing operating system plugin for fedora...
I, [2010-06-18T18:57:33.371979 #5110] INFO -- : Resolving packages added to back-end appliance definition file...
D, [2010-06-18T18:57:33.376092 #5110] DEBUG -- : Querying package database...
D, [2010-06-18T18:57:33.377037 #5110] DEBUG -- : Executing command: 'sudo repoquery --quiet --disablerepo=* --
enablerepo=boxgrinder_build-fedora-11-base,boxgrinder_build-fedora-11-updates,boxgrinder_build-cirras-
i386,boxgrinder_build-cirras-noarch -c build/appliances/i386/fedora/11/back-end/raw/back-end.yum.conf list available
jboss-as6 jboss-as6-cloud-profiles java-1.6.0-openjdk bash kernel grub e2fsprogs passwd policycoreutils chkconfig
rootfiles yum vim-minimal acpid dhclient iputils generic-logos openssh-server openssh-clients mkinitrd cirras-
management rhq-agent which sudo ruby-devel make gcc-c++ wget --nevra --archlist=i386,i486,i586,i686,noarch'




                                                            ...time passes...
Build

• Figure out the full set of RPMs
• Grab (and cache) them all
• Create a disk image, install them all
• Perform any post-install configuration
Pipeline
                                     Plugins


 Simple      Build         Convert     EC2     Deliver
                     RAW
Definition                            VMware
...and the build finishes

 ....
 ....
 INFO   --   :   Base image for back-end appliance was built successfully.
DEBUG   --   :   Operating system plugin executed.
DEBUG   --   :   No platform selected, skipping platform conversion.
DEBUG   --   :   No delivery method selected, skipping delivering.
But I use VMware!
Do it some more!

$ boxgrinder-build -V 
  ../cirras/appliances/back-end.appl 
  -p vmware
D,   [2010-06-18T20:39:00.931972   #7665]   DEBUG   --   :   Reading definition from '../cirras/appliances/back-end.appl' file...
D,   [2010-06-18T20:39:00.934336   #7665]   DEBUG   --   :   Reading definition from '../cirras/appliances/cirras.appl' file...
I,   [2010-06-18T20:39:00.939194   #7665]    INFO   --   :   Deliverables for fedora operating system plugin exists, skipping.
D,   [2010-06-18T20:39:00.940075   #7665]   DEBUG   --   :   Executing platform plugin for vmware...
I,   [2010-06-18T20:39:00.940689   #7665]    INFO   --   :   Converting image to VMware format...
D,   [2010-06-18T20:39:00.941295   #7665]   DEBUG   --   :   Copying VMware image file, this may take several minutes...




                                                                        ...time passes...
Pipeline
                                     Plugins


 Simple      Build         Convert     EC2     Deliver
                     RAW
Definition                            VMware
...and the conversion finishes

DEBUG   --   :   Building VMware enterprise image.
DEBUG   --   :   VMware enterprise image was built.
DEBUG   --   :   Building VMware personal image.
DEBUG   --   :   VMware personal image was built.
 INFO   --   :   Image converted to VMware format.
DEBUG   --   :   Platform plugin executed.
DEBUG   --   :   No delivery method selected, skipping delivering.
Conversion

• Converts disk formats
• Converts/synthesize VM metadata
• Applies platform-specific changes
 • add/remove packages
Wait, I use EC2.
EC2 Conversion

$ boxgrinder-build -V 
  ../cirras/appliances/back-end.appl 
  -p ec2
D,   [2010-06-18T20:56:30.934009   #7707]   DEBUG   --   :   Reading definition from '../cirras/appliances/back-end.appl' file...
D,   [2010-06-18T20:56:30.946411   #7707]   DEBUG   --   :   Reading definition from '../cirras/appliances/cirras.appl' file...
I,   [2010-06-18T20:56:30.951350   #7707]    INFO   --   :   Deliverables for fedora operating system plugin exists, skipping.
D,   [2010-06-18T20:56:30.952646   #7707]   DEBUG   --   :   Executing platform plugin for ec2...
I,   [2010-06-18T20:56:30.958164   #7707]    INFO   --   :   Converting back-end appliance image to EC2 format...
D,   [2010-06-18T20:56:30.958856   #7707]   DEBUG   --   :   Preparing disk for EC2 image...



                                                                        ...time passes...
EC2 requires special Xen kernels
  and AMI tools not present in typical
  RPM repositories

DEBUG -- : Installing additional packages
(kernel-xen-2.6.21.7-2.fc8.i686.rpm,
ec2-ami-tools.noarch.rpm)...
And it finishes conversion


 INFO -- : Image converted to EC2 format.
DEBUG -- : Platform plugin executed.
DEBUG -- : No delivery method selected, skipping delivering.
Pipeline
                                     Plugins


 Simple      Build         Convert     EC2     Deliver
                     RAW
Definition                            VMware


                           VMware


                            EC2
Now you have a useless
EC2 image on your local disk.

        F’awesome!
Amazon Credentials
$HOME/.boxgrinder/plugins/s3:
bucket: stormgrind-test
access_key: 1JF8xxxxxxxxx
secret_access_key: TRVRfko1vxxxxxxxxxxxxxxxxxx
account_number: 6010-xxxx-xxxx
cert_file: ~/.ec2/cert-LC42AGGJxxxxxxx.pem
key_file: ~/.ec2/pk-LC42AGGJxxxxxxx.pem
Amazon Credentials
$HOME/.boxgrinder/plugins/s3:
bucket: stormgrind-test
access_key: 1JF8xxxxxxxxx
secret_access_key: TRVRfko1vxxxxxxxxxxxxxxxxxx
account_number: 6010-xxxx-xxxx
cert_file: ~/.ec2/cert-LC42AGGJxxxxxxx.pem
key_file: ~/.ec2/pk-LC42AGGJxxxxxxx.pem
Amazon Credentials
$HOME/.boxgrinder/plugins/s3:
bucket: stormgrind-test
access_key: 1JF8xxxxxxxxx
secret_access_key: TRVRfko1vxxxxxxxxxxxxxxxxxx
account_number: 6010-xxxx-xxxx
cert_file: ~/.ec2/cert-LC42AGGJxxxxxxx.pem
key_file: ~/.ec2/pk-LC42AGGJxxxxxxx.pem
Amazon Credentials
$HOME/.boxgrinder/plugins/s3:
bucket: stormgrind-test
access_key: 1JF8xxxxxxxxx
secret_access_key: TRVRfko1vxxxxxxxxxxxxxxxxxx
account_number: 6010-xxxx-xxxx
cert_file: ~/.ec2/cert-LC42AGGJxxxxxxx.pem
key_file: ~/.ec2/pk-LC42AGGJxxxxxxx.pem
...and deliver it!

$ boxgrinder-build -V 
  ../cirras/appliances/back-end.appl 
  -p ec2 -d ami
D,   [2010-06-18T21:17:40.469872   #7913] DEBUG -- : Reading definition from '../cirras/appliances/back-end.appl' file...
D,   [2010-06-18T21:17:40.480562   #7913] DEBUG -- : Reading definition from '../cirras/appliances/cirras.appl' file...
I,   [2010-06-18T21:17:40.485056   #7913] INFO -- : Deliverables for fedora operating system plugin exists, skipping.
I,   [2010-06-18T21:17:40.485794   #7913] INFO -- : Deliverables for ec2 platform plugin exists, skipping.
D,   [2010-06-18T21:17:40.486385   #7913] DEBUG -- : Reading configuration file for BoxGrinder::S3Plugin.




                                                                ...time passes...
...and deliver it!

DEBUG -- : Executing command: 'ec2-bundle-
image -i build/appliances/i386/fedora/11/back-
end/ec2/back-end.ec2 --kernel aki-a71cf9ce --
ramdisk ari-a51cf9cc

ec2-upload-bundle
                    ...more time passes...
Pipeline
                                     Plugins


 Simple      Build         Convert     EC2     Deliver
                     RAW
Definition                            VMware


                           VMware


                            EC2                  AMI
and finally...


Image successfully registered under id: ami-XXXXX.
S3
EC2
Notes...

• If you’re building for EC2, start with a
  meta-appliance on EC2. Uploading
  across the WAN sucks hard.
• Architecture of host must match the
  architecture of appliances being built.
Wait, what?

Architecture of the host must match the
architecture of the appliances being built.

           x86_64          i386
RESTful API for driving farms
 of BoxGrinder-Build nodes.
BoxGrinder-REST

                                       BoxGrinder node



Definition   BoxGrinder REST   Queue      BoxGrinder node



                                       BoxGrinder node
BoxGrinder-REST

                                           BoxGrinder node



Definition      BoxGrinder REST   Queue         BoxGrinder node



                                           BoxGrinder node




             Runs on TorqueBox, using HornetQ
BoxGrinder-REST
• Queue per each supported platform
• Multiple builders per queue possible
• Builders launching on-demand soon
 • Using Deltacloud
• Supports for multiple conversions
• Supports multiple deliveries
BoxGrinder-REST


• Command-line interface
• Web Client (BoxGrinder-Studio?)
• IDE integration (JBoss Tools?)
Currently Supports
OS             Arch     Hypervisor
RHEL 5         x86_64   KVM
Fedora 11-13   i386     Xen
                        VMware personal
                        VMware enterprise
Delivery
                        Amazon EC2
Local
SFTP
S3
CloudFront
AMI
Thanks!
Q&A
Resources
http://github.com/stormgrind/ # Code
http://jboss.org/stormgrind/ # Projects
http://cloudpress.org/        # Blog


#stormgrind                  # IRC


@stormgrind                  # Twitter
@marekgoldmann
@bobmcwhirter

Mais conteúdo relacionado

Mais procurados

TorqueBox - When Java meets Ruby
TorqueBox - When Java meets RubyTorqueBox - When Java meets Ruby
TorqueBox - When Java meets RubyBruno Oliveira
 
Making Your Capistrano Recipe Book
Making Your Capistrano Recipe BookMaking Your Capistrano Recipe Book
Making Your Capistrano Recipe BookTim Riley
 
DataMapper on Infinispan
DataMapper on InfinispanDataMapper on Infinispan
DataMapper on InfinispanLance Ball
 
Java/Spring과 Node.js의공존
Java/Spring과 Node.js의공존Java/Spring과 Node.js의공존
Java/Spring과 Node.js의공존동수 장
 
The Enterprise Strikes Back
The Enterprise Strikes BackThe Enterprise Strikes Back
The Enterprise Strikes BackBurke Libbey
 
Ansible v2 and Beyond (Ansible Hawai'i Meetup)
Ansible v2 and Beyond (Ansible Hawai'i Meetup)Ansible v2 and Beyond (Ansible Hawai'i Meetup)
Ansible v2 and Beyond (Ansible Hawai'i Meetup)Timothy Appnel
 
Torquebox - O melhor dos dois mundos
Torquebox - O melhor dos dois mundosTorquebox - O melhor dos dois mundos
Torquebox - O melhor dos dois mundosBruno Oliveira
 
Amazon EC2 Container Service in Action
Amazon EC2 Container Service in ActionAmazon EC2 Container Service in Action
Amazon EC2 Container Service in ActionRemotty
 
vert.x 소개 및 개발 실습
vert.x 소개 및 개발 실습vert.x 소개 및 개발 실습
vert.x 소개 및 개발 실습John Kim
 
실시간 서비스 플랫폼 개발 사례
실시간 서비스 플랫폼 개발 사례실시간 서비스 플랫폼 개발 사례
실시간 서비스 플랫폼 개발 사례John Kim
 
Java/Spring과 Node.js의 공존 시즌2
Java/Spring과 Node.js의 공존 시즌2Java/Spring과 Node.js의 공존 시즌2
Java/Spring과 Node.js의 공존 시즌2동수 장
 
232 deview2013 oss를활용한분산아키텍처구현
232 deview2013 oss를활용한분산아키텍처구현232 deview2013 oss를활용한분산아키텍처구현
232 deview2013 oss를활용한분산아키텍처구현NAVER D2
 
TorqueBox - Ruby Hoedown 2011
TorqueBox - Ruby Hoedown 2011TorqueBox - Ruby Hoedown 2011
TorqueBox - Ruby Hoedown 2011Lance Ball
 
Can puppet help you run docker on a T2.Micro?
Can puppet help you run docker on a T2.Micro?Can puppet help you run docker on a T2.Micro?
Can puppet help you run docker on a T2.Micro?Neil Millard
 
Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點William Yeh
 
Torquebox OSCON Java 2011
Torquebox OSCON Java 2011Torquebox OSCON Java 2011
Torquebox OSCON Java 2011tobiascrawley
 
Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013Cosimo Streppone
 
Python Deployment with Fabric
Python Deployment with FabricPython Deployment with Fabric
Python Deployment with Fabricandymccurdy
 

Mais procurados (20)

TorqueBox - When Java meets Ruby
TorqueBox - When Java meets RubyTorqueBox - When Java meets Ruby
TorqueBox - When Java meets Ruby
 
Making Your Capistrano Recipe Book
Making Your Capistrano Recipe BookMaking Your Capistrano Recipe Book
Making Your Capistrano Recipe Book
 
DataMapper on Infinispan
DataMapper on InfinispanDataMapper on Infinispan
DataMapper on Infinispan
 
Java/Spring과 Node.js의공존
Java/Spring과 Node.js의공존Java/Spring과 Node.js의공존
Java/Spring과 Node.js의공존
 
201904 websocket
201904 websocket201904 websocket
201904 websocket
 
The Enterprise Strikes Back
The Enterprise Strikes BackThe Enterprise Strikes Back
The Enterprise Strikes Back
 
First Day With J Ruby
First Day With J RubyFirst Day With J Ruby
First Day With J Ruby
 
Ansible v2 and Beyond (Ansible Hawai'i Meetup)
Ansible v2 and Beyond (Ansible Hawai'i Meetup)Ansible v2 and Beyond (Ansible Hawai'i Meetup)
Ansible v2 and Beyond (Ansible Hawai'i Meetup)
 
Torquebox - O melhor dos dois mundos
Torquebox - O melhor dos dois mundosTorquebox - O melhor dos dois mundos
Torquebox - O melhor dos dois mundos
 
Amazon EC2 Container Service in Action
Amazon EC2 Container Service in ActionAmazon EC2 Container Service in Action
Amazon EC2 Container Service in Action
 
vert.x 소개 및 개발 실습
vert.x 소개 및 개발 실습vert.x 소개 및 개발 실습
vert.x 소개 및 개발 실습
 
실시간 서비스 플랫폼 개발 사례
실시간 서비스 플랫폼 개발 사례실시간 서비스 플랫폼 개발 사례
실시간 서비스 플랫폼 개발 사례
 
Java/Spring과 Node.js의 공존 시즌2
Java/Spring과 Node.js의 공존 시즌2Java/Spring과 Node.js의 공존 시즌2
Java/Spring과 Node.js의 공존 시즌2
 
232 deview2013 oss를활용한분산아키텍처구현
232 deview2013 oss를활용한분산아키텍처구현232 deview2013 oss를활용한분산아키텍처구현
232 deview2013 oss를활용한분산아키텍처구현
 
TorqueBox - Ruby Hoedown 2011
TorqueBox - Ruby Hoedown 2011TorqueBox - Ruby Hoedown 2011
TorqueBox - Ruby Hoedown 2011
 
Can puppet help you run docker on a T2.Micro?
Can puppet help you run docker on a T2.Micro?Can puppet help you run docker on a T2.Micro?
Can puppet help you run docker on a T2.Micro?
 
Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點
 
Torquebox OSCON Java 2011
Torquebox OSCON Java 2011Torquebox OSCON Java 2011
Torquebox OSCON Java 2011
 
Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013
 
Python Deployment with Fabric
Python Deployment with FabricPython Deployment with Fabric
Python Deployment with Fabric
 

Destaque

Java Night 2010 SteamCannon
Java Night 2010 SteamCannonJava Night 2010 SteamCannon
Java Night 2010 SteamCannonmarekgoldmann
 
Silesia JUG : Java Message Service
Silesia JUG : Java Message ServiceSilesia JUG : Java Message Service
Silesia JUG : Java Message Servicemarekgoldmann
 
BoxGrinder – FUDCon 2011 Tempe
BoxGrinder – FUDCon 2011 TempeBoxGrinder – FUDCon 2011 Tempe
BoxGrinder – FUDCon 2011 Tempemarekgoldmann
 
TorqueBox - moc Javy, piękno Rubiego
TorqueBox - moc Javy, piękno RubiegoTorqueBox - moc Javy, piękno Rubiego
TorqueBox - moc Javy, piękno Rubiegomarekgoldmann
 
TorqueBox - Ruby na sterydach
TorqueBox - Ruby na sterydachTorqueBox - Ruby na sterydach
TorqueBox - Ruby na sterydachmarekgoldmann
 
BoxGrinder – FOSDEM 2012
BoxGrinder – FOSDEM 2012BoxGrinder – FOSDEM 2012
BoxGrinder – FOSDEM 2012marekgoldmann
 
13 14 SAP policy - revised for spring 2014 - final - 111413
13 14 SAP policy - revised for spring 2014 - final  - 11141313 14 SAP policy - revised for spring 2014 - final  - 111413
13 14 SAP policy - revised for spring 2014 - final - 111413Houston Community College
 
Tutorial caesars II
Tutorial caesars IITutorial caesars II
Tutorial caesars IImanuedlf
 

Destaque (8)

Java Night 2010 SteamCannon
Java Night 2010 SteamCannonJava Night 2010 SteamCannon
Java Night 2010 SteamCannon
 
Silesia JUG : Java Message Service
Silesia JUG : Java Message ServiceSilesia JUG : Java Message Service
Silesia JUG : Java Message Service
 
BoxGrinder – FUDCon 2011 Tempe
BoxGrinder – FUDCon 2011 TempeBoxGrinder – FUDCon 2011 Tempe
BoxGrinder – FUDCon 2011 Tempe
 
TorqueBox - moc Javy, piękno Rubiego
TorqueBox - moc Javy, piękno RubiegoTorqueBox - moc Javy, piękno Rubiego
TorqueBox - moc Javy, piękno Rubiego
 
TorqueBox - Ruby na sterydach
TorqueBox - Ruby na sterydachTorqueBox - Ruby na sterydach
TorqueBox - Ruby na sterydach
 
BoxGrinder – FOSDEM 2012
BoxGrinder – FOSDEM 2012BoxGrinder – FOSDEM 2012
BoxGrinder – FOSDEM 2012
 
13 14 SAP policy - revised for spring 2014 - final - 111413
13 14 SAP policy - revised for spring 2014 - final  - 11141313 14 SAP policy - revised for spring 2014 - final  - 111413
13 14 SAP policy - revised for spring 2014 - final - 111413
 
Tutorial caesars II
Tutorial caesars IITutorial caesars II
Tutorial caesars II
 

Semelhante a JUDCon 2010 Boston : BoxGrinder

JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon
JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannonJBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon
JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannonbobmcwhirter
 
Postgres the hardway
Postgres the hardwayPostgres the hardway
Postgres the hardwayDave Pitts
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014biicode
 
The Unofficial VCAP / VCP VMware Study Guide
The Unofficial VCAP / VCP VMware Study GuideThe Unofficial VCAP / VCP VMware Study Guide
The Unofficial VCAP / VCP VMware Study GuideVeeam Software
 
Preparation study of_docker - (MOSG)
Preparation study of_docker  - (MOSG)Preparation study of_docker  - (MOSG)
Preparation study of_docker - (MOSG)Soshi Nemoto
 
Dockerization of Azure Platform
Dockerization of Azure PlatformDockerization of Azure Platform
Dockerization of Azure Platformnirajrules
 
Bare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefBare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefMatt Ray
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...Amazon Web Services
 
Puppet and Apache CloudStack
Puppet and Apache CloudStackPuppet and Apache CloudStack
Puppet and Apache CloudStackPuppet
 
Infrastructure as code with Puppet and Apache CloudStack
Infrastructure as code with Puppet and Apache CloudStackInfrastructure as code with Puppet and Apache CloudStack
Infrastructure as code with Puppet and Apache CloudStackke4qqq
 
PDXPortland - Dockerize Django
PDXPortland - Dockerize DjangoPDXPortland - Dockerize Django
PDXPortland - Dockerize DjangoHannes Hapke
 
Installing oracle grid infrastructure and database 12c r1
Installing oracle grid infrastructure and database 12c r1Installing oracle grid infrastructure and database 12c r1
Installing oracle grid infrastructure and database 12c r1Voeurng Sovann
 
Scaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container ServiceScaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container ServiceBen Hall
 
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, OrchestrationThe Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, OrchestrationErica Windisch
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Partner S.A.
 

Semelhante a JUDCon 2010 Boston : BoxGrinder (20)

JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon
JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannonJBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon
JBoss Developer Webinar: Cloud: BoxGrinder & SteamCannon
 
Postgres the hardway
Postgres the hardwayPostgres the hardway
Postgres the hardway
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
 
The Unofficial VCAP / VCP VMware Study Guide
The Unofficial VCAP / VCP VMware Study GuideThe Unofficial VCAP / VCP VMware Study Guide
The Unofficial VCAP / VCP VMware Study Guide
 
Preparation study of_docker - (MOSG)
Preparation study of_docker  - (MOSG)Preparation study of_docker  - (MOSG)
Preparation study of_docker - (MOSG)
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Nano Server (ATD 11)
Nano Server (ATD 11)Nano Server (ATD 11)
Nano Server (ATD 11)
 
Dockerization of Azure Platform
Dockerization of Azure PlatformDockerization of Azure Platform
Dockerization of Azure Platform
 
Bare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefBare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and Chef
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
 
Puppet and Apache CloudStack
Puppet and Apache CloudStackPuppet and Apache CloudStack
Puppet and Apache CloudStack
 
Infrastructure as code with Puppet and Apache CloudStack
Infrastructure as code with Puppet and Apache CloudStackInfrastructure as code with Puppet and Apache CloudStack
Infrastructure as code with Puppet and Apache CloudStack
 
PDXPortland - Dockerize Django
PDXPortland - Dockerize DjangoPDXPortland - Dockerize Django
PDXPortland - Dockerize Django
 
Docker Ecosystem on Azure
Docker Ecosystem on AzureDocker Ecosystem on Azure
Docker Ecosystem on Azure
 
Installing oracle grid infrastructure and database 12c r1
Installing oracle grid infrastructure and database 12c r1Installing oracle grid infrastructure and database 12c r1
Installing oracle grid infrastructure and database 12c r1
 
Scaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container ServiceScaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container Service
 
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, OrchestrationThe Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: Introduction
 
Rac on NFS
Rac on NFSRac on NFS
Rac on NFS
 
App container rkt
App container rktApp container rkt
App container rkt
 

Último

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 

Último (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

JUDCon 2010 Boston : BoxGrinder

  • 3. Who is Bob? • JBoss Fellow • Chief Architect of Middleware Cloud Computing • Founder of... • The Codehaus • Drools • TorqueBox
  • 4. Who is Marek? • Marek Goldmann • Polish! • Electronic musician •The guy who actually does all the work
  • 5. Background Software (SaaS) Platform (PaaS) Simplified “cloud” stack Infrastructure (IaaS)
  • 6. Background Software (SaaS) What you write Platform (PaaS) Infrastructure (IaaS)
  • 7. Background Software (SaaS) What you write Platform (PaaS) What you target Infrastructure (IaaS)
  • 8. Background Software (SaaS) What you write Platform (PaaS) What you target Infrastructure (IaaS) Where it runs
  • 9. Background Software (SaaS) What you write Platform (PaaS) What you target You don’t want to care Infrastructure (IaaS) Where it runs
  • 10. BoxGrinder helps turn bare hardware into a useful substrate. (or “platform”)
  • 11. BoxGrinder doesn’t care what you consider to be a platform
  • 12. Virtual Machines “appliances”
  • 13. But first... There’s at least two different ideological camps with opinions on creating virtual machines...
  • 14. Bake v. Fry Bake: Produce a complete virtual machine offline, before first use. Fry: Produce a complete virtual machine by booting a basic VM and then applying configuration.
  • 15. Bake Fry Quicker launch Longer launch Requires more storage Less storage Not up-to-date More up-to-date
  • 16. Storage Bake Fry Base Appliance Base Appliance Web config Web Appliance Messaging config Messaging Appliance Transactions config Transactions Appliance
  • 17. Bake! We think baking is The Right Way, especially for developers simply looking for reliable platforms.
  • 18. Bake & Fry Baking out an appliances does not prohibit using existing update mechanisms. It just provides a starting point.
  • 19. Grind BoxGrinder grinds out fully- configured and usable virtual machines for a variety of IaaS fabrics.
  • 20. Repo Repo Repo EC2 Appliance BoxGrinder VMware Definition KVM
  • 21. Appliance Definition •YAML – not XML •Allow mix-ins/composition •Easily re-target different base OSes
  • 23. Quick Example name: back-end version: 1 release: 1 summary: back-end appliance with JBoss AS 6 hardware: memory: 512 partitions: "/": size: 2 appliances: - cirras packages: includes: - jboss-as6 - jboss-as6-cloud-profiles - java-1.6.0-openjdk
  • 24. Prolog name: back-end version: 1 release: 1 summary: back-end appliance with JBoss AS 6 hardware: memory: 512 partitions: "/": size: 2 appliances: - cirras packages: includes: - jboss-as6 - jboss-as6-cloud-profiles - java-1.6.0-openjdk
  • 25. Prolog name: back-end version: 1 release: 1 summary: back-end appliance with JBoss AS 6
  • 26. Hardware name: back-end version: 1 release: 1 summary: back-end appliance with JBoss AS 6 hardware: memory: 512 partitions: "/": size: 2 appliances: - cirras packages: includes: - jboss-as6 - jboss-as6-cloud-profiles - java-1.6.0-openjdk
  • 27. Hardware hardware: memory: 512 512MB partitions: "/": size: 2 2GB
  • 28. Appliance Mix-ins name: back-end version: 1 release: 1 summary: back-end appliance with JBoss AS 6 hardware: memory: 512 partitions: "/": size: 2 appliances: - cirras packages: includes: - jboss-as6 - jboss-as6-cloud-profiles - java-1.6.0-openjdk
  • 29. Appliance Mix-ins appliances: - cirras Mixing in cirras.appl
  • 30. Tangent: cirras.appl name: cirras summary: Appliance template for CirrAS appliances os: name: fedora version: 11 hardware: memory: 256 partitions: "/": size: 1 packages: includes: - bash - kernel - grub - e2fsprogs - passwd - policycoreutils - chkconfig ...
  • 31. Tangent: cirras.appl name: cirras summary: Appliance template for CirrAS appliances os: name: fedora version: 11 hardware: memory: 256 partitions: "/": size: 1 packages: includes: - bash - kernel - grub - e2fsprogs - passwd - policycoreutils - chkconfig ...
  • 32. Appliance Mix-ins cirras.appl mixed in os: name: fedora version: 11
  • 33. Appliance Mix-ins cirras.appl mixed in repos: - name: "cirras-#ARCH#" baseurl: "http://repo.boxgrinder.org/cirras/p - name: "cirras-noarch" baseurl: "http://repo.boxgrinder.org/cirras/p
  • 34. Appliance Mix-ins back-end.appl cirras.appl overrides hardware: hardware: memory: 512 memory: 256 partitions: partitions: "/": "/": size: 2 size: 1
  • 35. Okay, let’s get back to back-end.appl...
  • 36. Contents name: back-end version: 1 release: 1 summary: back-end appliance with JBoss AS 6 hardware: memory: 512 partitions: "/": size: 2 appliances: - cirras packages: includes: - jboss-as6 - jboss-as6-cloud-profiles - java-1.6.0-openjdk
  • 37. Contents packages: includes: - jboss-as6 - jboss-as6-cloud-profiles - java-1.6.0-openjdk
  • 38. Contents packages: plus everything from includes: cirras.appl - jboss-as6 - jboss-as6-cloud-profiles - java-1.6.0-openjdk
  • 39. Great, I have a text file, what about a virtual machine?
  • 40.
  • 41. Meta Appliance Start with our meta-appliance VM (built with BoxGrinder) Ruby • RubyGems • Git RPM dev tools • qemu • libguestfs
  • 42. Simple installation $ gem install boxgrinder-build $ rpm -Uvh http://s3.amazonaws.com/ec2- downloads/ec2-ami-tools.noarch.rpm
  • 43. Pipeline Plugins Simple Build Convert EC2 Deliver RAW Definition VMware
  • 44. Do it! $ boxgrinder-build -V ../cirras/appliances/back-end.appl D, [2010-06-18T18:57:33.364113 #5110] DEBUG -- : Reading definition from '../cirras/appliances/back-end.appl' file... D, [2010-06-18T18:57:33.365527 #5110] DEBUG -- : Reading definition from '../cirras/appliances/cirras.appl' file... D, [2010-06-18T18:57:33.369167 #5110] DEBUG -- : Executing operating system plugin for fedora... I, [2010-06-18T18:57:33.371979 #5110] INFO -- : Resolving packages added to back-end appliance definition file... D, [2010-06-18T18:57:33.376092 #5110] DEBUG -- : Querying package database... D, [2010-06-18T18:57:33.377037 #5110] DEBUG -- : Executing command: 'sudo repoquery --quiet --disablerepo=* -- enablerepo=boxgrinder_build-fedora-11-base,boxgrinder_build-fedora-11-updates,boxgrinder_build-cirras- i386,boxgrinder_build-cirras-noarch -c build/appliances/i386/fedora/11/back-end/raw/back-end.yum.conf list available jboss-as6 jboss-as6-cloud-profiles java-1.6.0-openjdk bash kernel grub e2fsprogs passwd policycoreutils chkconfig rootfiles yum vim-minimal acpid dhclient iputils generic-logos openssh-server openssh-clients mkinitrd cirras- management rhq-agent which sudo ruby-devel make gcc-c++ wget --nevra --archlist=i386,i486,i586,i686,noarch' ...time passes...
  • 45. Build • Figure out the full set of RPMs • Grab (and cache) them all • Create a disk image, install them all • Perform any post-install configuration
  • 46. Pipeline Plugins Simple Build Convert EC2 Deliver RAW Definition VMware
  • 47. ...and the build finishes .... .... INFO -- : Base image for back-end appliance was built successfully. DEBUG -- : Operating system plugin executed. DEBUG -- : No platform selected, skipping platform conversion. DEBUG -- : No delivery method selected, skipping delivering.
  • 48. But I use VMware!
  • 49. Do it some more! $ boxgrinder-build -V ../cirras/appliances/back-end.appl -p vmware D, [2010-06-18T20:39:00.931972 #7665] DEBUG -- : Reading definition from '../cirras/appliances/back-end.appl' file... D, [2010-06-18T20:39:00.934336 #7665] DEBUG -- : Reading definition from '../cirras/appliances/cirras.appl' file... I, [2010-06-18T20:39:00.939194 #7665] INFO -- : Deliverables for fedora operating system plugin exists, skipping. D, [2010-06-18T20:39:00.940075 #7665] DEBUG -- : Executing platform plugin for vmware... I, [2010-06-18T20:39:00.940689 #7665] INFO -- : Converting image to VMware format... D, [2010-06-18T20:39:00.941295 #7665] DEBUG -- : Copying VMware image file, this may take several minutes... ...time passes...
  • 50. Pipeline Plugins Simple Build Convert EC2 Deliver RAW Definition VMware
  • 51. ...and the conversion finishes DEBUG -- : Building VMware enterprise image. DEBUG -- : VMware enterprise image was built. DEBUG -- : Building VMware personal image. DEBUG -- : VMware personal image was built. INFO -- : Image converted to VMware format. DEBUG -- : Platform plugin executed. DEBUG -- : No delivery method selected, skipping delivering.
  • 52. Conversion • Converts disk formats • Converts/synthesize VM metadata • Applies platform-specific changes • add/remove packages
  • 53. Wait, I use EC2.
  • 54. EC2 Conversion $ boxgrinder-build -V ../cirras/appliances/back-end.appl -p ec2 D, [2010-06-18T20:56:30.934009 #7707] DEBUG -- : Reading definition from '../cirras/appliances/back-end.appl' file... D, [2010-06-18T20:56:30.946411 #7707] DEBUG -- : Reading definition from '../cirras/appliances/cirras.appl' file... I, [2010-06-18T20:56:30.951350 #7707] INFO -- : Deliverables for fedora operating system plugin exists, skipping. D, [2010-06-18T20:56:30.952646 #7707] DEBUG -- : Executing platform plugin for ec2... I, [2010-06-18T20:56:30.958164 #7707] INFO -- : Converting back-end appliance image to EC2 format... D, [2010-06-18T20:56:30.958856 #7707] DEBUG -- : Preparing disk for EC2 image... ...time passes...
  • 55. EC2 requires special Xen kernels and AMI tools not present in typical RPM repositories DEBUG -- : Installing additional packages (kernel-xen-2.6.21.7-2.fc8.i686.rpm, ec2-ami-tools.noarch.rpm)...
  • 56. And it finishes conversion INFO -- : Image converted to EC2 format. DEBUG -- : Platform plugin executed. DEBUG -- : No delivery method selected, skipping delivering.
  • 57. Pipeline Plugins Simple Build Convert EC2 Deliver RAW Definition VMware VMware EC2
  • 58. Now you have a useless EC2 image on your local disk. F’awesome!
  • 59. Amazon Credentials $HOME/.boxgrinder/plugins/s3: bucket: stormgrind-test access_key: 1JF8xxxxxxxxx secret_access_key: TRVRfko1vxxxxxxxxxxxxxxxxxx account_number: 6010-xxxx-xxxx cert_file: ~/.ec2/cert-LC42AGGJxxxxxxx.pem key_file: ~/.ec2/pk-LC42AGGJxxxxxxx.pem
  • 60. Amazon Credentials $HOME/.boxgrinder/plugins/s3: bucket: stormgrind-test access_key: 1JF8xxxxxxxxx secret_access_key: TRVRfko1vxxxxxxxxxxxxxxxxxx account_number: 6010-xxxx-xxxx cert_file: ~/.ec2/cert-LC42AGGJxxxxxxx.pem key_file: ~/.ec2/pk-LC42AGGJxxxxxxx.pem
  • 61. Amazon Credentials $HOME/.boxgrinder/plugins/s3: bucket: stormgrind-test access_key: 1JF8xxxxxxxxx secret_access_key: TRVRfko1vxxxxxxxxxxxxxxxxxx account_number: 6010-xxxx-xxxx cert_file: ~/.ec2/cert-LC42AGGJxxxxxxx.pem key_file: ~/.ec2/pk-LC42AGGJxxxxxxx.pem
  • 62. Amazon Credentials $HOME/.boxgrinder/plugins/s3: bucket: stormgrind-test access_key: 1JF8xxxxxxxxx secret_access_key: TRVRfko1vxxxxxxxxxxxxxxxxxx account_number: 6010-xxxx-xxxx cert_file: ~/.ec2/cert-LC42AGGJxxxxxxx.pem key_file: ~/.ec2/pk-LC42AGGJxxxxxxx.pem
  • 63. ...and deliver it! $ boxgrinder-build -V ../cirras/appliances/back-end.appl -p ec2 -d ami D, [2010-06-18T21:17:40.469872 #7913] DEBUG -- : Reading definition from '../cirras/appliances/back-end.appl' file... D, [2010-06-18T21:17:40.480562 #7913] DEBUG -- : Reading definition from '../cirras/appliances/cirras.appl' file... I, [2010-06-18T21:17:40.485056 #7913] INFO -- : Deliverables for fedora operating system plugin exists, skipping. I, [2010-06-18T21:17:40.485794 #7913] INFO -- : Deliverables for ec2 platform plugin exists, skipping. D, [2010-06-18T21:17:40.486385 #7913] DEBUG -- : Reading configuration file for BoxGrinder::S3Plugin. ...time passes...
  • 64. ...and deliver it! DEBUG -- : Executing command: 'ec2-bundle- image -i build/appliances/i386/fedora/11/back- end/ec2/back-end.ec2 --kernel aki-a71cf9ce -- ramdisk ari-a51cf9cc ec2-upload-bundle ...more time passes...
  • 65. Pipeline Plugins Simple Build Convert EC2 Deliver RAW Definition VMware VMware EC2 AMI
  • 66. and finally... Image successfully registered under id: ami-XXXXX.
  • 67. S3
  • 68. EC2
  • 69. Notes... • If you’re building for EC2, start with a meta-appliance on EC2. Uploading across the WAN sucks hard. • Architecture of host must match the architecture of appliances being built.
  • 70. Wait, what? Architecture of the host must match the architecture of the appliances being built. x86_64 i386
  • 71.
  • 72. RESTful API for driving farms of BoxGrinder-Build nodes.
  • 73. BoxGrinder-REST BoxGrinder node Definition BoxGrinder REST Queue BoxGrinder node BoxGrinder node
  • 74. BoxGrinder-REST BoxGrinder node Definition BoxGrinder REST Queue BoxGrinder node BoxGrinder node Runs on TorqueBox, using HornetQ
  • 75. BoxGrinder-REST • Queue per each supported platform • Multiple builders per queue possible • Builders launching on-demand soon • Using Deltacloud • Supports for multiple conversions • Supports multiple deliveries
  • 76. BoxGrinder-REST • Command-line interface • Web Client (BoxGrinder-Studio?) • IDE integration (JBoss Tools?)
  • 77. Currently Supports OS Arch Hypervisor RHEL 5 x86_64 KVM Fedora 11-13 i386 Xen VMware personal VMware enterprise Delivery Amazon EC2 Local SFTP S3 CloudFront AMI
  • 79. Q&A
  • 80. Resources http://github.com/stormgrind/ # Code http://jboss.org/stormgrind/ # Projects http://cloudpress.org/ # Blog #stormgrind # IRC @stormgrind # Twitter @marekgoldmann @bobmcwhirter