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

The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 

Último (20)

The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 

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