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

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 

Recently uploaded (20)

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 

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