SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Apache Whirr
          Cloud Services Made Easy




          Lars George, Cloudera
          HUGUK Meetup
          12 May 2011



Friday, May 20, 2011
What is Apache Whirr?
         ▪   An Apache Incubator project for running services in the cloud
         ▪   A community for sharing code and configuration for running
             clusters
             ▪   People: 9 committers (6 orgs), more contributors and users
             ▪   Projects: Hadoop, HBase, ZooKeeper, Cassandra
                 ▪   More coming: Voldemort, ElasticSearch, Mesos, Oozie
         ▪   Whirr is used for
             ▪   Testing
             ▪   Evaluation and proof of concept
             ▪   Production (future)


Friday, May 20, 2011
High Level Overview
         ▪   Whirr uses low-level API libraries to talk to cloud providers
         ▪   Orchestrates clusters based on roles
         ▪   Configuration files define entire cluster
             ▪   Override anything you need to change on the command line
         ▪   Spins up minimal images, only base OS and SSH
             ▪   Ships your credentials
         ▪   Services are a combination of roles
             ▪   Define bootstrapping and configuration actions
         ▪   Adding your own service is (nearly) trivial
             ▪   No dealings with cloud provider internals

Friday, May 20, 2011
Steps in writing a Whirr service
         ▪   1. Identify service roles
         ▪   2. Write a ClusterActionHandler for each role
         ▪   3. Write scripts that run on cloud nodes
         ▪   4. Package and install
         ▪   5. Run




Friday, May 20, 2011
1. Identify service roles
         ▪   Flume, a service for collecting         https://github.com/cloudera/flume
             and moving large amounts of
             data
         ▪   Flume Master
             ▪   The head node, for coordination
             ▪   Whirr role name: flumedemo-master
         ▪   Flume Node
             ▪   Runs agents (generate logs) or
                 collectors (aggregate logs)
             ▪   Whirr role name: flumedemo-node



Friday, May 20, 2011
2. Write a ClusterActionHandler for each role
          public class FlumeNodeHandler extends ClusterActionHandlerSupport {

              public static final String ROLE = "flumedemo-node";

              @Override public String getRole() { return ROLE; }

              @Override
              protected void beforeBootstrap(ClusterActionEvent event) throws IOException,
                  InterruptedException {
                addStatement(event, call("install_java"));
                addStatement(event, call("install_flumedemo"));
              }

              // more ...
          }




Friday, May 20, 2011
Handlers can interact...
          public class FlumeNodeHandler extends ClusterActionHandlerSupport {

              // continued ...

              @Override
              protected void beforeConfigure(ClusterActionEvent event) throws IOException,
                  InterruptedException {
                // firewall ingress authorization omitted

                  Instance master = cluster.getInstanceMatching(role(FlumeMasterHandler.ROLE));
                  String masterAddress = master.getPrivateAddress().getHostAddress();
                  addStatement(event, call("configure_flumedemo_node", masterAddress));
              }
          }




Friday, May 20, 2011
3. Write scripts that run on cloud nodes
         ▪   install_java is built in
         ▪   Other functions are specified in individual files



               function install_flumedemo() {
                 curl -O http://cloud.github.com/downloads/cloudera/flume/flume-0.9.3.tar.gz
                 tar -C /usr/local/ -zxf flume-0.9.3.tar.gz
                 echo "export FLUME_CONF_DIR=/usr/local/flume-0.9.3/conf" >> /etc/profile
               }




Friday, May 20, 2011
You can run as many scripts as you want
         ▪   This script takes an argument to specify the master
             function configure_flumedemo_node() {
               MASTER_HOST=$1
               cat > /usr/local/flume-0.9.3/conf/flume-site.xml <<EOF
             <?xml version="1.0"?>
             <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
             <configuration>
               <property>
                 <name>flume.master.servers</name>
                 <value>$MASTER_HOST</value>
               </property>
             </configuration>
             EOF
               FLUME_CONF_DIR=/usr/local/flume-0.9.3/conf 
                 nohup /usr/local/flume-0.9.3/bin/flume master > /var/log/flume.log 2>&1 &
             }




Friday, May 20, 2011
4. Package and install
         ▪   Each service is a self-contained JAR:

                       functions/configure_flumedemo_master.sh
                       functions/configure_flumedemo_node.sh
                       functions/install_flumedemo.sh
                       META-INF/services/org.apache.whirr.service.ClusterActionHandler
                       org/apache/whirr/service/example/FlumeMasterHandler.class
                       org/apache/whirr/service/example/FlumeNodeHandler.class

         ▪   Discovered using java.util.ServiceLoader facility
             ▪   META-INF/services/org.apache.whirr.service.ClusterActionHandler:
                       org.apache.whirr.service.example.FlumeMasterHandler
                       org.apache.whirr.service.example.FlumeNodeHandler

         ▪   Place JAR in Whirr’s lib directory


Friday, May 20, 2011
5. Run
         ▪   Create a cluster spec file
                whirr.cluster-name=flumedemo
                whirr.instance-templates=1 flumedemo-master,1 flumedemo-node
                whirr.provider=aws-ec2
                whirr.identity=${env:AWS_ACCESS_KEY_ID}
                whirr.credential=${env:AWS_SECRET_ACCESS_KEY}

         ▪   Then launch from the CLI
                % whirr launch-cluster --config flumedemo.properties

         ▪   or Java
               Configuration conf = new PropertiesConfiguration("flumedemo.properties");
               ClusterSpec spec = new ClusterSpec(conf);
               Service s = new Service();
               Cluster cluster = s.launchCluster(spec);
               // interact with cluster
               s.destroyCluster(spec);


Friday, May 20, 2011
Demo




Friday, May 20, 2011
Orchestration
         ▪   Instance templates are acted on independently in parallel
         ▪   Bootstrap phase
             ▪   start 1 instance for the flumedemo-master role and run its bootstrap
                 script
             ▪   start 1 instance for the flumedemo-node role and run its bootstrap
                 script
         ▪   Configure phase
             ▪   run the configure script on the   flumedemo-master   instance
             ▪   run the configure script on the   flumedemo-node   instance
         ▪   Note there is a barrier between the two phases, so nodes can get
             the master address in the configure phase

Friday, May 20, 2011
Going further: Hadoop
         ▪   Service configuration
             ▪   Flume example was very simple
             ▪   In practice, you want to be able to override any service property
             ▪   For Hadoop, Whirr generates the service config file and copies
                 to cluster
             ▪   E.g.   hadoop-common.fs.trash.interval=1440

                 ▪   Sets fs.trash.interval in the cluster configuration
         ▪   Service version
             ▪   Tarball is parameterized by         whirr.hadoop.tarball.url




Friday, May 20, 2011
Going further: HBase
                                            Web                                        REST
                                                                       HTable
                                           Browser                                     Client




           Public
                       UI            RPC      UI            RPC   UI             RPC            HTTP


                            Master            RegionServer        RegionServer              RestServer



                            listen                 listen               listen                  listen
           Private




Friday, May 20, 2011
Going further: HBase
         ▪   Service composition
          whirr.instance-templates=1 zookeeper+hadoop-namenode+hadoop-jobtracker+hbase-master,
          5 hadoop-datanode+hadoop-tasktracker+hbase-regionserver


         ▪   HBase handlers will do the following in beforeConfigure():
             ▪   open ports
             ▪   pass in ZooKeeper quorum from zookeeper role
             ▪   for non-master nodes: pass in master address
         ▪   Notice that the Hadoop cluster is overlaid on the HBase cluster




Friday, May 20, 2011
Challenges
         ▪   Complexity
         ▪   Degrees of freedom
             ▪   #clouds × #OS × #hardware × #locations × #services ×
                 #configs = a big number!
             ▪   Known good configurations, recipes
             ▪   Regular automated testing
         ▪   Debugging
             ▪   What to do when the service hasn’t come up?
             ▪   Logs
             ▪   Recoverability


Friday, May 20, 2011
What’s next?
         ▪   Release 0.5.0 coming soon
             ▪   Support local tarball upload (WHIRR-220)
             ▪   Allow to run component tests in memory (WHIRR-243)
         ▪   More services (ElasticSearch, Voldemort)
         ▪   More (tested) cloud providers
         ▪   Pool provider/BYON
         ▪   Cluster resizing
         ▪   https://cwiki.apache.org/confluence/display/WHIRR/RoadMap




Friday, May 20, 2011
Questions
         ▪   Find out more at
             ▪   http://incubator.apache.org/whirr
         ▪   lars@cloudera.com




Friday, May 20, 2011
provision
                       Public
                                   hbase-master   hbase-regionserver   hbase-regionserver   hbase-restserver

                                 Ubuntu 10.04     Ubuntu 10.04         Ubuntu 10.04         Ubuntu 10.04
                                 8GB RAM          8GB RAM              8GB RAM              2GB RAM
                                 8 Cores          8 Cores              8 Cores              1 CPU



                       Private




Friday, May 20, 2011
install
                       Public
                                  hbase-master    hbase-regionserver   hbase-regionserver   hbase-restserver

                                 login: hbase      login: hbase         login: hbase        login: hbase
                                 java: 1.6.0_16    java: 1.6.0_16       java: 1.6.0_16      java: 1.6.0_16
                                 hbase: 0.90.1     hbase: 0.90.1        hbase: 0.90.1       hbase: 0.90.1



                       Private




Friday, May 20, 2011
configure
                       Public
                                 UI            RPC   UI            RPC   UI            RPC     HTTP


                                      Master         RegionServer        RegionServer        RestServer



                                      listen              listen              listen           listen
                       Private




Friday, May 20, 2011
manage
                   Public
                            UI            RPC     UI            RPC   UI            RPC


                             Master #2                 Master         RegionServer



                                 listen                listen              listen
                  Private




Friday, May 20, 2011

Más contenido relacionado

La actualidad más candente

Using Ansible for Deploying to Cloud Environments
Using Ansible for Deploying to Cloud EnvironmentsUsing Ansible for Deploying to Cloud Environments
Using Ansible for Deploying to Cloud Environmentsahamilton55
 
Terraform Modules and Continuous Deployment
Terraform Modules and Continuous DeploymentTerraform Modules and Continuous Deployment
Terraform Modules and Continuous DeploymentZane Williamson
 
Atlanta OpenStack 2014 Chef for OpenStack Deployment Workshop
Atlanta OpenStack 2014 Chef for OpenStack Deployment WorkshopAtlanta OpenStack 2014 Chef for OpenStack Deployment Workshop
Atlanta OpenStack 2014 Chef for OpenStack Deployment WorkshopMatt Ray
 
Terraform Immutablish Infrastructure with Consul-Template
Terraform Immutablish Infrastructure with Consul-TemplateTerraform Immutablish Infrastructure with Consul-Template
Terraform Immutablish Infrastructure with Consul-TemplateZane Williamson
 
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpecTest-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpecMartin Etmajer
 
Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021TomStraub5
 
(APP310) Scheduling Using Apache Mesos in the Cloud | AWS re:Invent 2014
(APP310) Scheduling Using Apache Mesos in the Cloud | AWS re:Invent 2014(APP310) Scheduling Using Apache Mesos in the Cloud | AWS re:Invent 2014
(APP310) Scheduling Using Apache Mesos in the Cloud | AWS re:Invent 2014Amazon Web Services
 
Ansible at work
Ansible at workAnsible at work
Ansible at workBas Meijer
 
Fake IT, until you make IT
Fake IT, until you make ITFake IT, until you make IT
Fake IT, until you make ITBas Meijer
 
The SaltStack Pub Crawl - Fosscomm 2016
The SaltStack Pub Crawl - Fosscomm 2016The SaltStack Pub Crawl - Fosscomm 2016
The SaltStack Pub Crawl - Fosscomm 2016effie mouzeli
 
A Hands-on Introduction on Terraform Best Concepts and Best Practices
A Hands-on Introduction on Terraform Best Concepts and Best Practices A Hands-on Introduction on Terraform Best Concepts and Best Practices
A Hands-on Introduction on Terraform Best Concepts and Best Practices Nebulaworks
 
Go Faster with Ansible (PHP meetup)
Go Faster with Ansible (PHP meetup)Go Faster with Ansible (PHP meetup)
Go Faster with Ansible (PHP meetup)Richard Donkin
 
Automated infrastructure is on the menu
Automated infrastructure is on the menuAutomated infrastructure is on the menu
Automated infrastructure is on the menujtimberman
 
An intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECSAn intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECSYevgeniy Brikman
 
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...SaltStack
 
OpenStack Austin Meetup January 2014: Chef + OpenStack
OpenStack Austin Meetup January 2014: Chef + OpenStackOpenStack Austin Meetup January 2014: Chef + OpenStack
OpenStack Austin Meetup January 2014: Chef + OpenStackMatt Ray
 

La actualidad más candente (20)

London HUG 12/4
London HUG 12/4London HUG 12/4
London HUG 12/4
 
Using Ansible for Deploying to Cloud Environments
Using Ansible for Deploying to Cloud EnvironmentsUsing Ansible for Deploying to Cloud Environments
Using Ansible for Deploying to Cloud Environments
 
Terraform Modules and Continuous Deployment
Terraform Modules and Continuous DeploymentTerraform Modules and Continuous Deployment
Terraform Modules and Continuous Deployment
 
Atlanta OpenStack 2014 Chef for OpenStack Deployment Workshop
Atlanta OpenStack 2014 Chef for OpenStack Deployment WorkshopAtlanta OpenStack 2014 Chef for OpenStack Deployment Workshop
Atlanta OpenStack 2014 Chef for OpenStack Deployment Workshop
 
Terraform Immutablish Infrastructure with Consul-Template
Terraform Immutablish Infrastructure with Consul-TemplateTerraform Immutablish Infrastructure with Consul-Template
Terraform Immutablish Infrastructure with Consul-Template
 
Ansible Crash Course
Ansible Crash CourseAnsible Crash Course
Ansible Crash Course
 
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpecTest-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
 
Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021
 
(APP310) Scheduling Using Apache Mesos in the Cloud | AWS re:Invent 2014
(APP310) Scheduling Using Apache Mesos in the Cloud | AWS re:Invent 2014(APP310) Scheduling Using Apache Mesos in the Cloud | AWS re:Invent 2014
(APP310) Scheduling Using Apache Mesos in the Cloud | AWS re:Invent 2014
 
Ansible at work
Ansible at workAnsible at work
Ansible at work
 
Apache Cassandra and Go
Apache Cassandra and GoApache Cassandra and Go
Apache Cassandra and Go
 
Fake IT, until you make IT
Fake IT, until you make ITFake IT, until you make IT
Fake IT, until you make IT
 
The SaltStack Pub Crawl - Fosscomm 2016
The SaltStack Pub Crawl - Fosscomm 2016The SaltStack Pub Crawl - Fosscomm 2016
The SaltStack Pub Crawl - Fosscomm 2016
 
Terraform day02
Terraform day02Terraform day02
Terraform day02
 
A Hands-on Introduction on Terraform Best Concepts and Best Practices
A Hands-on Introduction on Terraform Best Concepts and Best Practices A Hands-on Introduction on Terraform Best Concepts and Best Practices
A Hands-on Introduction on Terraform Best Concepts and Best Practices
 
Go Faster with Ansible (PHP meetup)
Go Faster with Ansible (PHP meetup)Go Faster with Ansible (PHP meetup)
Go Faster with Ansible (PHP meetup)
 
Automated infrastructure is on the menu
Automated infrastructure is on the menuAutomated infrastructure is on the menu
Automated infrastructure is on the menu
 
An intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECSAn intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECS
 
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...
 
OpenStack Austin Meetup January 2014: Chef + OpenStack
OpenStack Austin Meetup January 2014: Chef + OpenStackOpenStack Austin Meetup January 2014: Chef + OpenStack
OpenStack Austin Meetup January 2014: Chef + OpenStack
 

Destacado

Big Data Step-by-Step: Infrastructure 3/3: Taking it to the cloud... easily.....
Big Data Step-by-Step: Infrastructure 3/3: Taking it to the cloud... easily.....Big Data Step-by-Step: Infrastructure 3/3: Taking it to the cloud... easily.....
Big Data Step-by-Step: Infrastructure 3/3: Taking it to the cloud... easily.....Jeffrey Breen
 
Salesforce Known Issues: The Lifecycle of a Bug
Salesforce Known Issues: The Lifecycle of a BugSalesforce Known Issues: The Lifecycle of a Bug
Salesforce Known Issues: The Lifecycle of a BugSalesforce Developers
 
Jawbone jambox Manual
Jawbone jambox ManualJawbone jambox Manual
Jawbone jambox Manualjamboxcase
 
C:\My Movies\2 Search Enginge Optimization Seth Besmertnik
C:\My Movies\2 Search Enginge Optimization    Seth BesmertnikC:\My Movies\2 Search Enginge Optimization    Seth Besmertnik
C:\My Movies\2 Search Enginge Optimization Seth Besmertnikguest889866
 
World Travel Market London: Creating Content Travellers Really Want
World Travel Market London: Creating Content Travellers Really WantWorld Travel Market London: Creating Content Travellers Really Want
World Travel Market London: Creating Content Travellers Really WantGary Bembridge
 
SEO 101: The Basics and Beyond
SEO 101: The Basics and BeyondSEO 101: The Basics and Beyond
SEO 101: The Basics and BeyondKevin Getch
 
Polycom soundstation premier satellite data sheet
Polycom soundstation premier satellite data sheetPolycom soundstation premier satellite data sheet
Polycom soundstation premier satellite data sheetbest4systems
 
The Mourning Of Christ By Giotto Di Bondone
The Mourning Of Christ By Giotto Di BondoneThe Mourning Of Christ By Giotto Di Bondone
The Mourning Of Christ By Giotto Di Bondoneguest358697
 
Setting up the To Do Module
Setting up the To Do ModuleSetting up the To Do Module
Setting up the To Do ModuleMichael Payne
 
Magic Quadrant for Corporate Telephony
Magic Quadrant for Corporate TelephonyMagic Quadrant for Corporate Telephony
Magic Quadrant for Corporate TelephonyKathryn Covolus
 
Toad Business Intelligence Suite
Toad Business Intelligence Suite Toad Business Intelligence Suite
Toad Business Intelligence Suite pound78
 

Destacado (14)

Big Data Step-by-Step: Infrastructure 3/3: Taking it to the cloud... easily.....
Big Data Step-by-Step: Infrastructure 3/3: Taking it to the cloud... easily.....Big Data Step-by-Step: Infrastructure 3/3: Taking it to the cloud... easily.....
Big Data Step-by-Step: Infrastructure 3/3: Taking it to the cloud... easily.....
 
Shruthi_GV_Resume
Shruthi_GV_ResumeShruthi_GV_Resume
Shruthi_GV_Resume
 
Alto riesgo cardiovascular
Alto riesgo cardiovascularAlto riesgo cardiovascular
Alto riesgo cardiovascular
 
Salesforce Known Issues: The Lifecycle of a Bug
Salesforce Known Issues: The Lifecycle of a BugSalesforce Known Issues: The Lifecycle of a Bug
Salesforce Known Issues: The Lifecycle of a Bug
 
Jawbone jambox Manual
Jawbone jambox ManualJawbone jambox Manual
Jawbone jambox Manual
 
C:\My Movies\2 Search Enginge Optimization Seth Besmertnik
C:\My Movies\2 Search Enginge Optimization    Seth BesmertnikC:\My Movies\2 Search Enginge Optimization    Seth Besmertnik
C:\My Movies\2 Search Enginge Optimization Seth Besmertnik
 
World Travel Market London: Creating Content Travellers Really Want
World Travel Market London: Creating Content Travellers Really WantWorld Travel Market London: Creating Content Travellers Really Want
World Travel Market London: Creating Content Travellers Really Want
 
SEO 101: The Basics and Beyond
SEO 101: The Basics and BeyondSEO 101: The Basics and Beyond
SEO 101: The Basics and Beyond
 
Polycom soundstation premier satellite data sheet
Polycom soundstation premier satellite data sheetPolycom soundstation premier satellite data sheet
Polycom soundstation premier satellite data sheet
 
The Mourning Of Christ By Giotto Di Bondone
The Mourning Of Christ By Giotto Di BondoneThe Mourning Of Christ By Giotto Di Bondone
The Mourning Of Christ By Giotto Di Bondone
 
Setting up the To Do Module
Setting up the To Do ModuleSetting up the To Do Module
Setting up the To Do Module
 
Integrated Development Programme
Integrated Development ProgrammeIntegrated Development Programme
Integrated Development Programme
 
Magic Quadrant for Corporate Telephony
Magic Quadrant for Corporate TelephonyMagic Quadrant for Corporate Telephony
Magic Quadrant for Corporate Telephony
 
Toad Business Intelligence Suite
Toad Business Intelligence Suite Toad Business Intelligence Suite
Toad Business Intelligence Suite
 

Similar a Apache Whirr

Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAutomating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAkshaya Mahapatra
 
Whirr dev-up-puppetconf2011
Whirr dev-up-puppetconf2011Whirr dev-up-puppetconf2011
Whirr dev-up-puppetconf2011Puppet
 
4. open mano set up and usage
4. open mano set up and usage4. open mano set up and usage
4. open mano set up and usagevideos
 
A Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy SystemA Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy Systemadrian_nye
 
DevOps in PHP environment
DevOps in PHP environment DevOps in PHP environment
DevOps in PHP environment Evaldo Felipe
 
Cloud meets Fog & Puppet A Story of Version Controlled Infrastructure
Cloud meets Fog & Puppet A Story of Version Controlled InfrastructureCloud meets Fog & Puppet A Story of Version Controlled Infrastructure
Cloud meets Fog & Puppet A Story of Version Controlled InfrastructureHabeeb Rahman
 
OpenNebula, the foreman and CentOS play nice, too
OpenNebula, the foreman and CentOS play nice, tooOpenNebula, the foreman and CentOS play nice, too
OpenNebula, the foreman and CentOS play nice, tooinovex GmbH
 
Building web framework with Rack
Building web framework with RackBuilding web framework with Rack
Building web framework with Racksickill
 
Deploying OpenStack with Chef
Deploying OpenStack with ChefDeploying OpenStack with Chef
Deploying OpenStack with ChefMatt Ray
 
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
 
Automação do físico ao NetSecDevOps
Automação do físico ao NetSecDevOpsAutomação do físico ao NetSecDevOps
Automação do físico ao NetSecDevOpsRaul Leite
 
Harmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetHarmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetAchieve Internet
 
Dockerizing the Hard Services: Neutron and Nova
Dockerizing the Hard Services: Neutron and NovaDockerizing the Hard Services: Neutron and Nova
Dockerizing the Hard Services: Neutron and Novaclayton_oneill
 
A Tale of a Server Architecture (Frozen Rails 2012)
A Tale of a Server Architecture (Frozen Rails 2012)A Tale of a Server Architecture (Frozen Rails 2012)
A Tale of a Server Architecture (Frozen Rails 2012)Flowdock
 
Ansible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less CoffeeAnsible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less CoffeeSarah Z
 
Lua tech talk
Lua tech talkLua tech talk
Lua tech talkLocaweb
 

Similar a Apache Whirr (20)

Flume and HBase
Flume and HBase Flume and HBase
Flume and HBase
 
Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAutomating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps Approach
 
Whirr dev-up-puppetconf2011
Whirr dev-up-puppetconf2011Whirr dev-up-puppetconf2011
Whirr dev-up-puppetconf2011
 
2012 09-08-josug-jeff
2012 09-08-josug-jeff2012 09-08-josug-jeff
2012 09-08-josug-jeff
 
4. open mano set up and usage
4. open mano set up and usage4. open mano set up and usage
4. open mano set up and usage
 
A Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy SystemA Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy System
 
DevOps in PHP environment
DevOps in PHP environment DevOps in PHP environment
DevOps in PHP environment
 
Cloud meets Fog & Puppet A Story of Version Controlled Infrastructure
Cloud meets Fog & Puppet A Story of Version Controlled InfrastructureCloud meets Fog & Puppet A Story of Version Controlled Infrastructure
Cloud meets Fog & Puppet A Story of Version Controlled Infrastructure
 
Automation day red hat ansible
   Automation day red hat ansible    Automation day red hat ansible
Automation day red hat ansible
 
OpenNebula, the foreman and CentOS play nice, too
OpenNebula, the foreman and CentOS play nice, tooOpenNebula, the foreman and CentOS play nice, too
OpenNebula, the foreman and CentOS play nice, too
 
Building web framework with Rack
Building web framework with RackBuilding web framework with Rack
Building web framework with Rack
 
Deploying OpenStack with Chef
Deploying OpenStack with ChefDeploying OpenStack with Chef
Deploying OpenStack with Chef
 
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
 
Oracle API Gateway Installation
Oracle API Gateway InstallationOracle API Gateway Installation
Oracle API Gateway Installation
 
Automação do físico ao NetSecDevOps
Automação do físico ao NetSecDevOpsAutomação do físico ao NetSecDevOps
Automação do físico ao NetSecDevOps
 
Harmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetHarmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and Puppet
 
Dockerizing the Hard Services: Neutron and Nova
Dockerizing the Hard Services: Neutron and NovaDockerizing the Hard Services: Neutron and Nova
Dockerizing the Hard Services: Neutron and Nova
 
A Tale of a Server Architecture (Frozen Rails 2012)
A Tale of a Server Architecture (Frozen Rails 2012)A Tale of a Server Architecture (Frozen Rails 2012)
A Tale of a Server Architecture (Frozen Rails 2012)
 
Ansible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less CoffeeAnsible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less Coffee
 
Lua tech talk
Lua tech talkLua tech talk
Lua tech talk
 

Más de huguk

Data Wrangling on Hadoop - Olivier De Garrigues, Trifacta
Data Wrangling on Hadoop - Olivier De Garrigues, TrifactaData Wrangling on Hadoop - Olivier De Garrigues, Trifacta
Data Wrangling on Hadoop - Olivier De Garrigues, Trifactahuguk
 
ether.camp - Hackathon & ether.camp intro
ether.camp - Hackathon & ether.camp introether.camp - Hackathon & ether.camp intro
ether.camp - Hackathon & ether.camp introhuguk
 
Google Cloud Dataproc - Easier, faster, more cost-effective Spark and Hadoop
Google Cloud Dataproc - Easier, faster, more cost-effective Spark and HadoopGoogle Cloud Dataproc - Easier, faster, more cost-effective Spark and Hadoop
Google Cloud Dataproc - Easier, faster, more cost-effective Spark and Hadoophuguk
 
Using Big Data techniques to query and store OpenStreetMap data. Stephen Knox...
Using Big Data techniques to query and store OpenStreetMap data. Stephen Knox...Using Big Data techniques to query and store OpenStreetMap data. Stephen Knox...
Using Big Data techniques to query and store OpenStreetMap data. Stephen Knox...huguk
 
Extracting maximum value from data while protecting consumer privacy. Jason ...
Extracting maximum value from data while protecting consumer privacy.  Jason ...Extracting maximum value from data while protecting consumer privacy.  Jason ...
Extracting maximum value from data while protecting consumer privacy. Jason ...huguk
 
Intelligence Augmented vs Artificial Intelligence. Alex Flamant, IBM Watson
Intelligence Augmented vs Artificial Intelligence. Alex Flamant, IBM WatsonIntelligence Augmented vs Artificial Intelligence. Alex Flamant, IBM Watson
Intelligence Augmented vs Artificial Intelligence. Alex Flamant, IBM Watsonhuguk
 
Streaming Dataflow with Apache Flink
Streaming Dataflow with Apache Flink Streaming Dataflow with Apache Flink
Streaming Dataflow with Apache Flink huguk
 
Lambda architecture on Spark, Kafka for real-time large scale ML
Lambda architecture on Spark, Kafka for real-time large scale MLLambda architecture on Spark, Kafka for real-time large scale ML
Lambda architecture on Spark, Kafka for real-time large scale MLhuguk
 
Today’s reality Hadoop with Spark- How to select the best Data Science approa...
Today’s reality Hadoop with Spark- How to select the best Data Science approa...Today’s reality Hadoop with Spark- How to select the best Data Science approa...
Today’s reality Hadoop with Spark- How to select the best Data Science approa...huguk
 
Jonathon Southam: Venture Capital, Funding & Pitching
Jonathon Southam: Venture Capital, Funding & PitchingJonathon Southam: Venture Capital, Funding & Pitching
Jonathon Southam: Venture Capital, Funding & Pitchinghuguk
 
Signal Media: Real-Time Media & News Monitoring
Signal Media: Real-Time Media & News MonitoringSignal Media: Real-Time Media & News Monitoring
Signal Media: Real-Time Media & News Monitoringhuguk
 
Dean Bryen: Scaling The Platform For Your Startup
Dean Bryen: Scaling The Platform For Your StartupDean Bryen: Scaling The Platform For Your Startup
Dean Bryen: Scaling The Platform For Your Startuphuguk
 
Peter Karney: Intro to the Digital catapult
Peter Karney: Intro to the Digital catapultPeter Karney: Intro to the Digital catapult
Peter Karney: Intro to the Digital catapulthuguk
 
Cytora: Real-Time Political Risk Analysis
Cytora:  Real-Time Political Risk AnalysisCytora:  Real-Time Political Risk Analysis
Cytora: Real-Time Political Risk Analysishuguk
 
Cubitic: Predictive Analytics
Cubitic: Predictive AnalyticsCubitic: Predictive Analytics
Cubitic: Predictive Analyticshuguk
 
Bird.i: Earth Observation Data Made Social
Bird.i: Earth Observation Data Made SocialBird.i: Earth Observation Data Made Social
Bird.i: Earth Observation Data Made Socialhuguk
 
Aiseedo: Real Time Machine Intelligence
Aiseedo: Real Time Machine IntelligenceAiseedo: Real Time Machine Intelligence
Aiseedo: Real Time Machine Intelligencehuguk
 
Secrets of Spark's success - Deenar Toraskar, Think Reactive
Secrets of Spark's success - Deenar Toraskar, Think Reactive Secrets of Spark's success - Deenar Toraskar, Think Reactive
Secrets of Spark's success - Deenar Toraskar, Think Reactive huguk
 
TV Marketing and big data: cat and dog or thick as thieves? Krzysztof Osiewal...
TV Marketing and big data: cat and dog or thick as thieves? Krzysztof Osiewal...TV Marketing and big data: cat and dog or thick as thieves? Krzysztof Osiewal...
TV Marketing and big data: cat and dog or thick as thieves? Krzysztof Osiewal...huguk
 
Hadoop - Looking to the Future By Arun Murthy
Hadoop - Looking to the Future By Arun MurthyHadoop - Looking to the Future By Arun Murthy
Hadoop - Looking to the Future By Arun Murthyhuguk
 

Más de huguk (20)

Data Wrangling on Hadoop - Olivier De Garrigues, Trifacta
Data Wrangling on Hadoop - Olivier De Garrigues, TrifactaData Wrangling on Hadoop - Olivier De Garrigues, Trifacta
Data Wrangling on Hadoop - Olivier De Garrigues, Trifacta
 
ether.camp - Hackathon & ether.camp intro
ether.camp - Hackathon & ether.camp introether.camp - Hackathon & ether.camp intro
ether.camp - Hackathon & ether.camp intro
 
Google Cloud Dataproc - Easier, faster, more cost-effective Spark and Hadoop
Google Cloud Dataproc - Easier, faster, more cost-effective Spark and HadoopGoogle Cloud Dataproc - Easier, faster, more cost-effective Spark and Hadoop
Google Cloud Dataproc - Easier, faster, more cost-effective Spark and Hadoop
 
Using Big Data techniques to query and store OpenStreetMap data. Stephen Knox...
Using Big Data techniques to query and store OpenStreetMap data. Stephen Knox...Using Big Data techniques to query and store OpenStreetMap data. Stephen Knox...
Using Big Data techniques to query and store OpenStreetMap data. Stephen Knox...
 
Extracting maximum value from data while protecting consumer privacy. Jason ...
Extracting maximum value from data while protecting consumer privacy.  Jason ...Extracting maximum value from data while protecting consumer privacy.  Jason ...
Extracting maximum value from data while protecting consumer privacy. Jason ...
 
Intelligence Augmented vs Artificial Intelligence. Alex Flamant, IBM Watson
Intelligence Augmented vs Artificial Intelligence. Alex Flamant, IBM WatsonIntelligence Augmented vs Artificial Intelligence. Alex Flamant, IBM Watson
Intelligence Augmented vs Artificial Intelligence. Alex Flamant, IBM Watson
 
Streaming Dataflow with Apache Flink
Streaming Dataflow with Apache Flink Streaming Dataflow with Apache Flink
Streaming Dataflow with Apache Flink
 
Lambda architecture on Spark, Kafka for real-time large scale ML
Lambda architecture on Spark, Kafka for real-time large scale MLLambda architecture on Spark, Kafka for real-time large scale ML
Lambda architecture on Spark, Kafka for real-time large scale ML
 
Today’s reality Hadoop with Spark- How to select the best Data Science approa...
Today’s reality Hadoop with Spark- How to select the best Data Science approa...Today’s reality Hadoop with Spark- How to select the best Data Science approa...
Today’s reality Hadoop with Spark- How to select the best Data Science approa...
 
Jonathon Southam: Venture Capital, Funding & Pitching
Jonathon Southam: Venture Capital, Funding & PitchingJonathon Southam: Venture Capital, Funding & Pitching
Jonathon Southam: Venture Capital, Funding & Pitching
 
Signal Media: Real-Time Media & News Monitoring
Signal Media: Real-Time Media & News MonitoringSignal Media: Real-Time Media & News Monitoring
Signal Media: Real-Time Media & News Monitoring
 
Dean Bryen: Scaling The Platform For Your Startup
Dean Bryen: Scaling The Platform For Your StartupDean Bryen: Scaling The Platform For Your Startup
Dean Bryen: Scaling The Platform For Your Startup
 
Peter Karney: Intro to the Digital catapult
Peter Karney: Intro to the Digital catapultPeter Karney: Intro to the Digital catapult
Peter Karney: Intro to the Digital catapult
 
Cytora: Real-Time Political Risk Analysis
Cytora:  Real-Time Political Risk AnalysisCytora:  Real-Time Political Risk Analysis
Cytora: Real-Time Political Risk Analysis
 
Cubitic: Predictive Analytics
Cubitic: Predictive AnalyticsCubitic: Predictive Analytics
Cubitic: Predictive Analytics
 
Bird.i: Earth Observation Data Made Social
Bird.i: Earth Observation Data Made SocialBird.i: Earth Observation Data Made Social
Bird.i: Earth Observation Data Made Social
 
Aiseedo: Real Time Machine Intelligence
Aiseedo: Real Time Machine IntelligenceAiseedo: Real Time Machine Intelligence
Aiseedo: Real Time Machine Intelligence
 
Secrets of Spark's success - Deenar Toraskar, Think Reactive
Secrets of Spark's success - Deenar Toraskar, Think Reactive Secrets of Spark's success - Deenar Toraskar, Think Reactive
Secrets of Spark's success - Deenar Toraskar, Think Reactive
 
TV Marketing and big data: cat and dog or thick as thieves? Krzysztof Osiewal...
TV Marketing and big data: cat and dog or thick as thieves? Krzysztof Osiewal...TV Marketing and big data: cat and dog or thick as thieves? Krzysztof Osiewal...
TV Marketing and big data: cat and dog or thick as thieves? Krzysztof Osiewal...
 
Hadoop - Looking to the Future By Arun Murthy
Hadoop - Looking to the Future By Arun MurthyHadoop - Looking to the Future By Arun Murthy
Hadoop - Looking to the Future By Arun Murthy
 

Último

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
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
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
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
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 

Último (20)

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
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
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 

Apache Whirr

  • 1. Apache Whirr Cloud Services Made Easy Lars George, Cloudera HUGUK Meetup 12 May 2011 Friday, May 20, 2011
  • 2. What is Apache Whirr? ▪ An Apache Incubator project for running services in the cloud ▪ A community for sharing code and configuration for running clusters ▪ People: 9 committers (6 orgs), more contributors and users ▪ Projects: Hadoop, HBase, ZooKeeper, Cassandra ▪ More coming: Voldemort, ElasticSearch, Mesos, Oozie ▪ Whirr is used for ▪ Testing ▪ Evaluation and proof of concept ▪ Production (future) Friday, May 20, 2011
  • 3. High Level Overview ▪ Whirr uses low-level API libraries to talk to cloud providers ▪ Orchestrates clusters based on roles ▪ Configuration files define entire cluster ▪ Override anything you need to change on the command line ▪ Spins up minimal images, only base OS and SSH ▪ Ships your credentials ▪ Services are a combination of roles ▪ Define bootstrapping and configuration actions ▪ Adding your own service is (nearly) trivial ▪ No dealings with cloud provider internals Friday, May 20, 2011
  • 4. Steps in writing a Whirr service ▪ 1. Identify service roles ▪ 2. Write a ClusterActionHandler for each role ▪ 3. Write scripts that run on cloud nodes ▪ 4. Package and install ▪ 5. Run Friday, May 20, 2011
  • 5. 1. Identify service roles ▪ Flume, a service for collecting https://github.com/cloudera/flume and moving large amounts of data ▪ Flume Master ▪ The head node, for coordination ▪ Whirr role name: flumedemo-master ▪ Flume Node ▪ Runs agents (generate logs) or collectors (aggregate logs) ▪ Whirr role name: flumedemo-node Friday, May 20, 2011
  • 6. 2. Write a ClusterActionHandler for each role public class FlumeNodeHandler extends ClusterActionHandlerSupport { public static final String ROLE = "flumedemo-node"; @Override public String getRole() { return ROLE; } @Override protected void beforeBootstrap(ClusterActionEvent event) throws IOException, InterruptedException { addStatement(event, call("install_java")); addStatement(event, call("install_flumedemo")); } // more ... } Friday, May 20, 2011
  • 7. Handlers can interact... public class FlumeNodeHandler extends ClusterActionHandlerSupport { // continued ... @Override protected void beforeConfigure(ClusterActionEvent event) throws IOException, InterruptedException { // firewall ingress authorization omitted Instance master = cluster.getInstanceMatching(role(FlumeMasterHandler.ROLE)); String masterAddress = master.getPrivateAddress().getHostAddress(); addStatement(event, call("configure_flumedemo_node", masterAddress)); } } Friday, May 20, 2011
  • 8. 3. Write scripts that run on cloud nodes ▪ install_java is built in ▪ Other functions are specified in individual files function install_flumedemo() { curl -O http://cloud.github.com/downloads/cloudera/flume/flume-0.9.3.tar.gz tar -C /usr/local/ -zxf flume-0.9.3.tar.gz echo "export FLUME_CONF_DIR=/usr/local/flume-0.9.3/conf" >> /etc/profile } Friday, May 20, 2011
  • 9. You can run as many scripts as you want ▪ This script takes an argument to specify the master function configure_flumedemo_node() { MASTER_HOST=$1 cat > /usr/local/flume-0.9.3/conf/flume-site.xml <<EOF <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>flume.master.servers</name> <value>$MASTER_HOST</value> </property> </configuration> EOF FLUME_CONF_DIR=/usr/local/flume-0.9.3/conf nohup /usr/local/flume-0.9.3/bin/flume master > /var/log/flume.log 2>&1 & } Friday, May 20, 2011
  • 10. 4. Package and install ▪ Each service is a self-contained JAR: functions/configure_flumedemo_master.sh functions/configure_flumedemo_node.sh functions/install_flumedemo.sh META-INF/services/org.apache.whirr.service.ClusterActionHandler org/apache/whirr/service/example/FlumeMasterHandler.class org/apache/whirr/service/example/FlumeNodeHandler.class ▪ Discovered using java.util.ServiceLoader facility ▪ META-INF/services/org.apache.whirr.service.ClusterActionHandler: org.apache.whirr.service.example.FlumeMasterHandler org.apache.whirr.service.example.FlumeNodeHandler ▪ Place JAR in Whirr’s lib directory Friday, May 20, 2011
  • 11. 5. Run ▪ Create a cluster spec file whirr.cluster-name=flumedemo whirr.instance-templates=1 flumedemo-master,1 flumedemo-node whirr.provider=aws-ec2 whirr.identity=${env:AWS_ACCESS_KEY_ID} whirr.credential=${env:AWS_SECRET_ACCESS_KEY} ▪ Then launch from the CLI % whirr launch-cluster --config flumedemo.properties ▪ or Java Configuration conf = new PropertiesConfiguration("flumedemo.properties"); ClusterSpec spec = new ClusterSpec(conf); Service s = new Service(); Cluster cluster = s.launchCluster(spec); // interact with cluster s.destroyCluster(spec); Friday, May 20, 2011
  • 13. Orchestration ▪ Instance templates are acted on independently in parallel ▪ Bootstrap phase ▪ start 1 instance for the flumedemo-master role and run its bootstrap script ▪ start 1 instance for the flumedemo-node role and run its bootstrap script ▪ Configure phase ▪ run the configure script on the flumedemo-master instance ▪ run the configure script on the flumedemo-node instance ▪ Note there is a barrier between the two phases, so nodes can get the master address in the configure phase Friday, May 20, 2011
  • 14. Going further: Hadoop ▪ Service configuration ▪ Flume example was very simple ▪ In practice, you want to be able to override any service property ▪ For Hadoop, Whirr generates the service config file and copies to cluster ▪ E.g. hadoop-common.fs.trash.interval=1440 ▪ Sets fs.trash.interval in the cluster configuration ▪ Service version ▪ Tarball is parameterized by whirr.hadoop.tarball.url Friday, May 20, 2011
  • 15. Going further: HBase Web REST HTable Browser Client Public UI RPC UI RPC UI RPC HTTP Master RegionServer RegionServer RestServer listen listen listen listen Private Friday, May 20, 2011
  • 16. Going further: HBase ▪ Service composition whirr.instance-templates=1 zookeeper+hadoop-namenode+hadoop-jobtracker+hbase-master, 5 hadoop-datanode+hadoop-tasktracker+hbase-regionserver ▪ HBase handlers will do the following in beforeConfigure(): ▪ open ports ▪ pass in ZooKeeper quorum from zookeeper role ▪ for non-master nodes: pass in master address ▪ Notice that the Hadoop cluster is overlaid on the HBase cluster Friday, May 20, 2011
  • 17. Challenges ▪ Complexity ▪ Degrees of freedom ▪ #clouds × #OS × #hardware × #locations × #services × #configs = a big number! ▪ Known good configurations, recipes ▪ Regular automated testing ▪ Debugging ▪ What to do when the service hasn’t come up? ▪ Logs ▪ Recoverability Friday, May 20, 2011
  • 18. What’s next? ▪ Release 0.5.0 coming soon ▪ Support local tarball upload (WHIRR-220) ▪ Allow to run component tests in memory (WHIRR-243) ▪ More services (ElasticSearch, Voldemort) ▪ More (tested) cloud providers ▪ Pool provider/BYON ▪ Cluster resizing ▪ https://cwiki.apache.org/confluence/display/WHIRR/RoadMap Friday, May 20, 2011
  • 19. Questions ▪ Find out more at ▪ http://incubator.apache.org/whirr ▪ lars@cloudera.com Friday, May 20, 2011
  • 20. provision Public hbase-master hbase-regionserver hbase-regionserver hbase-restserver Ubuntu 10.04 Ubuntu 10.04 Ubuntu 10.04 Ubuntu 10.04 8GB RAM 8GB RAM 8GB RAM 2GB RAM 8 Cores 8 Cores 8 Cores 1 CPU Private Friday, May 20, 2011
  • 21. install Public hbase-master hbase-regionserver hbase-regionserver hbase-restserver login: hbase login: hbase login: hbase login: hbase java: 1.6.0_16 java: 1.6.0_16 java: 1.6.0_16 java: 1.6.0_16 hbase: 0.90.1 hbase: 0.90.1 hbase: 0.90.1 hbase: 0.90.1 Private Friday, May 20, 2011
  • 22. configure Public UI RPC UI RPC UI RPC HTTP Master RegionServer RegionServer RestServer listen listen listen listen Private Friday, May 20, 2011
  • 23. manage Public UI RPC UI RPC UI RPC Master #2 Master RegionServer listen listen listen Private Friday, May 20, 2011