Cloud Foundry Update
The Industry’s Open Platform as a Service

Twitter: @cloudfoundry




       © 2012 VMware, Inc. All rights reserved
Mark Lucovsky
                                VP Engineering, Cloud Foundry, VMware




                                                CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                                 2
CloudFoundry.org




                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                  3
The New CloudFoundry.org
                                                     cloudfoundry.com


                                                                 production updated ~2x/week

                                                           github
                                                  github.com/cloudfoundry

                                                                 on +2 and ✓ change pushed to github

             Reviewers                    +1/-1     Gerrit Code Review            +2/-2      Committers
                                                  reviews.cloudfoundry.org

                    test verification score ✓ ✗                           git push triggers test execution

                                                        Jenkins CI
                                                    ci.cloudfoundry.org
                                                           CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                                                                      4
More
                                                     Clouds




                                           More                       More
                                          Partners                  Community




                                                      More
                                                      Code


                                                     CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                                         5
What have we been up to: Visible Features
§  Services
    •  Caldecott – tunnel into your services, explore with standard client tools
    •  PostgreSQL, RabbitMQ


§  Frameworks, Runtimes, and Tools
    •  Java and Ruby Auto-Reconfiguration
    •  Scala, node.JS 0.6.*, Erlang, JRuby, PHP, Python, .NET, Spring 3.1, Grails 2.0
    •  Multi-Node Chef based deployment tools
    •  Maven Plugin, Eclipse Integration
    •  VMC manifests, Java Debugging, Rails Console


§  Micro Cloud Foundry x 3


                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                                                 6
80% of our work has been below the water line

                                               §  Developer Visible Features



                                               §  Contributor Visible Features
                                                   •  re-visiting architectural issues
                                                   •  extensive hardening
                                                   •  algorithm tuning
                                                   •  scalability enhancements
                                                   •  operational enhancements




                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                                                  7
App lifecycle management: at launch
                                                                              start/stop instances
§  awesome conceptual
    architecture, logical flows
§  simplistic design provided a                            cloud
                                                          controller           health
    solid conceptual foundation
                                                                              manager
§  scalability, robustness,
    operational efficiency, and                            cc - db                          actual
                                                                       get expected
    extensibility was inadequate                                                            state
                                                                           state

                                                            NFS
§  deconstruction/refactoring                                                        dea
    •  enable multiple independently                   resources,
                                                   droplets, packages
        scalable components
    •  eliminate “boot storms” at scale                                  fetch droplets
    •  tune the hot data paths
§  apply learning from the beta
    •  across the board and to all major
        system components
                                           CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                                                              8
App lifecycle management: +1yr


                                          v2
                    cloud
                                                  stager                            health
                                                                                             v2
                  controller                               New!
                                                                                   manager

                    cc - db                     staging
                                                  jobs New!
                                                                             package
                   uaa - db                                                   cache New!                v2*
                                   New!                                                           dea
                                                  redis
                                                          New!
              uaa - AuthN                                                    blobstore
                                               staging logs                         New!
                                   New!




                                  more new code than old code CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                                                                       9
App execution (DEA): at launch and +1yr
§  Major internal rewrite
§  Validating isolation model in Jenkins
§  Live in CF.com ~30d                                        dea.rb
                                                            container api

                                                           nat and firewall
                      dea.rb

                                                           private network
                      apps
                                                                app
                                                             private fs
                                                         warden container*




                                          CONFIDENTIAL              * also running in our Jenkins workers
© 2012 VMware, Inc. All rights reserved                                                           10
Router: at launch and +1yr
                               http request                                                      http request



                                    nginx                                                          nginx
                                                                                               (+lua extension)
                                             proxied                                                      lookup
                                             request                                                     node:port
                                                                                                 upstream
                                 router.rb
                                                                                                locator svc


                                                       proxied                                                       proxied
                                      nats             request                                      nats             request

<app>.cf.com                                                                    <app>.cf.com
           ê                                                                       ê
    node:port                                                                    node:port
                                    dea                                                            dea
                                                                 CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                                                                                   11
Production Grade Cloud Foundry Clusters
§  500 – 5,000 VMs                                              cloudfoundry.com

§  40+ unique node types
§  75+ unique software packages
§  75+ unique environments
§  2x/week cf.com updates
§  24x7x365 non-stop operation
§  No-downtime deployments
§  Reliable, robust, repeatable
    deployments, updates,
    capacity adjustments
§  Small teams manage many
    instances                                            production, staging, stress, qa, dev



 Google style problem  Google style solution
                                          CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                                                         12
Cloud Foundry BOSH
§  Cloud Foundry BOSH is an open source tool-chain for
    release engineering, deployment, and lifecycle management                       of
    large scale distributed services
    •  Prescriptive way of creating releases and managing systems and services
    •  It is not a collection of shell scripts, not a pile of Perl


§  Built to deploy and manage production-class, large scale clusters
    •  Production grade Cloud Foundry clusters: 500+ VMs, 40+ jobs, 75+ packages
    •  Multi-node, multi-tier, complex clusters: e.g., our Gerrit/Jenkins Cluster


§  Built for devops usage and scale by a crack team of veterans
    •  A project, not a product: command line interface, YAML, etc.
    •  Continuous improvement, iterative development, rough edges

                                          github.com/cloudfoundry/bosh
                                                      CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                                              13
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                                                         14
IaaS neutral by design

  vSphere: battle tested implementation,
  thousands of deployments                                                    CPI: code complete
  vCloud Director: “work in progress”, 2H 2012                                functional status: “work in progress”




                                                Cloud Foundry BOSH


                                          Cloud Provider Interface (CPI)




                                          contribute: github.com/cloudfoundry/bosh
                                                         CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                                                                           15
Where do I go for what
§  Learn
    •  developers: http://docs.cloudfoundry.com
    •  contributors: http://cloudfoundry.org
§  Ask Questions
    •  using BOSH: http://groups.google.com/a/cloudfoundry.org/group/bosh-users
    •  code BOSH: http://groups.google.com/a/cloudfoundry.org/group/bosh-dev
    •  code VCAP: http://groups.google.com/a/cloudfoundry.org/group/dev
    •  use cloudfoundry.com: http://support.cloudfoundry.com
§  File a Bug
    •  http://cloudfoundry.atlassian.net
§  Browse, Fork, Contribute
    •  browse on github: https://github.com/cloudfoundry/bosh
    •  contribute: gerrit-clone ssh://reviews.cloudfoundry.org:29418/bosh.git

                                           CONFIDENTIAL

© 2012 VMware, Inc. All rights reserved                                           16

Cloud Foundry Anniversary: Technical Slides

  • 1.
    Cloud Foundry Update TheIndustry’s Open Platform as a Service Twitter: @cloudfoundry © 2012 VMware, Inc. All rights reserved
  • 2.
    Mark Lucovsky VP Engineering, Cloud Foundry, VMware CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 2
  • 3.
    CloudFoundry.org CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 3
  • 4.
    The New CloudFoundry.org cloudfoundry.com production updated ~2x/week github github.com/cloudfoundry on +2 and ✓ change pushed to github Reviewers +1/-1 Gerrit Code Review +2/-2 Committers reviews.cloudfoundry.org test verification score ✓ ✗ git push triggers test execution Jenkins CI ci.cloudfoundry.org CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 4
  • 5.
    More Clouds More More Partners Community More Code CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 5
  • 6.
    What have webeen up to: Visible Features §  Services •  Caldecott – tunnel into your services, explore with standard client tools •  PostgreSQL, RabbitMQ §  Frameworks, Runtimes, and Tools •  Java and Ruby Auto-Reconfiguration •  Scala, node.JS 0.6.*, Erlang, JRuby, PHP, Python, .NET, Spring 3.1, Grails 2.0 •  Multi-Node Chef based deployment tools •  Maven Plugin, Eclipse Integration •  VMC manifests, Java Debugging, Rails Console §  Micro Cloud Foundry x 3 CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 6
  • 7.
    80% of ourwork has been below the water line §  Developer Visible Features §  Contributor Visible Features •  re-visiting architectural issues •  extensive hardening •  algorithm tuning •  scalability enhancements •  operational enhancements CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 7
  • 8.
    App lifecycle management:at launch start/stop instances §  awesome conceptual architecture, logical flows §  simplistic design provided a cloud controller health solid conceptual foundation manager §  scalability, robustness, operational efficiency, and cc - db actual get expected extensibility was inadequate state state NFS §  deconstruction/refactoring dea •  enable multiple independently resources, droplets, packages scalable components •  eliminate “boot storms” at scale fetch droplets •  tune the hot data paths §  apply learning from the beta •  across the board and to all major system components CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 8
  • 9.
    App lifecycle management:+1yr v2 cloud stager health v2 controller New! manager cc - db staging jobs New! package uaa - db cache New! v2* New! dea redis New! uaa - AuthN blobstore staging logs New! New! more new code than old code CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 9
  • 10.
    App execution (DEA):at launch and +1yr §  Major internal rewrite §  Validating isolation model in Jenkins §  Live in CF.com ~30d dea.rb container api nat and firewall dea.rb private network apps app private fs warden container* CONFIDENTIAL * also running in our Jenkins workers © 2012 VMware, Inc. All rights reserved 10
  • 11.
    Router: at launchand +1yr http request http request nginx nginx (+lua extension) proxied lookup request node:port upstream router.rb locator svc proxied proxied nats request nats request <app>.cf.com <app>.cf.com ê ê node:port node:port dea dea CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 11
  • 12.
    Production Grade CloudFoundry Clusters §  500 – 5,000 VMs cloudfoundry.com §  40+ unique node types §  75+ unique software packages §  75+ unique environments §  2x/week cf.com updates §  24x7x365 non-stop operation §  No-downtime deployments §  Reliable, robust, repeatable deployments, updates, capacity adjustments §  Small teams manage many instances production, staging, stress, qa, dev Google style problem  Google style solution CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 12
  • 13.
    Cloud Foundry BOSH § Cloud Foundry BOSH is an open source tool-chain for release engineering, deployment, and lifecycle management of large scale distributed services •  Prescriptive way of creating releases and managing systems and services •  It is not a collection of shell scripts, not a pile of Perl §  Built to deploy and manage production-class, large scale clusters •  Production grade Cloud Foundry clusters: 500+ VMs, 40+ jobs, 75+ packages •  Multi-node, multi-tier, complex clusters: e.g., our Gerrit/Jenkins Cluster §  Built for devops usage and scale by a crack team of veterans •  A project, not a product: command line interface, YAML, etc. •  Continuous improvement, iterative development, rough edges github.com/cloudfoundry/bosh CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 13
  • 14.
    BOSH: under thehood 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 14
  • 15.
    IaaS neutral bydesign vSphere: battle tested implementation, thousands of deployments CPI: code complete vCloud Director: “work in progress”, 2H 2012 functional status: “work in progress” Cloud Foundry BOSH Cloud Provider Interface (CPI) contribute: github.com/cloudfoundry/bosh CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 15
  • 16.
    Where do Igo for what §  Learn •  developers: http://docs.cloudfoundry.com •  contributors: http://cloudfoundry.org §  Ask Questions •  using BOSH: http://groups.google.com/a/cloudfoundry.org/group/bosh-users •  code BOSH: http://groups.google.com/a/cloudfoundry.org/group/bosh-dev •  code VCAP: http://groups.google.com/a/cloudfoundry.org/group/dev •  use cloudfoundry.com: http://support.cloudfoundry.com §  File a Bug •  http://cloudfoundry.atlassian.net §  Browse, Fork, Contribute •  browse on github: https://github.com/cloudfoundry/bosh •  contribute: gerrit-clone ssh://reviews.cloudfoundry.org:29418/bosh.git CONFIDENTIAL © 2012 VMware, Inc. All rights reserved 16