Cloud Foundry
Under the skin of VMware’s Open Cloud Platform
First, two apologies...


@russmiles | russ.miles@opencredo.com
OSJ Ed. 1




@russmiles | russ.miles@opencredo.com
PAAS and Lock-in




@russmiles | russ.miles@opencredo.com
Times have changed
@russmiles | russ.miles@opencredo.com
A Short History


@russmiles | russ.miles@opencredo.com
CloudFoundry 1.0




@russmiles | russ.miles@opencredo.com
Running on AWS




@russmiles | russ.miles@opencredo.com
Java, WAR-Based Apps




@russmiles | russ.miles@opencredo.com
Common, Cost-
           Sensitive Topology




@russmiles | russ.miles@opencredo.com
Some Downsides...


@russmiles | russ.miles@opencredo.com
Management &
    Monitoring was minimal




@russmiles | russ.miles@opencredo.com
Expensive Accidents
             Possible...




@russmiles | russ.miles@opencredo.com
But it worked!
@russmiles | russ.miles@opencredo.com
Or did it...


@russmiles | russ.miles@opencredo.com
JVM-only!?




@russmiles | russ.miles@opencredo.com
MySQL Only!?




@russmiles | russ.miles@opencredo.com
AWS Only?!




@russmiles | russ.miles@opencredo.com
Private/Hybrid?




@russmiles | russ.miles@opencredo.com
Open Source?




@russmiles | russ.miles@opencredo.com
Thought we were
              getting...




@russmiles | russ.miles@opencredo.com
Started to look like...




@russmiles | russ.miles@opencredo.com
Why were we
                bothering?
@russmiles | russ.miles@opencredo.com
The Provisioning Story


              @cread              @tastapod

       http://www.infoq.com/presentations/Agile-
            Operations-Optimizing-Business

@russmiles | russ.miles@opencredo.com
Continuous Delivery

      “We’re entering a world
        where continuous
        delivery will be the
              norm”




@russmiles | russ.miles@opencredo.com
Enabling DevOps
               flexibility




@russmiles | russ.miles@opencredo.com
And for what?




@russmiles | russ.miles@opencredo.com
V1 (Hope)          V1 (Reality)



                                        V2?




            “Cloud Foundry”
             is re-imagined
@russmiles | russ.miles@opencredo.com
CloudFoundry 2.0




@russmiles | russ.miles@opencredo.com
A Platform




@russmiles | russ.miles@opencredo.com
Open PAAS




@russmiles | russ.miles@opencredo.com
The Currency is the
               ‘App’




@russmiles | russ.miles@opencredo.com
Cloud Developer Bill of
            Rights
                http://www.developerrights.org



@russmiles | russ.miles@opencredo.com
Cloud Developer Bill of
            Rights


@russmiles | russ.miles@opencredo.com
Your Rights
      •   The Right to Code

      •   The Right to Build Applications

      •   The Right to Cloud Portability

      •   The Right to a Choice of Frameworks

      •   The Right to a Choice of Application Services

      •   The Right to Platform Transparency

      •   The Right to Emigrate

      •   The Right of Ownership                  The Right to Open Source!
      •   The Right to be Left Alone



@russmiles | russ.miles@opencredo.com
Pragmatic Productivity:
       Productivity comes from the
      best runtime/language/libraries/
         services for the situation
                Including Skills & Context!


@russmiles | russ.miles@opencredo.com
Time for some action
@russmiles | russ.miles@opencredo.com
Demos
         Using the Public Face of Cloud Foundry




@russmiles | russ.miles@opencredo.com
Demos
                  Spring Apps


@russmiles | russ.miles@opencredo.com
Demos
         Ruby (& Rails) Apps
              VMC Command-Line in Action



@russmiles | russ.miles@opencredo.com
Demos
                Node.js Apps


@russmiles | russ.miles@opencredo.com
What’s under the skin?
@russmiles | russ.miles@opencredo.com
Cloud
     Foundry
   Architecture


@russmiles | russ.miles@opencredo.com
VCAP




@russmiles | russ.miles@opencredo.com
VCAP




                           NATS




@russmiles | russ.miles@opencredo.com
VCAP
         Routers &
       Load Balancing



                           NATS




@russmiles | russ.miles@opencredo.com
VCAP
         Routers &                       Cloud
       Load Balancing
                                        Controller


                           NATS




@russmiles | russ.miles@opencredo.com
VCAP
         Routers &                       Cloud
       Load Balancing
                                        Controller


                           NATS



          DEA


@russmiles | russ.miles@opencredo.com
VCAP
         Routers &                       Cloud
       Load Balancing
                                        Controller


                           NATS
              Droplet




          DEA


@russmiles | russ.miles@opencredo.com
VCAP
         Routers &                       Cloud
       Load Balancing
                                        Controller


                           NATS
              Droplet



                                         Health
          DEA                            Manager


@russmiles | russ.miles@opencredo.com
VCAP
         Routers &                       Cloud
       Load Balancing
                                        Controller


                           NATS            Services
              Droplet



                                         Health
          DEA                            Manager


@russmiles | russ.miles@opencredo.com
Architecture In Action


@russmiles | russ.miles@opencredo.com
“vmc target” In Action


@russmiles | russ.miles@opencredo.com
> vmc target
                          VCAP
        Routers &                        Cloud
      Load Balancing
                                        Controller


                           NATS            Services
              Droplet



                                         Health
         DEA                             Manager

@russmiles | russ.miles@opencredo.com
> vmc target
get http://api.cloudfoundry.com/info
                                       VCAP
             Routers &                         Cloud
           Load Balancing
                                              Controller


                                       NATS      Services
                     Droplet



                                               Health
               DEA                             Manager

 @russmiles | russ.miles@opencredo.com
> vmc target
                          VCAP
        Routers &                        Cloud
      Load Balancing
                                        Controller


                           NATS            Services
              Droplet



                                         Health
         DEA                             Manager

@russmiles | russ.miles@opencredo.com
> vmc target
                          VCAP
        Routers &                        Cloud
      Load Balancing
                                        Controller


                           NATS            Services
              Droplet



                                         Health
         DEA                             Manager

@russmiles | russ.miles@opencredo.com
> vmc target
  JSON                    VCAP
        Routers &                        Cloud
      Load Balancing
                                        Controller


                           NATS            Services
              Droplet



                                         Health
         DEA                             Manager

@russmiles | russ.miles@opencredo.com
“vmc login” In Action


@russmiles | russ.miles@opencredo.com
> vmc login
                          VCAP
        Routers &                        Cloud
      Load Balancing
                                        Controller


                           NATS            Services
              Droplet



                                         Health
         DEA                             Manager

@russmiles | russ.miles@opencredo.com
> vmc login
                          VCAP
        Routers &                        Cloud
      Load Balancing
                                        Controller


                           NATS            Services
              Droplet



                                         Health
         DEA                             Manager

@russmiles | russ.miles@opencredo.com
> vmc login
                          VCAP
        Routers &                        Cloud
      Load Balancing
                                        Controller


                           NATS            Services
              Droplet



                                         Health
         DEA                             Manager

@russmiles | russ.miles@opencredo.com
> vmc login
                          VCAP
        Routers &           Security Token    Cloud
      Load Balancing        ~2 weeks lease   Controller


                           NATS                 Services
              Droplet



                                              Health
         DEA                                  Manager

@russmiles | russ.miles@opencredo.com
> vmc login
                          VCAP
        Routers &                        Cloud
      Load Balancing
                                        Controller


                           NATS            Services
              Droplet



                                         Health
         DEA                             Manager

@russmiles | russ.miles@opencredo.com
> vmc login
  Token Cached
                           VCAP
        Routers &                        Cloud
      Load Balancing
                                        Controller


                           NATS            Services
                 Droplet



                                         Health
         DEA                             Manager

@russmiles | russ.miles@opencredo.com
“vmc push” In Action


@russmiles | russ.miles@opencredo.com
> vmc push <appname>
                          VCAP
        Routers &                        Cloud
      Load Balancing
                                        Controller


                           NATS            Services


                                         Health
         DEA                             Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
 Security Token
                          VCAP
          Routers &                      Cloud
        Load Balancing
                                        Controller


                           NATS            Services


                                         Health
            DEA                          Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
                          VCAP
        Routers &                        Cloud
      Load Balancing
                                        Controller


                           NATS            Services


                                         Health
         DEA                             Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
                          VCAP
        Routers &                             Cloud
      Load Balancing       Validates Token
                                             Controller


                           NATS                 Services


                                              Health
         DEA                                  Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
                          VCAP
        Routers &                        Cloud
      Load Balancing
                                        Controller


                           NATS            Services


                                         Health
         DEA                             Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
 Does Diffs
                          VCAP
          Routers &                      Cloud
        Load Balancing
                                        Controller


                           NATS            Services


                                         Health
              DEA                        Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
Compressed Package of Changes
                                VCAP
           Routers &                      Cloud
         Load Balancing
                                         Controller


                                NATS        Services


                                          Health
            DEA                           Manager

 @russmiles | russ.miles@opencredo.com
> vmc push <appname>
                          VCAP
        Routers &                           Cloud
                           App Package
      Load Balancing       Diff Manifest   Controller
                          Security Token



                           NATS               Services


                                            Health
         DEA                                Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
                          VCAP
        Routers &             Validates         Cloud
      Load Balancing       Uncompresses
                          Adds Missing Files   Controller


                           NATS                   Services


                                                Health
         DEA                                    Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
                           VCAP
        Routers &       “Gold App Package”     Cloud
      Load Balancing      Recompressed
                        Saved to shared dir   Controller


                           NATS                  Services


                                               Health
         DEA                                   Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
“Push Status: OK”
                          VCAP
          Routers &                      Cloud
        Load Balancing
                                        Controller


                           NATS            Services


                                         Health
            DEA                          Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
 Start App
   & poll
                          VCAP
         Routers &                       Cloud
       Load Balancing
                                        Controller


                           NATS            Services


                                         Health
             DEA                         Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
                           VCAP
        Routers &           Decide on
                        necessary runtimes,    Cloud
      Load Balancing     frameworks and       Controller
                             services



                           NATS                  Services


                                               Health
         DEA                                   Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
                           VCAP
        Routers &       App Package Staged    Cloud
      Load Balancing       Compressed
                            Versioned        Controller


                           NATS                 Services


                                              Health
         DEA                                  Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
“Staging Application: OK”
                            VCAP
            Routers &                    Cloud
          Load Balancing
                                        Controller


                            NATS           Services


                                         Health
             DEA                         Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
                          VCAP
        Routers &                          Cloud
      Load Balancing
                                          Controller


                           NATS              Services

                          Broadcast app
                          requirements
                                           Health
         DEA                               Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
                             VCAP
        Routers &                        Cloud
      Load Balancing
                                        Controller


                             NATS          Services


                                         Health
                        Meets App
         DEA           Requirements?     Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
                             VCAP
        Routers &                           Cloud
      Load Balancing
                                           Controller


                             NATS             Services

                       “I can start it!”
                                            Health
         DEA                                Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
                           VCAP
        Routers &                         Cloud
      Load Balancing
                                         Controller


                           NATS             Services

                       Staged App Info
                         Fingerprint
                       Where to get it
                                          Health
         DEA                              Manager
                           Droplet


@russmiles | russ.miles@opencredo.com
> vmc push <appname>
                             VCAP
        Routers &                           Cloud
      Load Balancing
                                           Controller


                             NATS             Services

             Droplet

                                            Health
                        Extract Package
         DEA           Boots environment    Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
                            VCAP
        Routers &                        Cloud
      Load Balancing
                                        Controller


                             NATS          Services

             Droplet

                                         Health
         DEA           Binds Services
                                         Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
                             VCAP
        Routers &                        Cloud
      Load Balancing
                                        Controller


                             NATS          Services

             Droplet

                                         Health
         DEA           Starts App        Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
                           VCAP
        Routers &                        Cloud
      Load Balancing
                                        Controller


                           NATS            Services

             Droplet     Broadcast
                       “App Started”
                                         Health
         DEA                             Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
                           VCAP
        Routers &                        Cloud
      Load Balancing
                                        Controller


                           NATS            Services

             Droplet
                        “I’m Alive”
                                         Health
         DEA                             Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
App Started? Poll
                              VCAP
            Routers &                     Cloud
          Load Balancing
                                         Controller


                              NATS          Services

                    Droplet

                                          Health
              DEA                         Manager

 @russmiles | russ.miles@opencredo.com
> vmc push <appname>
                          VCAP
        Routers &                        Cloud
      Load Balancing
                                        Controller


                           NATS            Services

             Droplet

                                         Health
         DEA                             Manager

@russmiles | russ.miles@opencredo.com
> vmc push <appname>
“Starting Application: OK”
                             VCAP
           Routers &                     Cloud
         Load Balancing
                                        Controller


                             NATS          Services

                   Droplet

                                         Health
             DEA                         Manager

@russmiles | russ.miles@opencredo.com
What about R.Y.O?
@russmiles | russ.miles@opencredo.com
Local
         Demos


@russmiles | russ.miles@opencredo.com
“You’re not from round
                                      here are ya...”




      Demo: Local Cloud
          Foundry
@russmiles | russ.miles@opencredo.com
Why did it take so
               long?


@russmiles | russ.miles@opencredo.com
Timing is everything




@russmiles | russ.miles@opencredo.com
Convergence on App
        Deployment Stories




@russmiles | russ.miles@opencredo.com
Open Source Drives
         Innovation (again)




@russmiles | russ.miles@opencredo.com
Some ‘Missing’ Pieces


@russmiles | russ.miles@opencredo.com
Scaling is easy...




@russmiles | russ.miles@opencredo.com
OSGi?




@russmiles | russ.miles@opencredo.com
Python?




@russmiles | russ.miles@opencredo.com
Summary


@russmiles | russ.miles@opencredo.com
Glad to be wrong!




@russmiles | russ.miles@opencredo.com
“Can I run my app, pleeeaase!”




@russmiles | russ.miles@opencredo.com
Continuous Delivery




@russmiles | russ.miles@opencredo.com
DevOps




@russmiles | russ.miles@opencredo.com
To
           From




      Finally the App Server has Grown Up!
@russmiles | russ.miles@opencredo.com
Use the source
        VCAP


           https://github.com/cloudfoundry/vcap


        Samples

               https://github.com/SpringSource/
                    cloudfoundry-samples



@russmiles | russ.miles@opencredo.com
Definitely!




@russmiles | russ.miles@opencredo.com
Thanks for your time!
         &
  Any Questions?
            @russmiles
    russ.miles@opencredo.com

Russ miles-cloudfoundry-deep-dive