SlideShare a Scribd company logo
1 of 97
Download to read offline
Cloud Foundry Architecture
                                                                  Ramnivas Laddad
                                                                    @ramnivas




© 2012 SpringOne 2GX. All rights reserved. Do not distribute without permission.
@ramnivas
 •    Spring framework committer
 •    Cloud Foundry committer
 •    Main interests
       –  Cloud computing
       –  Aspect-oriented programming
       –  Scala and functional programming
 •    Author of books and articles
       –  AspectJ in Action (1st and 2nd edition)
 •    Speaker at many professional conferences
       –  JavaOne, JavaPolis, SpringOne, Software Development, No Fluff Just Stuff, EclipseCon,
          O’Reilly OSCON etc.
 •    Active involvement in AspectJ, Spring, and Cloud Foundry since their
      early form
Technologies “Я” Us
                                                                Closure        Java
                         AMQP        HTML5           Akka
           Mongo                                                Spring       Scala
Redis                            JSF                Grails
           Hibernate                                                     node.js
RabbitMQ                  JDBC
                                          Lift
                                                             Rails
                   JMS                                                       Ruby
 Hadoop                                      Sinatra
                            Batch Job                        Django
                   JTA                                                      Python
 MySQL                                    Web Services
                   JPA    Caching                                    LDAP
   Postgres                             Scripting
                           Testing                           Security
               Neo4j                        REST
Technologies “Я” Us
                                                                Closure        Java
                         AMQP        HTML5           Akka
           Mongo                                                Spring       Scala
Redis                            JSF                Grails
           Hibernate                                                     node.js
RabbitMQ                  JDBC
                                          Lift
                                                             Rails
                   JMS                                                       Ruby
 Hadoop                                      Sinatra
                            Batch Job                        Django
                   JTA                                                      Python
 MySQL                                    Web Services
                   JPA    Caching                                    LDAP
   Postgres                             Scripting
                           Testing                           Security
               Neo4j                        REST
Technologies “Я” Us
                           Access logs            Network
  Routing
                   Hardware failures       DNS
                                                        Storage
  Load balancing
                           Auditing       Rolling Updates
 User management

                          Security          DoS
   Backups                                                  DBA

              OS                         Monitoring
                            Patches
Technologies “Я” Us
                           Access logs            Network
  Routing
                   Hardware failures       DNS
                                                        Storage
  Load balancing
                           Auditing       Rolling Updates
 User management

                          Security          DoS
   Backups                                                  DBA

              OS                         Monitoring
                            Patches
Facets of complexity: Product
§  More functionality
§  Time to market pressure
§  Complex integration
§  Higher stake in quality
Facets of complexity: Development
§  Sound architecture: future proofing without overdoing
§  Unit and integration tests
§  Responding to changing business needs
§  Confusing technology landscape
Facets of complexity: Deployment and
operation
§  Choosing the right hardware, operating system, web server
§  Monitoring applications
§  Responding to scalability needs
§  Dealing with hardware- and system-level failures
§  Upgrading without substantial down time
Inherent vs. Apparent Complexity




         Implementation
Inherent vs. Apparent Complexity




         Implementation
        Functional logic
Inherent vs. Apparent Complexity




         Implementation
        Functional logic            Inherent
                                   complexity
Inherent vs. Apparent Complexity




  Implementation overhead
         Implementation
        Functional logic            Inherent
                                   complexity
Inherent vs. Apparent Complexity




  Implementation overhead
                                             Apparent
         Implementation                     complexity

        Functional logic            Inherent
                                   complexity
Inherent vs. Apparent Complexity

                          What can we do
                              about this?


  Implementation overhead
                                                Apparent
         Implementation                        complexity

        Functional logic               Inherent
                                      complexity
What can we do?




                  ?
Three layers of Cloud Computing
                       SaaS
       Software as a Service




                       PaaS
       Platform as a Service




                        IaaS
  Infrastructure as a Service
Cloud Foundry open PaaS - Choice of clouds



     Data
     Services                                       Private	
  	
  
                                                    Clouds	
  	
  
            Msg
            Services
                                           Public	
  
                                           Clouds	
  
                        Other     Micro	
  
                       Services
                                  Clouds	
  
Cloud Foundry open PaaS - Choice of clouds



          Data
          Services                                       Private	
  	
  
                                                         Clouds	
  	
  
                 Msg
                 Services
                                                Public	
  
                                                Clouds	
  
                             Other     Micro	
  
                            Services
                                       Clouds	
  

Apache2 license
Cloud Foundry open PaaS - Choice of clouds



          Data
          Services                                       Private	
  	
  
                                                         Clouds	
  	
  
                                                                           Partners	
  
                 Msg
                 Services
                                                Public	
  
                                                Clouds	
  
                             Other     Micro	
  
                            Services
                                       Clouds	
  

Apache2 license
Cloud Foundry Architecture
Architectural Goals
•    No single point of failure
•    Distributed state
•    Self healing
•    Horizontally scalable
Architectural Principles
•    Loose coupling
•    Event-driven
•    Asynchronous
•    Non-blocking
•    Idempotent
•    Eventually consistent
•    Language-independent communication
Cloud Foundry Layers


                          Clients
                        Inner Shell
                        Outer Shell
                 Infrastructure as a Service
         Hardware (CPU, Memory, Storage, Network)
Cloud Foundry Core Components
         The Inner Shell
Cloud Foundry Inner Shell and Up
     Developers                                       Users




                                 Routers

  CloudControllers    Stagers      App        App

                                                      HealthManager
                                   Execution Agents
           Services
                                      (DEA) Pool

                                Messaging
Zooming in…
                                                          App meta data



                   cloud
                                            stager              health
                 controller
                                                               manager
                    cc - db                staging
                                             jobs        package
                  uaa - db                                cache
                                                                          dea
                                                                           dea
                                            redis                           dea
                                                                              dea
                                                         blobstore             dea
              uaa - AuthN                                                       dea
                                          staging logs




© 2012 VMware, Inc. All rights reserved
Design Principles
•  Dynamically discoverable components
•  No inter-component dependencies
   –  Launch in any order
   –  Scale up and down independently
•  Monitor using HTTP end points
Cloud Foundry Inner Shell and Up
     Developers                                       Users




                                 Routers

  CloudControllers    Stagers      App        App

                                                      HealthManager
                                   Execution Agents
           Services
                                      (DEA) Pool

                                Messaging
Cloud Controller
•  Interface with the clients
   –  VMC
   –  STS
   –  Portal
•  Provides REST interface to domain objects
   –    Apps
   –    Services
   –    Orgs
   –    Spaces
Cloud Controller REST API



                  Demo
Cloud Foundry Inner Shell and Up
     Developers                                       Users




                                 Routers

  CloudControllers    Stagers      App        App

                                                      HealthManager
                                   Execution Agents
           Services
                                      (DEA) Pool

                                Messaging
Stager
•  Responsible for morphing user app into executable
•  Pluggable architecture
   –  Each plugin understands a framework or a runtime
•  Allow the DEA to view applications uniformly
Stager’s role



                                           ……………
……………
……………
                      Stager               ……………
                                           ……………
……………                                      ……………
……………                                      ……………
……………                                      ……………
…………..                                     ::::::::::
           Spring   Play       Rails   …
From bits to executable app




                              app.war
From bits to executable app




                              app.war
From bits to executable app




                              app.war
From bits to executable app



                startup

                              app.war


                 stop
Cloud Foundry Inner Shell and Up
     Developers                                   Users




                                 Routers

  CloudControllers    Stagers      App      App

                                                  HealthManager
           Services


                                Messaging
Cloud Foundry Inner Shell and Up
     Developers                                       Users




                                 Routers

  CloudControllers    Stagers      App        App

                                                      HealthManager
                                   Execution Agents
           Services
                                      (DEA) Pool

                                Messaging
From bits to running app



                startup

                           app.war


                 stop
From bits to running app



                startup

                           app.war


                 stop
From bits to running app



 A              startup
 g
 e                         app.war
 n
 t
                 stop
From bits to running app



 A              startup
 g
 e                         app.war
 n
 t
                 stop
Droplet Execution Agent (DEA)
•  Responsible for running all apps
•  Monitors apps
   –  Memory and disk quota
   –  Stage changes
•  Uniform view of all apps
   –  Runtime/framework differences sorted by the stager
•  Ensures app isolation
Application Isolation
              DEA Container API


                Host network



                Private network

                      App
                Private File System

                      Warden container
Cloud Foundry Inner Shell and Up
     Developers                                       Users




                                 Routers

  CloudControllers    Stagers      App        App

                                                      HealthManager
                                   Execution Agents
           Services
                                      (DEA) Pool

                                Messaging
Router
•  Responsible to route requests to
   –  User apps
   –  External-facing components
      •  Cloud Controller
      •  UAA
Application Routing




                      Messaging
Application Routing




                 Router




                      Messaging
Application Routing




                 Router

                           url è host:port
                                              DEA


                      Messaging
Application Routing
                      HTTP




                 Router

                             url è host:port
                                                DEA


                      Messaging
Application Routing
                       HTTP

                   Nginx
              (+Lua extension)


              Locator Services

                  Router

                              url è host:port
                                                 DEA


                      Messaging
Application Routing
                       HTTP

                   Nginx
              (+Lua extension)


              Locator Services

                  Router

                              url è host:port
                                                 DEA


                      Messaging
Cloud Foundry Inner Shell and Up
     Developers                                       Users




                                 Routers

  CloudControllers    Stagers      App        App

                                   Execution Agents
           Services
                                      (DEA) Pool

                                Messaging
Cloud Foundry Inner Shell and Up
     Developers                                       Users




                                 Routers

  CloudControllers    Stagers      App        App

                                                      HealthManager
                                   Execution Agents
           Services
                                      (DEA) Pool

                                Messaging
Health Manager
§  Expected state:
     •  Cloud Controller
§  Current state:
     •  DEAs

§  Current state ç Expected state
UAA
•  Centralized Identity Management
   –  Authenticates users from multiple sources
   –  Presents a single standard protocol for consumers
•  User Account Management
•  Client Application Registration
•  OpenID Connect and Oauth2 – delegated authorization
   –  Uses Spring Security
Oauth2 for Cloud Foundry


                   CF Portal
                   Client


                                       Cloud controller
  User
                                       Resource server
  Resource owner


                   UAA
                   Identity provider
Oauth2 for Cloud Foundry
                                            Who is this user
                                            What is he/she requesting
                                            Do I have the necessary authorization

         Accesses the portal   CF Portal
                               Client


                                                                  Cloud controller
  User
                                                                  Resource server
  Resource owner


                               UAA
                               Identity provider
Oauth2 for Cloud Foundry
                                                    Who is this user
                                                    What is he/she requesting
                                                    Do I have the necessary authorization

         Accesses the portal        CF Portal
                                    Client

                  Authenticate me
                         Assert - Portal can only
                                                                          Cloud controller
  User                   read my apps
                                                    Authenticates user    Resource server
  Resource owner                                    Issues authorization code



                                   UAA
                                   Identity provider
Oauth2 for Cloud Foundry
                                                    Who is this user
                                                    What is he/she requesting
                                                    Do I have the necessary authorization

         Accesses the portal        CF Portal
                                    Client
                    Redirect user along
                    with the authcode

                  Authenticate me
                         Assert - Portal can only
                                                                          Cloud controller
  User                   read my apps
                                                    Authenticates user    Resource server
  Resource owner                                    Issues authorization code



                                   UAA
                                   Identity provider
Oauth2 for Cloud Foundry
                                                      Who is this user
                                                      What is he/she requesting
                                                      Do I have the necessary authorization

         Accesses the portal        CF Portal
                                    Client
                    Redirect user along
                    with the authcode        Exchange authcode
                                             for an access token
                  Authenticate me
                         Assert - Portal can only
                                                                             Cloud controller
  User                   read my apps
                                                      Authenticates user     Resource server
  Resource owner                                      Issues authorization code
                                                      Issue access token scoped
                                                      to cloud_controller.apps.read
                                   UAA
                                   Identity provider
Oauth2 for Cloud Foundry
                                                      Who is this user
                                                      What is he/she requesting
                                                      Do I have the necessary authorization
                                                            Present token containing
         Accesses the portal        CF Portal               cloud_controller.apps.read
                                    Client
                    Redirect user along
                    with the authcode        Exchange authcode
                                             for an access token
                  Authenticate me
                         Assert - Portal can only
                                                                             Cloud controller
  User                   read my apps
                                                      Authenticates user     Resource server
  Resource owner                                      Issues authorization code
                                                      Issue access token scoped
                                                      to cloud_controller.apps.read
                                   UAA
                                   Identity provider
Cloud Foundry Inner Shell and Up
     Developers                                      Users




                                Routers

  CloudControllers   Stagers      App        App

                                                     HealthManager
                                  Execution Agents
                                     (DEA) Pool

                               Messaging
Cloud Foundry Inner Shell and Up
     Developers                                       Users




                                 Routers

  CloudControllers    Stagers      App        App

                                                      HealthManager
                                   Execution Agents
           Services
                                      (DEA) Pool

                                Messaging
Service Provisioning
•  Service Gateway
   –  Provisions and unprovisions services
   –  Advertise service availability to CloudController
•  Service Nodes
   –  Runs actual services
   –  Scale independently
Access to services info
VCAP_SERVICES: {!
    "postgresql-9.0": [{!
        "name": "env-postgresql",!
        "label": "postgresql-9.0",!
        "plan": "free",!
        "credentials": {!
            "name": "de24667f9344b4eeaad6b5a2326d52faa",!
            "host": "172.30.48.122",!
            "port": 5432,!
            "user": "u50ce600bba434bacbc99e034bb415644",!
            "password": "pf4dca5bd449d4732841f0c4ae3f299d0"!
        }!
    }]!
}!
Operating Cloud Foundry
     The Outer Shell
Production Grade Cloud Foundry Clusters
                                         cloudfoundry.com
§  500 – 5,000 VMs
§  40+ unique node types
§  75+ unique software packages
§  2x/week cf.com updates
§  24x7x365 non-stop operation
§  No-downtime deployments
§  Reliable, robust, repeatable
    deployments, updates,
    capacity adjustments
§  Small teams manage many        production, staging, stress, qa,
    instances                      dev
What is BOSH?                     github.com/cloudfoundry/bosh

                           Service Evolution Technology for
                 Operating Cloud Foundry in Production Environments

Automated Virtual Infrastructure
•  At Cloud Scale
•  Abstracted using a Cloud Provider Interface (CPI)
Software Deployment, Configuration and Updates
•  Optimized to Minimize Downtime
•  Support for multiple VM roles
Repeatable Process
•  Release Management with Versioning
Active Monitoring and Alerting
BOSH has been used to run CloudFoundry.com since launch
Cloud Foundry “BOSH” – Concepts



            "BOSH"
Cloud Foundry “BOSH” – Concepts
                Stemcell
                • Base OS
                • “BOSH” Agent




            "BOSH"
Cloud Foundry “BOSH” – Concepts
                Stemcell         Release
                • Base OS        • Name
                • “BOSH” Agent
                                  Jobs
                                  • Software Packages
                                  • Configuration Templates
                                  • Scripts
            "BOSH"               Software Packages
                                 • Externally developed s/w
                                 • Internally developed s/w
Cloud Foundry “BOSH” – Concepts
Deployment Manifest            Stemcell         Release
• Release name and version     • Base OS        • Name
• # VMs, params for each Job   • “BOSH” Agent
• Stemcells to use                               Jobs
                                                 • Software Packages
                                                 • Configuration Templates
                                                 • Scripts
                         "BOSH"                 Software Packages
                                                • Externally developed s/w
                                                • Internally developed s/w
Cloud Foundry “BOSH” – Concepts
Deployment Manifest            Stemcell         Release
• Release name and version     • Base OS        • Name
• # VMs, params for each Job   • “BOSH” Agent
• Stemcells to use                               Jobs
                                                 • Software Packages
                                                 • Configuration Templates
                                                 • Scripts
                         "BOSH"                 Software Packages
                                                • Externally developed s/w
                                                • Internally developed s/w
Cloud Foundry “BOSH” – Concepts
Deployment Manifest                Stemcell         Release
• Release name and version         • Base OS        • Name
• # VMs, params for each Job       • “BOSH” Agent
• Stemcells to use                                   Jobs
                                                     • Software Packages
                                                     • Configuration Templates
                                                     • Scripts
                         "BOSH"                     Software Packages
                                                    • Externally developed s/w
                                                    • Internally developed s/w

    Environment
                          Configuration
                       Software Packages
                               Stemcell
Rolling Update of a Stateless Component
 Incoming HTTP         Incoming HTTP                    Incoming HTTP
 Requests              Requests                         Requests

     Router                 Router                            Router

                                     Create                                Create

       Cloud           Cloud          Cloud             Cloud           Cloud
      Controller      Controller     Controller        Controller      Controller
         v1              v1             v2                v1              v2
   Message Bus            Message Bus                      Message Bus

Starting with v1   Deploy a v2 VM                 If it works, add more v2
VMs                (canary)                       VMs...
Example: Rolling Update of a Stateless
 Component
Incoming HTTP                          Incoming HTTP
Requests   Router / LB                 Requests LB
                                          Router /
                                                            End Result:
                                                            We upgraded from v1
  Destroy          Create
                                                            to v2 with no
                                                            downtime by
       Cloud              Cloud               Cloud         building new VMs and
      Controller         Controller          Controller
         v1                 v2                  v2
                                                            destroying old ones

            Message Bus                   Message Bus

   … while removing v1                … until all VMs are
   VMs…                               v2
Deployment
§  Parallel
§  Canaries
§  Eventual consistency
Under the Hood
§  Components
     •  Director
     •  Agent
     •  CLI
§  Stemcell
Code Change
VM Update
VM Update
Cloud Provider Interface
•  Abstracts infrastructure
   –  Stemcells
      •  VM template
   –  VMs
   –  Disks
   –  Networks
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
CPI Providers
Learn More. Stay Connected.
Twitter
•  http://twitter.com/cloudfoundry
•  http://twitter.com/ramnivas

Sign up online at cloudfoundry.com
•  Website: http://cloudfoundry.org
•  Blog: http://blog.cloudfoundry.com and http://blog.cloudfoundry.org
•  GitHub: http://github.com/cloudfoundry
•  YouTube: http://youtube.com/cloudfoundry
Questions?
Cloud Foundry Architecture
                                                                  Ramnivas Laddad
                                                                    @ramnivas




© 2012 SpringOne 2GX. All rights reserved. Do not distribute without permission.

More Related Content

What's hot

Cloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopCloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopManuel Garcia
 
OS + CF Austin meetup
OS + CF Austin meetupOS + CF Austin meetup
OS + CF Austin meetupragss
 
Cloud foundry Docker Openstack - Leading Open Source Triumvirate
Cloud foundry Docker Openstack - Leading Open Source TriumvirateCloud foundry Docker Openstack - Leading Open Source Triumvirate
Cloud foundry Docker Openstack - Leading Open Source TriumvirateAnimesh Singh
 
Cloud Foundry Diego, Lattice, Docker and more
Cloud Foundry Diego, Lattice, Docker and moreCloud Foundry Diego, Lattice, Docker and more
Cloud Foundry Diego, Lattice, Docker and morecornelia davis
 
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...Animesh Singh
 
Multi-Cloud Micro-Services with CloudFoundry
Multi-Cloud Micro-Services with CloudFoundryMulti-Cloud Micro-Services with CloudFoundry
Multi-Cloud Micro-Services with CloudFoundrygeekclub888
 
Introduction to Platform-as-a-Service and Cloud Foundry
Introduction to Platform-as-a-Service and Cloud FoundryIntroduction to Platform-as-a-Service and Cloud Foundry
Introduction to Platform-as-a-Service and Cloud FoundryManuel Silveyra
 
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipCloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipMatt Stine
 
Cloud Foundry - An Open Innovation Platform
Cloud Foundry - An Open Innovation PlatformCloud Foundry - An Open Innovation Platform
Cloud Foundry - An Open Innovation PlatformAll Things Open
 
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of ChoicePaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of ChoiceIsaac Christoffersen
 
Cloud Foundry a Developer's Perspective
Cloud Foundry a Developer's PerspectiveCloud Foundry a Developer's Perspective
Cloud Foundry a Developer's PerspectiveDave McCrory
 
Part 2: Architecture and the Operator Experience (Pivotal Cloud Platform Road...
Part 2: Architecture and the Operator Experience (Pivotal Cloud Platform Road...Part 2: Architecture and the Operator Experience (Pivotal Cloud Platform Road...
Part 2: Architecture and the Operator Experience (Pivotal Cloud Platform Road...VMware Tanzu
 
Delivering Developer Tools at Scale
Delivering Developer Tools at ScaleDelivering Developer Tools at Scale
Delivering Developer Tools at ScaleOracle Developers
 
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
 
Oracle Code Keynote with Thomas Kurian
Oracle Code Keynote with Thomas KurianOracle Code Keynote with Thomas Kurian
Oracle Code Keynote with Thomas KurianOracle Developers
 

What's hot (20)

Cloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopCloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment Workshop
 
OS + CF Austin meetup
OS + CF Austin meetupOS + CF Austin meetup
OS + CF Austin meetup
 
Cloud foundry Docker Openstack - Leading Open Source Triumvirate
Cloud foundry Docker Openstack - Leading Open Source TriumvirateCloud foundry Docker Openstack - Leading Open Source Triumvirate
Cloud foundry Docker Openstack - Leading Open Source Triumvirate
 
Cloud Foundry Diego, Lattice, Docker and more
Cloud Foundry Diego, Lattice, Docker and moreCloud Foundry Diego, Lattice, Docker and more
Cloud Foundry Diego, Lattice, Docker and more
 
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
 
Multi-Cloud Micro-Services with CloudFoundry
Multi-Cloud Micro-Services with CloudFoundryMulti-Cloud Micro-Services with CloudFoundry
Multi-Cloud Micro-Services with CloudFoundry
 
Introduction to Platform-as-a-Service and Cloud Foundry
Introduction to Platform-as-a-Service and Cloud FoundryIntroduction to Platform-as-a-Service and Cloud Foundry
Introduction to Platform-as-a-Service and Cloud Foundry
 
Cloud foundry
Cloud foundryCloud foundry
Cloud foundry
 
Azure Service Fabric Overview
Azure Service Fabric OverviewAzure Service Fabric Overview
Azure Service Fabric Overview
 
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipCloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
 
Cloud Foundry - An Open Innovation Platform
Cloud Foundry - An Open Innovation PlatformCloud Foundry - An Open Innovation Platform
Cloud Foundry - An Open Innovation Platform
 
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of ChoicePaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
 
Cloud Foundry a Developer's Perspective
Cloud Foundry a Developer's PerspectiveCloud Foundry a Developer's Perspective
Cloud Foundry a Developer's Perspective
 
Part 2: Architecture and the Operator Experience (Pivotal Cloud Platform Road...
Part 2: Architecture and the Operator Experience (Pivotal Cloud Platform Road...Part 2: Architecture and the Operator Experience (Pivotal Cloud Platform Road...
Part 2: Architecture and the Operator Experience (Pivotal Cloud Platform Road...
 
Spring Into the Cloud
Spring Into the CloudSpring Into the Cloud
Spring Into the Cloud
 
Cloud Native Application Development
Cloud Native Application DevelopmentCloud Native Application Development
Cloud Native Application Development
 
Delivering Developer Tools at Scale
Delivering Developer Tools at ScaleDelivering Developer Tools at Scale
Delivering Developer Tools at Scale
 
Watson on bluemix
Watson on bluemixWatson on bluemix
Watson on bluemix
 
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)
 
Oracle Code Keynote with Thomas Kurian
Oracle Code Keynote with Thomas KurianOracle Code Keynote with Thomas Kurian
Oracle Code Keynote with Thomas Kurian
 

Similar to Cloudfoundry architecture

Cloud Foundry Open Tour Keynote
Cloud Foundry Open Tour KeynoteCloud Foundry Open Tour Keynote
Cloud Foundry Open Tour KeynoteRamnivasLaddad
 
Java one brazil_keynote_dochez
Java one brazil_keynote_dochezJava one brazil_keynote_dochez
Java one brazil_keynote_dochezJerome Dochez
 
Paving the Way to IT-as-a-Service
Paving the Way to IT-as-a-ServicePaving the Way to IT-as-a-Service
Paving the Way to IT-as-a-Servicebuildacloud
 
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012Alexandre Morgaut
 
SPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC INDIA
 
Comm Gate Corporate Profile V0.4
Comm Gate Corporate Profile V0.4Comm Gate Corporate Profile V0.4
Comm Gate Corporate Profile V0.4Abhik Biswas
 
MongoDB for Java Devs with Spring Data - MongoPhilly 2011
MongoDB for Java Devs with Spring Data - MongoPhilly 2011MongoDB for Java Devs with Spring Data - MongoPhilly 2011
MongoDB for Java Devs with Spring Data - MongoPhilly 2011MongoDB
 
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012Alexandre Morgaut
 
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
The Java EE 7 Platform: Developing for the Cloud  (FISL 12)The Java EE 7 Platform: Developing for the Cloud  (FISL 12)
The Java EE 7 Platform: Developing for the Cloud (FISL 12)Arun Gupta
 
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the CloudTDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the CloudArun Gupta
 
Migrating to Riak at Shareaholic
Migrating to Riak at ShareaholicMigrating to Riak at Shareaholic
Migrating to Riak at ShareaholicShareaholic
 
Riak at shareaholic
Riak at shareaholicRiak at shareaholic
Riak at shareaholicfreerobby
 
Wakanda - apps.berlin.js - 2012-11-29
Wakanda - apps.berlin.js - 2012-11-29Wakanda - apps.berlin.js - 2012-11-29
Wakanda - apps.berlin.js - 2012-11-29Alexandre Morgaut
 
Eb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management EnEb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management EnValtech
 
DevOps як System Administration 2.0
DevOps як System Administration 2.0DevOps як System Administration 2.0
DevOps як System Administration 2.0SoftServe
 
When Two Worlds Collide: Java and Ruby in the Enterprise
When Two Worlds Collide: Java and Ruby in the EnterpriseWhen Two Worlds Collide: Java and Ruby in the Enterprise
When Two Worlds Collide: Java and Ruby in the Enterprisebenbrowning
 
RunningQuantumOnQuantumAtNicira.pdf
RunningQuantumOnQuantumAtNicira.pdfRunningQuantumOnQuantumAtNicira.pdf
RunningQuantumOnQuantumAtNicira.pdfOpenStack Foundation
 

Similar to Cloudfoundry architecture (20)

Cloud Foundry Open Tour Keynote
Cloud Foundry Open Tour KeynoteCloud Foundry Open Tour Keynote
Cloud Foundry Open Tour Keynote
 
Java one brazil_keynote_dochez
Java one brazil_keynote_dochezJava one brazil_keynote_dochez
Java one brazil_keynote_dochez
 
Paving the Way to IT-as-a-Service
Paving the Way to IT-as-a-ServicePaving the Way to IT-as-a-Service
Paving the Way to IT-as-a-Service
 
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
 
SPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC INDIA Java Case Study
SPEC INDIA Java Case Study
 
Comm Gate Corporate Profile V0.4
Comm Gate Corporate Profile V0.4Comm Gate Corporate Profile V0.4
Comm Gate Corporate Profile V0.4
 
MongoDB for Java Devs with Spring Data - MongoPhilly 2011
MongoDB for Java Devs with Spring Data - MongoPhilly 2011MongoDB for Java Devs with Spring Data - MongoPhilly 2011
MongoDB for Java Devs with Spring Data - MongoPhilly 2011
 
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
 
Sail Fin Webinar Overview
Sail Fin Webinar OverviewSail Fin Webinar Overview
Sail Fin Webinar Overview
 
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
The Java EE 7 Platform: Developing for the Cloud  (FISL 12)The Java EE 7 Platform: Developing for the Cloud  (FISL 12)
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
 
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the CloudTDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
 
Netflix and Open Source
Netflix and Open SourceNetflix and Open Source
Netflix and Open Source
 
Migrating to Riak at Shareaholic
Migrating to Riak at ShareaholicMigrating to Riak at Shareaholic
Migrating to Riak at Shareaholic
 
Riak at shareaholic
Riak at shareaholicRiak at shareaholic
Riak at shareaholic
 
Wakanda - apps.berlin.js - 2012-11-29
Wakanda - apps.berlin.js - 2012-11-29Wakanda - apps.berlin.js - 2012-11-29
Wakanda - apps.berlin.js - 2012-11-29
 
Introducing spring
Introducing springIntroducing spring
Introducing spring
 
Eb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management EnEb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management En
 
DevOps як System Administration 2.0
DevOps як System Administration 2.0DevOps як System Administration 2.0
DevOps як System Administration 2.0
 
When Two Worlds Collide: Java and Ruby in the Enterprise
When Two Worlds Collide: Java and Ruby in the EnterpriseWhen Two Worlds Collide: Java and Ruby in the Enterprise
When Two Worlds Collide: Java and Ruby in the Enterprise
 
RunningQuantumOnQuantumAtNicira.pdf
RunningQuantumOnQuantumAtNicira.pdfRunningQuantumOnQuantumAtNicira.pdf
RunningQuantumOnQuantumAtNicira.pdf
 

Recently uploaded

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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
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
 
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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
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
 
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
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Recently uploaded (20)

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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
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
 
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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
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
 
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
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 

Cloudfoundry architecture

  • 1. Cloud Foundry Architecture Ramnivas Laddad @ramnivas © 2012 SpringOne 2GX. All rights reserved. Do not distribute without permission.
  • 2. @ramnivas •  Spring framework committer •  Cloud Foundry committer •  Main interests –  Cloud computing –  Aspect-oriented programming –  Scala and functional programming •  Author of books and articles –  AspectJ in Action (1st and 2nd edition) •  Speaker at many professional conferences –  JavaOne, JavaPolis, SpringOne, Software Development, No Fluff Just Stuff, EclipseCon, O’Reilly OSCON etc. •  Active involvement in AspectJ, Spring, and Cloud Foundry since their early form
  • 3. Technologies “Я” Us Closure Java AMQP HTML5 Akka Mongo Spring Scala Redis JSF Grails Hibernate node.js RabbitMQ JDBC Lift Rails JMS Ruby Hadoop Sinatra Batch Job Django JTA Python MySQL Web Services JPA Caching LDAP Postgres Scripting Testing Security Neo4j REST
  • 4. Technologies “Я” Us Closure Java AMQP HTML5 Akka Mongo Spring Scala Redis JSF Grails Hibernate node.js RabbitMQ JDBC Lift Rails JMS Ruby Hadoop Sinatra Batch Job Django JTA Python MySQL Web Services JPA Caching LDAP Postgres Scripting Testing Security Neo4j REST
  • 5. Technologies “Я” Us Access logs Network Routing Hardware failures DNS Storage Load balancing Auditing Rolling Updates User management Security DoS Backups DBA OS Monitoring Patches
  • 6. Technologies “Я” Us Access logs Network Routing Hardware failures DNS Storage Load balancing Auditing Rolling Updates User management Security DoS Backups DBA OS Monitoring Patches
  • 7. Facets of complexity: Product §  More functionality §  Time to market pressure §  Complex integration §  Higher stake in quality
  • 8. Facets of complexity: Development §  Sound architecture: future proofing without overdoing §  Unit and integration tests §  Responding to changing business needs §  Confusing technology landscape
  • 9. Facets of complexity: Deployment and operation §  Choosing the right hardware, operating system, web server §  Monitoring applications §  Responding to scalability needs §  Dealing with hardware- and system-level failures §  Upgrading without substantial down time
  • 10. Inherent vs. Apparent Complexity Implementation
  • 11. Inherent vs. Apparent Complexity Implementation Functional logic
  • 12. Inherent vs. Apparent Complexity Implementation Functional logic Inherent complexity
  • 13. Inherent vs. Apparent Complexity Implementation overhead Implementation Functional logic Inherent complexity
  • 14. Inherent vs. Apparent Complexity Implementation overhead Apparent Implementation complexity Functional logic Inherent complexity
  • 15. Inherent vs. Apparent Complexity What can we do about this? Implementation overhead Apparent Implementation complexity Functional logic Inherent complexity
  • 16. What can we do? ?
  • 17. Three layers of Cloud Computing SaaS Software as a Service PaaS Platform as a Service IaaS Infrastructure as a Service
  • 18. Cloud Foundry open PaaS - Choice of clouds Data Services Private     Clouds     Msg Services Public   Clouds   Other Micro   Services Clouds  
  • 19. Cloud Foundry open PaaS - Choice of clouds Data Services Private     Clouds     Msg Services Public   Clouds   Other Micro   Services Clouds   Apache2 license
  • 20. Cloud Foundry open PaaS - Choice of clouds Data Services Private     Clouds     Partners   Msg Services Public   Clouds   Other Micro   Services Clouds   Apache2 license
  • 22. Architectural Goals •  No single point of failure •  Distributed state •  Self healing •  Horizontally scalable
  • 23. Architectural Principles •  Loose coupling •  Event-driven •  Asynchronous •  Non-blocking •  Idempotent •  Eventually consistent •  Language-independent communication
  • 24. Cloud Foundry Layers Clients Inner Shell Outer Shell Infrastructure as a Service Hardware (CPU, Memory, Storage, Network)
  • 25. Cloud Foundry Core Components The Inner Shell
  • 26. Cloud Foundry Inner Shell and Up Developers Users Routers CloudControllers Stagers App App HealthManager Execution Agents Services (DEA) Pool Messaging
  • 27. Zooming in… App meta data cloud stager health controller manager cc - db staging jobs package uaa - db cache dea dea redis dea dea blobstore dea uaa - AuthN dea staging logs © 2012 VMware, Inc. All rights reserved
  • 28. Design Principles •  Dynamically discoverable components •  No inter-component dependencies –  Launch in any order –  Scale up and down independently •  Monitor using HTTP end points
  • 29.
  • 30. Cloud Foundry Inner Shell and Up Developers Users Routers CloudControllers Stagers App App HealthManager Execution Agents Services (DEA) Pool Messaging
  • 31. Cloud Controller •  Interface with the clients –  VMC –  STS –  Portal •  Provides REST interface to domain objects –  Apps –  Services –  Orgs –  Spaces
  • 33.
  • 34. Cloud Foundry Inner Shell and Up Developers Users Routers CloudControllers Stagers App App HealthManager Execution Agents Services (DEA) Pool Messaging
  • 35. Stager •  Responsible for morphing user app into executable •  Pluggable architecture –  Each plugin understands a framework or a runtime •  Allow the DEA to view applications uniformly
  • 36. Stager’s role …………… …………… …………… Stager …………… …………… …………… …………… …………… …………… …………… …………… ………….. :::::::::: Spring Play Rails …
  • 37. From bits to executable app app.war
  • 38. From bits to executable app app.war
  • 39. From bits to executable app app.war
  • 40. From bits to executable app startup app.war stop
  • 41.
  • 42. Cloud Foundry Inner Shell and Up Developers Users Routers CloudControllers Stagers App App HealthManager Services Messaging
  • 43. Cloud Foundry Inner Shell and Up Developers Users Routers CloudControllers Stagers App App HealthManager Execution Agents Services (DEA) Pool Messaging
  • 44. From bits to running app startup app.war stop
  • 45. From bits to running app startup app.war stop
  • 46. From bits to running app A startup g e app.war n t stop
  • 47. From bits to running app A startup g e app.war n t stop
  • 48. Droplet Execution Agent (DEA) •  Responsible for running all apps •  Monitors apps –  Memory and disk quota –  Stage changes •  Uniform view of all apps –  Runtime/framework differences sorted by the stager •  Ensures app isolation
  • 49. Application Isolation DEA Container API Host network Private network App Private File System Warden container
  • 50.
  • 51. Cloud Foundry Inner Shell and Up Developers Users Routers CloudControllers Stagers App App HealthManager Execution Agents Services (DEA) Pool Messaging
  • 52. Router •  Responsible to route requests to –  User apps –  External-facing components •  Cloud Controller •  UAA
  • 53. Application Routing Messaging
  • 54. Application Routing Router Messaging
  • 55. Application Routing Router url è host:port DEA Messaging
  • 56. Application Routing HTTP Router url è host:port DEA Messaging
  • 57. Application Routing HTTP Nginx (+Lua extension) Locator Services Router url è host:port DEA Messaging
  • 58. Application Routing HTTP Nginx (+Lua extension) Locator Services Router url è host:port DEA Messaging
  • 59.
  • 60. Cloud Foundry Inner Shell and Up Developers Users Routers CloudControllers Stagers App App Execution Agents Services (DEA) Pool Messaging
  • 61. Cloud Foundry Inner Shell and Up Developers Users Routers CloudControllers Stagers App App HealthManager Execution Agents Services (DEA) Pool Messaging
  • 62. Health Manager §  Expected state: •  Cloud Controller §  Current state: •  DEAs §  Current state ç Expected state
  • 63.
  • 64. UAA •  Centralized Identity Management –  Authenticates users from multiple sources –  Presents a single standard protocol for consumers •  User Account Management •  Client Application Registration •  OpenID Connect and Oauth2 – delegated authorization –  Uses Spring Security
  • 65. Oauth2 for Cloud Foundry CF Portal Client Cloud controller User Resource server Resource owner UAA Identity provider
  • 66. Oauth2 for Cloud Foundry Who is this user What is he/she requesting Do I have the necessary authorization Accesses the portal CF Portal Client Cloud controller User Resource server Resource owner UAA Identity provider
  • 67. Oauth2 for Cloud Foundry Who is this user What is he/she requesting Do I have the necessary authorization Accesses the portal CF Portal Client Authenticate me Assert - Portal can only Cloud controller User read my apps Authenticates user Resource server Resource owner Issues authorization code UAA Identity provider
  • 68. Oauth2 for Cloud Foundry Who is this user What is he/she requesting Do I have the necessary authorization Accesses the portal CF Portal Client Redirect user along with the authcode Authenticate me Assert - Portal can only Cloud controller User read my apps Authenticates user Resource server Resource owner Issues authorization code UAA Identity provider
  • 69. Oauth2 for Cloud Foundry Who is this user What is he/she requesting Do I have the necessary authorization Accesses the portal CF Portal Client Redirect user along with the authcode Exchange authcode for an access token Authenticate me Assert - Portal can only Cloud controller User read my apps Authenticates user Resource server Resource owner Issues authorization code Issue access token scoped to cloud_controller.apps.read UAA Identity provider
  • 70. Oauth2 for Cloud Foundry Who is this user What is he/she requesting Do I have the necessary authorization Present token containing Accesses the portal CF Portal cloud_controller.apps.read Client Redirect user along with the authcode Exchange authcode for an access token Authenticate me Assert - Portal can only Cloud controller User read my apps Authenticates user Resource server Resource owner Issues authorization code Issue access token scoped to cloud_controller.apps.read UAA Identity provider
  • 71.
  • 72. Cloud Foundry Inner Shell and Up Developers Users Routers CloudControllers Stagers App App HealthManager Execution Agents (DEA) Pool Messaging
  • 73. Cloud Foundry Inner Shell and Up Developers Users Routers CloudControllers Stagers App App HealthManager Execution Agents Services (DEA) Pool Messaging
  • 74. Service Provisioning •  Service Gateway –  Provisions and unprovisions services –  Advertise service availability to CloudController •  Service Nodes –  Runs actual services –  Scale independently
  • 75. Access to services info VCAP_SERVICES: {! "postgresql-9.0": [{! "name": "env-postgresql",! "label": "postgresql-9.0",! "plan": "free",! "credentials": {! "name": "de24667f9344b4eeaad6b5a2326d52faa",! "host": "172.30.48.122",! "port": 5432,! "user": "u50ce600bba434bacbc99e034bb415644",! "password": "pf4dca5bd449d4732841f0c4ae3f299d0"! }! }]! }!
  • 76. Operating Cloud Foundry The Outer Shell
  • 77. Production Grade Cloud Foundry Clusters cloudfoundry.com §  500 – 5,000 VMs §  40+ unique node types §  75+ unique software packages §  2x/week cf.com updates §  24x7x365 non-stop operation §  No-downtime deployments §  Reliable, robust, repeatable deployments, updates, capacity adjustments §  Small teams manage many production, staging, stress, qa, instances dev
  • 78. What is BOSH? github.com/cloudfoundry/bosh Service Evolution Technology for Operating Cloud Foundry in Production Environments Automated Virtual Infrastructure •  At Cloud Scale •  Abstracted using a Cloud Provider Interface (CPI) Software Deployment, Configuration and Updates •  Optimized to Minimize Downtime •  Support for multiple VM roles Repeatable Process •  Release Management with Versioning Active Monitoring and Alerting BOSH has been used to run CloudFoundry.com since launch
  • 79. Cloud Foundry “BOSH” – Concepts "BOSH"
  • 80. Cloud Foundry “BOSH” – Concepts Stemcell • Base OS • “BOSH” Agent "BOSH"
  • 81. Cloud Foundry “BOSH” – Concepts Stemcell Release • Base OS • Name • “BOSH” Agent Jobs • Software Packages • Configuration Templates • Scripts "BOSH" Software Packages • Externally developed s/w • Internally developed s/w
  • 82. Cloud Foundry “BOSH” – Concepts Deployment Manifest Stemcell Release • Release name and version • Base OS • Name • # VMs, params for each Job • “BOSH” Agent • Stemcells to use Jobs • Software Packages • Configuration Templates • Scripts "BOSH" Software Packages • Externally developed s/w • Internally developed s/w
  • 83. Cloud Foundry “BOSH” – Concepts Deployment Manifest Stemcell Release • Release name and version • Base OS • Name • # VMs, params for each Job • “BOSH” Agent • Stemcells to use Jobs • Software Packages • Configuration Templates • Scripts "BOSH" Software Packages • Externally developed s/w • Internally developed s/w
  • 84. Cloud Foundry “BOSH” – Concepts Deployment Manifest Stemcell Release • Release name and version • Base OS • Name • # VMs, params for each Job • “BOSH” Agent • Stemcells to use Jobs • Software Packages • Configuration Templates • Scripts "BOSH" Software Packages • Externally developed s/w • Internally developed s/w Environment Configuration Software Packages Stemcell
  • 85. Rolling Update of a Stateless Component Incoming HTTP Incoming HTTP Incoming HTTP Requests Requests Requests Router Router Router Create Create Cloud Cloud Cloud Cloud Cloud Controller Controller Controller Controller Controller v1 v1 v2 v1 v2 Message Bus Message Bus Message Bus Starting with v1 Deploy a v2 VM If it works, add more v2 VMs (canary) VMs...
  • 86. Example: Rolling Update of a Stateless Component Incoming HTTP Incoming HTTP Requests Router / LB Requests LB Router / End Result: We upgraded from v1 Destroy Create to v2 with no downtime by Cloud Cloud Cloud building new VMs and Controller Controller Controller v1 v2 v2 destroying old ones Message Bus Message Bus … while removing v1 … until all VMs are VMs… v2
  • 88. Under the Hood §  Components •  Director •  Agent •  CLI §  Stemcell
  • 92. Cloud Provider Interface •  Abstracts infrastructure –  Stemcells •  VM template –  VMs –  Disks –  Networks
  • 93. 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
  • 95. Learn More. Stay Connected. Twitter •  http://twitter.com/cloudfoundry •  http://twitter.com/ramnivas Sign up online at cloudfoundry.com •  Website: http://cloudfoundry.org •  Blog: http://blog.cloudfoundry.com and http://blog.cloudfoundry.org •  GitHub: http://github.com/cloudfoundry •  YouTube: http://youtube.com/cloudfoundry
  • 97. Cloud Foundry Architecture Ramnivas Laddad @ramnivas © 2012 SpringOne 2GX. All rights reserved. Do not distribute without permission.