SlideShare a Scribd company logo
1 of 29
Cloud Foundry and OpenStack
Cloud Foundry, BOSH, and CPIs like OpenStack




Vadim Spivak
Cloud Foundry Engineering
@vadimspivak

       © 2012 VMware, Inc. All rights reserved
Agenda
    Background
    Concepts
    Contracts
    Control
    Consistency
    Components
    Cloud Provider Interface




                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                  2
Background
 Cloud Foundry
 BOSH
    • Release engineering
    • Lifecycle management
    • Single tool / Ease of use
    • Infrastructure portability




                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                  3
Concepts
    Source / Blobs
    Packages
    Jobs
    Releases
    Stemcells
    Deployments




                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                  4
Source / Blobs
    All deployed software
    git (submodules)
    bosh blobs
    bosh sync blobs


-rw-r--r-- 1 vspivak staff 29000 Apr 11 11:16 blob_index.yml

drwxr-xr-x 25 vspivak staff               850 Apr 16 13:07 blobs

drwxr-xr-x 3 vspivak staff                102 Apr 16 12:22 config

drwxr-xr-x 42 vspivak staff               1428 Apr 16 12:22 jobs

drwxr-xr-x 61 vspivak staff               2074 Apr 16 12:22 packages

drwxr-xr-x 61 vspivak staff               2074 Apr 11 11:16 releases

drwxr-xr-x 16 vspivak staff               544 Apr 16 13:40 src

                                                      CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                                5
Packages
    Source / blobs
    Dependencies
    Versioning
    Pre-packaging
    Packaging (compilation)




                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                  6
Sample Package (Redis)
release/packages/redis/spec                       release/packages/redis/packaging

 ---                                               set -e
 name: redis
 files:                                            tar zxf redis/redis-2.2.4.tar.gz
 - redis/redis-2.2.4.tar.gz
                                                   (
                                                       cd redis-2.2.4
                                                       make
                                                       make PREFIX=$BOSH_INSTALL_TARGET install
                                                   )




                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                                                           7
Sample Package (Warden)
release/packages/warden/spec                               release/packages/warden/packaging

 ---                                                        set -o errexit
 name: warden
 dependencies:                                              cp -a * ${BOSH_INSTALL_TARGET}
 - ruby                                                     (
 files:                                                         set -o errexit
 - core/warden/**/*                                             cd ${BOSH_INSTALL_TARGET}/warden
 - core/common/bin/fetch_gems                                /var/vcap/packages/ruby/bin/bundle --local install --
                                                            deployment --without=development test


                                                                # Unzip base chroot from stemcell
release/packages/warden/pre_packaging
                                                                ...

 set -e
                                                            env SKIP_DEBOOTSTRAP=true SKIP_APT=true
 cd ${BUILD_DIR}
                                                            /var/vcap/packages/ruby/bin/bundle exec rake setup
 cp -a core/warden .
                                                            )

 ruby core/common/bin/fetch_gems /warden/Gemfile
 ./warden/Gemfile.lock ./warden/vendor/cache




                                                   CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                                                                              8
Jobs
   Packages
   Templates
   Versioned
   Supervision
   Monitoring
   Lifecycle hooks




                      CONFIDENTIAL

@cloudfoundry                        9
Sample Job (Redis)
release/jobs/vcap_redis/spec

 ---
 name: vcap_redis


 templates:
   vcap_redis_ctl: bin/vcap_redis_ctl
   vcap_redis.conf.erb: config/vcap_redis.conf


 packages:
   - common
   - redis




                                                 CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                         10
Sample Job (Redis)
release/jobs/vcap_redis/monit

 check process vcap_redis
   with pidfile /var/vcap/sys/run/vcap_redis/vcap_redis.pid
   start program "/var/vcap/jobs/vcap_redis/bin/vcap_redis_ctl start"
   stop program "/var/vcap/jobs/vcap_redis/bin/vcap_redis_ctl stop"
   group vcap




                                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                                  11
Sample Job (Redis)
release/jobs/vcap_redis/templates/vcap_redis_ctl

 #!/bin/bash


 RUN_DIR=/var/vcap/sys/run/vcap_redis
 ...
 case $1 in


   start)
       pid_guard $PIDFILE "VCAP Redis"


       mkdir -p $RUN_DIR
       mkdir -p $LOG_DIR
       echo $$ > $PIDFILE


       exec /var/vcap/packages/redis/bin/redis-server /var/vcap/jobs/vcap_redis/config/vcap_redis.conf
       ;;
   stop)
       kill_and_wait $PIDFILE
       ;;
   *)
       echo "Usage: vcap_redis_ctl {start|stop}”
       ;;
 esac


                                                                       CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                                                                  12
Releases
   Packages
   Jobs
   Versioned
   Self contained
   Incremental
   Published

  » bosh create release
  » bosh upload release
  » bosh delete release
  » bosh releases




                          CONFIDENTIAL

@cloudfoundry                            13
Stemcells
    VM template
    BOSH Agent
    Versioned
    VMBuilder
    IaaS Plugin

  » bosh upload stemcell
  » bosh delete stemcell
  » bosh stemcells




                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                  14
Deployments
    Release
    Networks
    Resource pools
    Compilation workers
    Jobs
    Update concurrency
    Properties
    Cloud properties




                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                  15
Sample Deployment
  ---
  name: wordpress


  release:
   name: sample
   version: 1


  compilation:
   workers: 4
   network: default
   cloud_properties:
        ram: 2048
        disk: 8096
        cpu: 2


  update:
   canaries: 1
   canary_watch_time: 60000
   update_watch_time: 30000
   max_in_flight: 4

                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                  16
Sample Deployment
  networks:
   - name: default
     subnets:
     - reserved:
       - 192.0.2.2 - 192.0.2.10
       - 192.0.2.200 - 192.0.2.254
       static:
       - 192.0.2.11 - 192.0.2.100
       range: 192.0.2.0/24
       gateway: 192.0.2.1
       dns:
       - 192.0.2.245
       - 192.0.2.246
       cloud_properties:
         name: VLAN2220




                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                  17
Sample Deployment
  resource_pools:
   - name: infrastructure
     network: default
     size: 6
     stemcell:
       name: bosh-stemcell
       version: 0.4.6
     cloud_properties:
       cpu: 1
       disk: 8192
       ram: 4096




                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                  18
Sample Deployment
  jobs:
   - name: mysql
     template: mysql
     instances: 1
     resource_pool: infrastructure
     persistent_disk: 16384
     networks:
     - name: default
       static_ips:
       - 192.0.2.20


   - name: wordpress
     template: wordpress
     instances: 4
     resource_pool: infrastructure
     networks:
     - name: default
       static_ips:
       - 192.0.2.30 - 192.0.2.33



                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                  19
Sample Deployment
  properties:
   wordpress:
     admin: foo@bar.com
     port: 8008
     servers:
       - 192.0.2.30
       - 192.0.2.31
       - 192.0.2.32
       - 192.0.2.33
     servername: wp.appcloud14.dev.mozycloud.com
     db:
       name: wp
       user: wordpress
       pass: w0rdpr3ss
     auth_key: random key
     secure_auth_key: random key
     logged_in_key: random key
     nonce_key: random key




                                                   CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                           20
Usage
  » bosh target http://mydirector:25555
  » bosh upload stemcell ~/stemcells/stemcell-0.5.5.tgz
  » cd sample_release
  » bosh create release
  » bosh upload release
  » bosh deployment ~/deployment/sample.yml
  » vim ~/deployment/sample.yml
  » bosh deploy




                                                 CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                         21
Contracts
 Jobs
 Releases
 Cloud Provider Interface




                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                  22
Control
 Repeatable deployments
 Predictable rollout




                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                  23
Consistency
 Dev / Staging / Production
 BOSH targets




                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                  24
Components
    Director / Workers
    Agent
    Monitor
    CLI
    NATS
    Redis
    Database
    Blobstore




                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                  25
BOSH: under the hood

                BOSH User
                                            “BOSH is deployed by BOSH”

   bosh cli                               director             healthmon
                                                                             cloudfoundry.com




               db                           redis                    nats




                                          workers              blobs
                                                                              active jobs


                                                                     agent
                                          IaaS CPI               stemcell         disk
                                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                                                         26
Cloud Provider Interface
Stemcell
create_stemcell(image, cloud_properties)
delete_stemcell(stemcell)

VM
create_vm(agent_id, stemcell, resource_pool, networks,
      disk_locality, env)
delete_vm(vm)
reboot_vm(vm)
configure_networks(vm, networks)

Disk
create_disk(size, vm_locality)
delete_disk(disk)
attach_disk(vm, disk)
detach_disk(vm, disk)
                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                  27
Cloud Provider Interface
 Agent plugin
 Bootstrap
 BOSH Deployer




                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                  28
Reference / Q&A
 Mailing lists
    • http://groups.google.com/a/cloudfoundry.org/group/bosh-users
    • http://groups.google.com/a/cloudfoundry.org/group/bosh-dev
 File a Bug
    • http://cloudfoundry.atlassian.net
 Browse, Fork, Contribute
    • https://github.com/cloudfoundry/bosh
    • gerrit-clone ssh://reviews.cloudfoundry.org:29418/bosh.git




                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                              29

More Related Content

What's hot

WebSphere Application Server Liberty Profile and Docker
WebSphere Application Server Liberty Profile and DockerWebSphere Application Server Liberty Profile and Docker
WebSphere Application Server Liberty Profile and DockerDavid Currie
 
WebSphere and Docker
WebSphere and DockerWebSphere and Docker
WebSphere and DockerDavid Currie
 
Scalable, Available and Reliable Cloud Applications with PaaS and Microservices
Scalable, Available and Reliable Cloud Applications with PaaS and MicroservicesScalable, Available and Reliable Cloud Applications with PaaS and Microservices
Scalable, Available and Reliable Cloud Applications with PaaS and MicroservicesDavid Currie
 
IBM WebSphere Application Server traditional and Docker
IBM WebSphere Application Server traditional and DockerIBM WebSphere Application Server traditional and Docker
IBM WebSphere Application Server traditional and DockerDavid Currie
 
Was liberty profile and docker
Was liberty profile and dockerWas liberty profile and docker
Was liberty profile and dockersflynn073
 
Cloud Foundry Bootcamp
Cloud Foundry BootcampCloud Foundry Bootcamp
Cloud Foundry BootcampJoshua Long
 
Cloud Foundry and OpenStack – Marriage Made in Heaven !
Cloud Foundry and OpenStack – Marriage Made in Heaven !Cloud Foundry and OpenStack – Marriage Made in Heaven !
Cloud Foundry and OpenStack – Marriage Made in Heaven ! Animesh Singh
 
As a Service: Cloud Foundry on OpenStack - Lessons Learnt
As a Service: Cloud Foundry on OpenStack - Lessons LearntAs a Service: Cloud Foundry on OpenStack - Lessons Learnt
As a Service: Cloud Foundry on OpenStack - Lessons LearntAnimesh Singh
 
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)Simon Haslam
 
[OpenStack Day in Korea] OpenStack Provisioning in 30 minutes
[OpenStack Day in Korea] OpenStack Provisioning in 30 minutes[OpenStack Day in Korea] OpenStack Provisioning in 30 minutes
[OpenStack Day in Korea] OpenStack Provisioning in 30 minutesSungjin Kang
 
Build Your Own Open Source Cloud
Build Your Own Open Source CloudBuild Your Own Open Source Cloud
Build Your Own Open Source CloudAdrian Otto
 
The Kubernetes WebLogic revival (part 2)
The Kubernetes WebLogic revival (part 2)The Kubernetes WebLogic revival (part 2)
The Kubernetes WebLogic revival (part 2)Simon Haslam
 
Hitchhiker's Guide to Open Source Cloud Computing
Hitchhiker's Guide to Open Source Cloud ComputingHitchhiker's Guide to Open Source Cloud Computing
Hitchhiker's Guide to Open Source Cloud ComputingMark Hinkle
 
AAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
AAI-3218 Production Deployment Best Practices for WebSphere Liberty ProfileAAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
AAI-3218 Production Deployment Best Practices for WebSphere Liberty ProfileWASdev Community
 
20191201 kubernetes managed weblogic revival - part 2
20191201 kubernetes managed weblogic revival - part 220191201 kubernetes managed weblogic revival - part 2
20191201 kubernetes managed weblogic revival - part 2makker_nl
 
AAI-1304 Technical Deep-Dive into IBM WebSphere Liberty
AAI-1304 Technical Deep-Dive into IBM WebSphere LibertyAAI-1304 Technical Deep-Dive into IBM WebSphere Liberty
AAI-1304 Technical Deep-Dive into IBM WebSphere LibertyWASdev Community
 
Extending Build to the Client: A Maven User's Guide to Grunt.js
Extending Build to the Client: A Maven User's Guide to Grunt.jsExtending Build to the Client: A Maven User's Guide to Grunt.js
Extending Build to the Client: A Maven User's Guide to Grunt.jsPetr Jiricka
 
Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...
Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...
Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...Animesh Singh
 
Deploying Containers in Production and at Scale
Deploying Containers in Production and at ScaleDeploying Containers in Production and at Scale
Deploying Containers in Production and at ScaleMesosphere Inc.
 
AAI-4847 Full Disclosure on the Performance Characteristics of WebSphere Appl...
AAI-4847 Full Disclosure on the Performance Characteristics of WebSphere Appl...AAI-4847 Full Disclosure on the Performance Characteristics of WebSphere Appl...
AAI-4847 Full Disclosure on the Performance Characteristics of WebSphere Appl...WASdev Community
 

What's hot (20)

WebSphere Application Server Liberty Profile and Docker
WebSphere Application Server Liberty Profile and DockerWebSphere Application Server Liberty Profile and Docker
WebSphere Application Server Liberty Profile and Docker
 
WebSphere and Docker
WebSphere and DockerWebSphere and Docker
WebSphere and Docker
 
Scalable, Available and Reliable Cloud Applications with PaaS and Microservices
Scalable, Available and Reliable Cloud Applications with PaaS and MicroservicesScalable, Available and Reliable Cloud Applications with PaaS and Microservices
Scalable, Available and Reliable Cloud Applications with PaaS and Microservices
 
IBM WebSphere Application Server traditional and Docker
IBM WebSphere Application Server traditional and DockerIBM WebSphere Application Server traditional and Docker
IBM WebSphere Application Server traditional and Docker
 
Was liberty profile and docker
Was liberty profile and dockerWas liberty profile and docker
Was liberty profile and docker
 
Cloud Foundry Bootcamp
Cloud Foundry BootcampCloud Foundry Bootcamp
Cloud Foundry Bootcamp
 
Cloud Foundry and OpenStack – Marriage Made in Heaven !
Cloud Foundry and OpenStack – Marriage Made in Heaven !Cloud Foundry and OpenStack – Marriage Made in Heaven !
Cloud Foundry and OpenStack – Marriage Made in Heaven !
 
As a Service: Cloud Foundry on OpenStack - Lessons Learnt
As a Service: Cloud Foundry on OpenStack - Lessons LearntAs a Service: Cloud Foundry on OpenStack - Lessons Learnt
As a Service: Cloud Foundry on OpenStack - Lessons Learnt
 
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)
 
[OpenStack Day in Korea] OpenStack Provisioning in 30 minutes
[OpenStack Day in Korea] OpenStack Provisioning in 30 minutes[OpenStack Day in Korea] OpenStack Provisioning in 30 minutes
[OpenStack Day in Korea] OpenStack Provisioning in 30 minutes
 
Build Your Own Open Source Cloud
Build Your Own Open Source CloudBuild Your Own Open Source Cloud
Build Your Own Open Source Cloud
 
The Kubernetes WebLogic revival (part 2)
The Kubernetes WebLogic revival (part 2)The Kubernetes WebLogic revival (part 2)
The Kubernetes WebLogic revival (part 2)
 
Hitchhiker's Guide to Open Source Cloud Computing
Hitchhiker's Guide to Open Source Cloud ComputingHitchhiker's Guide to Open Source Cloud Computing
Hitchhiker's Guide to Open Source Cloud Computing
 
AAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
AAI-3218 Production Deployment Best Practices for WebSphere Liberty ProfileAAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
AAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
 
20191201 kubernetes managed weblogic revival - part 2
20191201 kubernetes managed weblogic revival - part 220191201 kubernetes managed weblogic revival - part 2
20191201 kubernetes managed weblogic revival - part 2
 
AAI-1304 Technical Deep-Dive into IBM WebSphere Liberty
AAI-1304 Technical Deep-Dive into IBM WebSphere LibertyAAI-1304 Technical Deep-Dive into IBM WebSphere Liberty
AAI-1304 Technical Deep-Dive into IBM WebSphere Liberty
 
Extending Build to the Client: A Maven User's Guide to Grunt.js
Extending Build to the Client: A Maven User's Guide to Grunt.jsExtending Build to the Client: A Maven User's Guide to Grunt.js
Extending Build to the Client: A Maven User's Guide to Grunt.js
 
Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...
Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...
Introducing Cloud Native, Event Driven, Serverless, Micrsoservices Framework ...
 
Deploying Containers in Production and at Scale
Deploying Containers in Production and at ScaleDeploying Containers in Production and at Scale
Deploying Containers in Production and at Scale
 
AAI-4847 Full Disclosure on the Performance Characteristics of WebSphere Appl...
AAI-4847 Full Disclosure on the Performance Characteristics of WebSphere Appl...AAI-4847 Full Disclosure on the Performance Characteristics of WebSphere Appl...
AAI-4847 Full Disclosure on the Performance Characteristics of WebSphere Appl...
 

Similar to Cloud Foundry and OpenStack

Building and Customizing CoreOS
Building and Customizing CoreOSBuilding and Customizing CoreOS
Building and Customizing CoreOS雄也 日下部
 
Postgres the hardway
Postgres the hardwayPostgres the hardway
Postgres the hardwayDave Pitts
 
PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...
PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...
PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...Puppet
 
Challenges of container configuration
Challenges of container configurationChallenges of container configuration
Challenges of container configurationlutter
 
Custom Buildpacks and Data Services
Custom Buildpacks and Data ServicesCustom Buildpacks and Data Services
Custom Buildpacks and Data ServicesTom Kranz
 
DCSF19 Dockerfile Best Practices
DCSF19 Dockerfile Best PracticesDCSF19 Dockerfile Best Practices
DCSF19 Dockerfile Best PracticesDocker, Inc.
 
Deploying FuseMQ with Fuse Fabric
Deploying FuseMQ with Fuse FabricDeploying FuseMQ with Fuse Fabric
Deploying FuseMQ with Fuse Fabricdejanb
 
Big Data Step-by-Step: Infrastructure 1/3: Local VM
Big Data Step-by-Step: Infrastructure 1/3: Local VMBig Data Step-by-Step: Infrastructure 1/3: Local VM
Big Data Step-by-Step: Infrastructure 1/3: Local VMJeffrey Breen
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionBen Hall
 
VDCF Overview
VDCF OverviewVDCF Overview
VDCF OverviewJomaSoft
 
Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)
Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)
Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)VMware Tanzu
 
Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Ben Hall
 
VMware@Night: Container & Virtualisierung
VMware@Night: Container & VirtualisierungVMware@Night: Container & Virtualisierung
VMware@Night: Container & VirtualisierungDigicomp Academy AG
 
VMware@Night Container and Virtualization
VMware@Night Container and VirtualizationVMware@Night Container and Virtualization
VMware@Night Container and VirtualizationOpvizor, Inc.
 
桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作Philip Zheng
 
Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Ben Hall
 
Docker for Web Developers: A Sneak Peek
Docker for Web Developers: A Sneak PeekDocker for Web Developers: A Sneak Peek
Docker for Web Developers: A Sneak Peekmsyukor
 
MeaNstack on Docker
MeaNstack on DockerMeaNstack on Docker
MeaNstack on DockerDaniel Ku
 

Similar to Cloud Foundry and OpenStack (20)

Building and Customizing CoreOS
Building and Customizing CoreOSBuilding and Customizing CoreOS
Building and Customizing CoreOS
 
Postgres the hardway
Postgres the hardwayPostgres the hardway
Postgres the hardway
 
PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...
PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...
PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...
 
Challenges of container configuration
Challenges of container configurationChallenges of container configuration
Challenges of container configuration
 
Custom Buildpacks and Data Services
Custom Buildpacks and Data ServicesCustom Buildpacks and Data Services
Custom Buildpacks and Data Services
 
Geode on Docker
Geode on DockerGeode on Docker
Geode on Docker
 
DCSF19 Dockerfile Best Practices
DCSF19 Dockerfile Best PracticesDCSF19 Dockerfile Best Practices
DCSF19 Dockerfile Best Practices
 
Deploying FuseMQ with Fuse Fabric
Deploying FuseMQ with Fuse FabricDeploying FuseMQ with Fuse Fabric
Deploying FuseMQ with Fuse Fabric
 
Big Data Step-by-Step: Infrastructure 1/3: Local VM
Big Data Step-by-Step: Infrastructure 1/3: Local VMBig Data Step-by-Step: Infrastructure 1/3: Local VM
Big Data Step-by-Step: Infrastructure 1/3: Local VM
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and Production
 
VDCF Overview
VDCF OverviewVDCF Overview
VDCF Overview
 
Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)
Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)
Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)
 
Environment
EnvironmentEnvironment
Environment
 
Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)
 
VMware@Night: Container & Virtualisierung
VMware@Night: Container & VirtualisierungVMware@Night: Container & Virtualisierung
VMware@Night: Container & Virtualisierung
 
VMware@Night Container and Virtualization
VMware@Night Container and VirtualizationVMware@Night Container and Virtualization
VMware@Night Container and Virtualization
 
桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作
 
Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)
 
Docker for Web Developers: A Sneak Peek
Docker for Web Developers: A Sneak PeekDocker for Web Developers: A Sneak Peek
Docker for Web Developers: A Sneak Peek
 
MeaNstack on Docker
MeaNstack on DockerMeaNstack on Docker
MeaNstack on Docker
 

Recently uploaded

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
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
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
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
 

Recently uploaded (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
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
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

Cloud Foundry and OpenStack

  • 1. Cloud Foundry and OpenStack Cloud Foundry, BOSH, and CPIs like OpenStack Vadim Spivak Cloud Foundry Engineering @vadimspivak © 2012 VMware, Inc. All rights reserved
  • 2. Agenda  Background  Concepts  Contracts  Control  Consistency  Components  Cloud Provider Interface CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 2
  • 3. Background  Cloud Foundry  BOSH • Release engineering • Lifecycle management • Single tool / Ease of use • Infrastructure portability CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 3
  • 4. Concepts  Source / Blobs  Packages  Jobs  Releases  Stemcells  Deployments CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 4
  • 5. Source / Blobs  All deployed software  git (submodules)  bosh blobs  bosh sync blobs -rw-r--r-- 1 vspivak staff 29000 Apr 11 11:16 blob_index.yml drwxr-xr-x 25 vspivak staff 850 Apr 16 13:07 blobs drwxr-xr-x 3 vspivak staff 102 Apr 16 12:22 config drwxr-xr-x 42 vspivak staff 1428 Apr 16 12:22 jobs drwxr-xr-x 61 vspivak staff 2074 Apr 16 12:22 packages drwxr-xr-x 61 vspivak staff 2074 Apr 11 11:16 releases drwxr-xr-x 16 vspivak staff 544 Apr 16 13:40 src CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 5
  • 6. Packages  Source / blobs  Dependencies  Versioning  Pre-packaging  Packaging (compilation) CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 6
  • 7. Sample Package (Redis) release/packages/redis/spec release/packages/redis/packaging --- set -e name: redis files: tar zxf redis/redis-2.2.4.tar.gz - redis/redis-2.2.4.tar.gz ( cd redis-2.2.4 make make PREFIX=$BOSH_INSTALL_TARGET install ) CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 7
  • 8. Sample Package (Warden) release/packages/warden/spec release/packages/warden/packaging --- set -o errexit name: warden dependencies: cp -a * ${BOSH_INSTALL_TARGET} - ruby ( files: set -o errexit - core/warden/**/* cd ${BOSH_INSTALL_TARGET}/warden - core/common/bin/fetch_gems /var/vcap/packages/ruby/bin/bundle --local install -- deployment --without=development test # Unzip base chroot from stemcell release/packages/warden/pre_packaging ... set -e env SKIP_DEBOOTSTRAP=true SKIP_APT=true cd ${BUILD_DIR} /var/vcap/packages/ruby/bin/bundle exec rake setup cp -a core/warden . ) ruby core/common/bin/fetch_gems /warden/Gemfile ./warden/Gemfile.lock ./warden/vendor/cache CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 8
  • 9. Jobs  Packages  Templates  Versioned  Supervision  Monitoring  Lifecycle hooks CONFIDENTIAL @cloudfoundry 9
  • 10. Sample Job (Redis) release/jobs/vcap_redis/spec --- name: vcap_redis templates: vcap_redis_ctl: bin/vcap_redis_ctl vcap_redis.conf.erb: config/vcap_redis.conf packages: - common - redis CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 10
  • 11. Sample Job (Redis) release/jobs/vcap_redis/monit check process vcap_redis with pidfile /var/vcap/sys/run/vcap_redis/vcap_redis.pid start program "/var/vcap/jobs/vcap_redis/bin/vcap_redis_ctl start" stop program "/var/vcap/jobs/vcap_redis/bin/vcap_redis_ctl stop" group vcap CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 11
  • 12. Sample Job (Redis) release/jobs/vcap_redis/templates/vcap_redis_ctl #!/bin/bash RUN_DIR=/var/vcap/sys/run/vcap_redis ... case $1 in start) pid_guard $PIDFILE "VCAP Redis" mkdir -p $RUN_DIR mkdir -p $LOG_DIR echo $$ > $PIDFILE exec /var/vcap/packages/redis/bin/redis-server /var/vcap/jobs/vcap_redis/config/vcap_redis.conf ;; stop) kill_and_wait $PIDFILE ;; *) echo "Usage: vcap_redis_ctl {start|stop}” ;; esac CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 12
  • 13. Releases  Packages  Jobs  Versioned  Self contained  Incremental  Published » bosh create release » bosh upload release » bosh delete release » bosh releases CONFIDENTIAL @cloudfoundry 13
  • 14. Stemcells  VM template  BOSH Agent  Versioned  VMBuilder  IaaS Plugin » bosh upload stemcell » bosh delete stemcell » bosh stemcells CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 14
  • 15. Deployments  Release  Networks  Resource pools  Compilation workers  Jobs  Update concurrency  Properties  Cloud properties CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 15
  • 16. Sample Deployment --- name: wordpress release: name: sample version: 1 compilation: workers: 4 network: default cloud_properties: ram: 2048 disk: 8096 cpu: 2 update: canaries: 1 canary_watch_time: 60000 update_watch_time: 30000 max_in_flight: 4 CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 16
  • 17. Sample Deployment networks: - name: default subnets: - reserved: - 192.0.2.2 - 192.0.2.10 - 192.0.2.200 - 192.0.2.254 static: - 192.0.2.11 - 192.0.2.100 range: 192.0.2.0/24 gateway: 192.0.2.1 dns: - 192.0.2.245 - 192.0.2.246 cloud_properties: name: VLAN2220 CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 17
  • 18. Sample Deployment resource_pools: - name: infrastructure network: default size: 6 stemcell: name: bosh-stemcell version: 0.4.6 cloud_properties: cpu: 1 disk: 8192 ram: 4096 CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 18
  • 19. Sample Deployment jobs: - name: mysql template: mysql instances: 1 resource_pool: infrastructure persistent_disk: 16384 networks: - name: default static_ips: - 192.0.2.20 - name: wordpress template: wordpress instances: 4 resource_pool: infrastructure networks: - name: default static_ips: - 192.0.2.30 - 192.0.2.33 CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 19
  • 20. Sample Deployment properties: wordpress: admin: foo@bar.com port: 8008 servers: - 192.0.2.30 - 192.0.2.31 - 192.0.2.32 - 192.0.2.33 servername: wp.appcloud14.dev.mozycloud.com db: name: wp user: wordpress pass: w0rdpr3ss auth_key: random key secure_auth_key: random key logged_in_key: random key nonce_key: random key CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 20
  • 21. Usage » bosh target http://mydirector:25555 » bosh upload stemcell ~/stemcells/stemcell-0.5.5.tgz » cd sample_release » bosh create release » bosh upload release » bosh deployment ~/deployment/sample.yml » vim ~/deployment/sample.yml » bosh deploy CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 21
  • 22. Contracts  Jobs  Releases  Cloud Provider Interface CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 22
  • 23. Control  Repeatable deployments  Predictable rollout CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 23
  • 24. Consistency  Dev / Staging / Production  BOSH targets CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 24
  • 25. Components  Director / Workers  Agent  Monitor  CLI  NATS  Redis  Database  Blobstore CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 25
  • 26. BOSH: under the hood BOSH User “BOSH is deployed by BOSH” bosh cli director healthmon cloudfoundry.com db redis nats workers blobs active jobs agent IaaS CPI stemcell disk CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 26
  • 27. Cloud Provider Interface Stemcell create_stemcell(image, cloud_properties) delete_stemcell(stemcell) VM create_vm(agent_id, stemcell, resource_pool, networks, disk_locality, env) delete_vm(vm) reboot_vm(vm) configure_networks(vm, networks) Disk create_disk(size, vm_locality) delete_disk(disk) attach_disk(vm, disk) detach_disk(vm, disk) CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 27
  • 28. Cloud Provider Interface  Agent plugin  Bootstrap  BOSH Deployer CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 28
  • 29. Reference / Q&A  Mailing lists • http://groups.google.com/a/cloudfoundry.org/group/bosh-users • http://groups.google.com/a/cloudfoundry.org/group/bosh-dev  File a Bug • http://cloudfoundry.atlassian.net  Browse, Fork, Contribute • https://github.com/cloudfoundry/bosh • gerrit-clone ssh://reviews.cloudfoundry.org:29418/bosh.git CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 29

Editor's Notes

  1. Concepts- src/blobs/packages/jobsContracts- cpi, job lifecycle, releasesControl:- repeatable deployments, controlled changeConsistency:- same release, multiple targets/environmentsCPI:Challenges:
  2. CF – Open PaaS, many frameworks, runtims