SlideShare una empresa de Scribd logo
1 de 78
Descargar para leer sin conexión
Cloud Foundry
The Open Platform as a Service



Patrick Chanezon
Senior Director
Developer Relations
chanezonp@vmware.com
@chanezon               Cloud Foundry OpenTour, Kiev, April 2012
Tuesday, April 24, 12
P@ in a nutshell

                        • French, based in San Francisco
                        • Senior Director, Developer Relations,VMware
                        • Software Plumber, API guy, mix of Enterprise and
                        Consumer
                                • 18 years writing software, backend guy with a
                                taste for javascript
                                • 2 y Accenture (Notes guru), 3 y Netscape/AOL
                                (Servers, Portals), 5 y Sun (ecommerce, blogs,
                                Portals, feeds, open source)
                        • 6 years at Google, API guy (first hired, helped start the
                        team)
                                • Adwords, Checkout, Social, HTML5, Cloud


Tuesday, April 24, 12
Dreams Of my childhood




   3

Tuesday, April 24, 12
Accelerando / Singularity, in a Galaxy far far away

   § Even if we automate ourselves out of a job every 10 years
   § ...I don’t think the singularity is near!




   4

Tuesday, April 24, 12
Moore's Law is for Hardware Only

  § Does not apply to software
  § Productivity gains not keeping up with hardware and bandwidth
  § Writing software is hard, painful, and still very much a craft




   5

Tuesday, April 24, 12
Moore's Law’s free lunch is over




                    §        Herb Sutter, Welcome to the Jungle
                         http://herbsutter.com/welcome-to-the-jungle/

   6

Tuesday, April 24, 12
Future




       “The future is already here
       — it's just not very evenly
       distributed”
       William Gibson




   7


Tuesday, April 24, 12
Haiku - Skylark



       “Trampling on clouds,
       inhaling the mist,
       the skylark soars”
        —SHIKI



   8


Tuesday, April 24, 12
Haiku - Frog



       “Crouching,
       studying the clouds—
       a frog”
       CHIYO-JO


   9


Tuesday, April 24, 12
Architecture Changes: 60’s Mainframe




Tuesday, April 24, 12
Architecture Changes: 80’s Client-Server




Tuesday, April 24, 12
Architecture Changes: 90’s Web




Tuesday, April 24, 12
Architecture Changes: 2010’s Cloud, HTML5, Mobile




Tuesday, April 24, 12
Back to Client Server: Groovy Baby!




   14


Tuesday, April 24, 12
What is Cloud Computing?




                        Cloud According to my daughter Eliette

   15


Tuesday, April 24, 12
What is Cloud Computing?




                        Cloud at Михайлівський золотоверхий монастир

   16


Tuesday, April 24, 12
Cloud Stack - Classic Pyramid




                                Software
                               As A Service


                          Platform As A Service



                        Infrastructure As A Service




   17


Tuesday, April 24, 12
Cloud Stack - By Value




                             Software
                            As A Service




                        Platform As A Service




                             Infrastructure
                             As A Service




   18


Tuesday, April 24, 12
Cloud Stack - History

   § What does cloud mean, 4 main angles
        • Software 1994 Netscape
        • Infrastructure 2002 Amazon AWS
        • Platform 2008 Google
        • Development now!




                                           § Industrialization of hardware and
                                            software infrastructure
                                            like electricity beginning of 20th century



    § But software development itself is moving towards craftmanship

   19


Tuesday, April 24, 12
Cloud started at Consumer websites solving their needs
   • Google, Amazon, Yahoo, Facebook, Twitter
   • Large Data Sets
   • Storage Capacity growing faster than Moore’s Law
   • Fast Networks
   • Horizontal -> Vertical scalability
   • Open Source Software
   • Virtualization
   • Cloud is a productization of these infrastructures
        • Public Clouds Services: Google, Amazon
        • Open Source Software: Hadoop, Eucalyptus, Ubuntu, Cloud Foundry


Tuesday, April 24, 12
Infrastructure



     21

Tuesday, April 24, 12
IaaS/Virtualization getting mainstream

   §   AWS, Joyent, Rackspace,...
   §   Open Source projects: OpenStack, DeltaCloud, Eucalyptus
   §   Automation: Chef, Juju
   §   Standardization? DMTF
   §   Inside the Firewall, Virtualization: VMware, Microsoft, Xen, KVM
   §   50% of workloads are virtualized
   §   Easy to provision, manage instance...BUT
   §   Still need to manage backups, software stacks, monitor, upgrades




   22


Tuesday, April 24, 12
With Infrastructure, you still need to build your own platform

   § Need to build a distributed platform on top of you infrastructure
   § Story of the AWS meltdown from last summer
        • http://blog.reddit.com/2011/03/why-reddit-was-down-for-6-of-last-24.html
        • http://www.readwriteweb.com/cloud/2010/12/chaos-monkey-how-netflix-
         uses.php
        • http://news.ycombinator.com/item?id=2477296
        • http://stu.mp/2011/04/the-cloud-is-not-a-silver-bullet.html
   § Twilio, Smugmug, SimpleGeo survived it because they built their
        own distributed platform on top of IaaS
   § Enterprise customers want to consider Infrastructure like CDNs
        • Multi Cloud usage
        • Based on Open Source de facto standards, or full standards whenever that
         happens




   23


Tuesday, April 24, 12
Platforms



     24

Tuesday, April 24, 12
Platforms


    § Raise the Unit of currency to be application & services instead of
         infrastructure
    § Google App Engine, Cloud Foundry, Joyent, Heroku, Stax
         (Cloudbees), Amazon elastic beanstalk, Microsoft Azure, AppFog
    §   Single or a few languages, services
    §   Start of Multi language Polyglot platforms
    §   Enabler for Agile Developers -> Create Business value faster
    §   Lack of standards: risk, vendor lock-in
    §   Enterprise needs:
         • Control, customizability
         • Private/Hybrid Cloud
         • Avoid lock-in


   25


Tuesday, April 24, 12
Agile Development Processes




Tuesday, April 24, 12
Agility as a survival skill

   § Consumer software is becoming like fashion
        • Phone apps, social apps, short lifetime, fast lifecycles
        • Ab testing
   § Clay shirky situational apps
   § Kent Beck, Usenix 2011 Talk, “Software G-Forces”
        change in software process when frequency grows
   § Cloud Platforms enables an Agile culture, driver for innovation
        • Scalability is built in the platforms
        • Can iterate faster
        • Focus on design
   § Cloud Platforms lets developers focus on driving business value




   27


Tuesday, April 24, 12
Main Risk: Lock-In




                        Welcome to the hotel california
                        Such a lovely place
                        Such a lovely face
                        Plenty of room at the hotel california
                        Any time of year, you can find it here

                        Last thing I remember, I was
                        Running for the door
                        I had to find the passage back
                        To the place I was before
                        ’relax,’ said the night man,
                        We are programmed to receive.
                        You can checkout any time you like,
                        But you can never leave!




   28


Tuesday, April 24, 12
Cloud Foundry: The Open PaaS

        • Open Source: Apache 2 Licensed
        • multi language/frameworks
        • multi services
        • multi cloud




                                              Ap




                                                                                          ce
                                                  pli
                            vFabric




                                                                                         rfa
                           Postgres                                                            Private
                                                     ca




                                                                                        nte
                                        Data
                                       Services         tio                                    Clouds




                                                                                      rI
                                                            n




                                                                                     e
                                                               Se
                                                                                          Public




                                                                                 vid
                                vFabric
                                RabbitMQTM                         rvi
                                                                                          Cloud




                                                                                 ro
                                             Msg Services
                                                                       ce




                                                                             dP
                                                                                      Micro

                                                                            ou
                                                             Other
                                                                                      Cloud
                                                                            Cl
                                                            Services




   29


Tuesday, April 24, 12
Open Source



     30

Tuesday, April 24, 12
Open Source Advantage

   § http://code.google.com/p/googleappengine/issues/detail?id=13




    • https://github.com/cloudfoundry/vcap/pull/25




   31


Tuesday, April 24, 12
CloudFoundry.org




   32

Tuesday, April 24, 12
Cloud Foundry Open Source Workflow

                                          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
   33



Tuesday, April 24, 12
Multi Cloud



     34

Tuesday, April 24, 12
CloudFoundry.COM

                                   Cloud Foundry

               Runtimes & Frameworks

               Services

                                  vCenter / vSphere




               Infrastructure




     35

Tuesday, April 24, 12
Cloud Foundry.ORG

                                         Cloud Foundry


                        The Source Code to Compile & Build Cloud Foundry



                                        vCenter / vSphere

               Download              Setup          Setup Scripts   Deploy
                   Code           Environment                       Behind
                                                                    Firewall




     36

Tuesday, April 24, 12
Micro Cloud Foundry




                           Micro




     37

Tuesday, April 24, 12
What is a Micro Cloud?




                                              Or




                        Entire Cloud Running inside of a single VM


     38

Tuesday, April 24, 12
What is in Micro Cloud Foundry?


                                                                               .COM




                                Dynamic Updating DNS


                          App Instances                             Services




                        Open source Platform as a Service project




                                                                    10.04



     39

Tuesday, April 24, 12
Other Cloud Foundry powered PaaS




     Private PaaS
     Added Python and Perl




     Public PaaS
     Added PHP




     Tier3 and Uhuru recently added .NET support


   40


Tuesday, April 24, 12
Register today

               http://cloudfoundry.com/signup
              Use Promo Code     CFOpenTour2012
               To avoid approval queue waiting time




     41

Tuesday, April 24, 12
Cloud Foundry
                   BOSH

     42

Tuesday, April 24, 12
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
   43

Tuesday, April 24, 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
   44

Tuesday, April 24, 12
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

45



 Tuesday, April 24, 12
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

   46




Tuesday, April 24, 12
Cloud for Developers: the true path is PaaS!




   47


Tuesday, April 24, 12
Development
                       As A
                      Service
     48

Tuesday, April 24, 12
Development

   §   Final frontier, happening now
   §   Not whole product yet
   §   Social Coding: Google code, Github
   §   Web IDEs: Cloud9, Exo, Orion
   §   Higher level case tools, Wavemaker, Orangescape, Runmyprocess
   §   Continuous Integration: Jenkins, Cloudbees, OpenShift
   §   Test: feature of cloud platforms
   §   Knowledge Sharing: StackOverflow




   49

Tuesday, April 24, 12
Demo
               Exo Cloud IDE
                                        Mark Downey
                        Cloud Services Product Manager, Exo Platforms
                                   Twitter: @marksdowney




     50

Tuesday, April 24, 12
Lessons for
                        Developers

     51

Tuesday, April 24, 12
Predictions


    § Software is becoming like fashion, design rules
    § Welcome to Babel, use the best tool for the job, embrace multiple
        language & heterogeneity
    § Our jobs will change, build yourself out of your current job
    § Sysadmin jobs will morph, there will be less of them
    § Many opportunities open when you embrace change




   52


Tuesday, April 24, 12
Things to Forget

   §   First normal form
   §   Waterfall model
   §   Single server deployment
   §   Single language skill
   §   Build everything from scratch
   §   Build custom infrastructure




   53


Tuesday, April 24, 12
Things to Learn

        • Agile
        • Take risks, fail often, fail fast and learn
        • API Design: create the API first
        • UI Design, Javacript, HTML5, CSS3
        • A/B Testing
        • Open Source, Open Standards
        • Architecture, Distributed Computing (CAP theorem, 8 fallacies)
        • Cloud Platforms and APIs
        • Multiple types of languages (imperative, object, functional, logic)
        • Ability to encapsulate domain knowledge in a DSL
        • Build on the shoulders of giants: reuse, REST APIs
        • Pick your battles, choose what you need to build yourself to add value
        • Learn to live in a box (embrace platform limitations) to think outside the box
        • Use an App Store for distribution
        • Consider your career as a startup
   54


Tuesday, April 24, 12
Tuesday, April 24, 12
Such stuff as dreams are made on


    § Like a kid on a candy store: there's never been a better time to be a
        software developer!
    § Welcome to the Cloud: embrace change and reinvent yourselves
    § “The future is already there, not evenly distributed” Gibson
    § We Developers, invent the future today




   56


Tuesday, April 24, 12
sample app
                         polyglot in action
                         by Mark Lucovsky




    57                      developer perspective v2.0

Tuesday, April 24, 12
58                  developer perspective v2.0

Tuesday, April 24, 12
stac2: load generation system
 - jQuery, jQuery UI                   json-p            stac2             - 2 x 128mb
 - haml templates                                      frontend            - ruby 1.8.7, sinatra
 - 100% JS based UI
                                   smtp       http                      json

                              email                                        - 16 x 128mb*
                                                      api server           - node.JS, 0.6.8
                             reports

                                           rpush                        redis api

                                                          redis

                                        blpop          redis api          blpop
               - 96 x 128mb                                                         - 16 x 128mb*
               - ruby 1.8.7, sinatra   vmc worker                    http worker    - node.JS, 0.6.8
                                                                     * - api server and http worker
                                                                     share the same node.JS
                                                                     process/instance
    59                                  developer perspective v2.0

Tuesday, April 24, 12
deployment instructions




                        $ cd ~/stac2
                        $ vmc push

    60                      developer perspective v2.0

Tuesday, April 24, 12
how is this possible?
  $	
  cd	
  ~/stac2;	
  cat	
  manifest.yml
  applications:
  	
  	
  ./nabh:
  	
  	
  	
  	
  instances:	
  16
  	
  	
  	
  	
  mem:	
  128M
  	
  	
  	
  	
  runtime:	
  node06
  	
  	
  	
  	
  url:	
  ${name}.${target-­‐base}
  	
  	
  	
  	
  services:
  	
  	
  	
  	
  	
  	
  nab-­‐redis:
  	
  	
  	
  	
  	
  	
  	
  	
  type:	
  :redis
  ./nabv:
  	
  	
  	
  	
  instances:	
  96
  	
  	
  	
  	
  mem:	
  128M	
  
  	
  	
  	
  	
  runtime:	
  ruby18
  	
  	
  	
  	
  url:	
  ${name}.${target-­‐base}
  	
  	
  	
  	
  services:
  	
  	
  	
  	
  	
  	
  nab-­‐redis:
  	
  	
  	
  	
  	
  	
  	
  	
  type:	
  :redis
  ./stac2:
  	
  	
  	
  	
  instances:	
  2
  	
  	
  	
  	
  mem:	
  128M	
  
  	
  	
  	
  	
  runtime:	
  ruby18
  	
  	
  	
  	
  url:	
  ${name}.${target-­‐base}

    61                                      developer perspective v2.0

Tuesday, April 24, 12
design tidbits
  •      producer/consumer pattern using rpush/blpop
  •      node.JS: multi-server and high performance async i/o
  •      caldecott – aka vmc tunnel for debugging
  •      redis sorted sets for stats collection
  •      redis expiring keys for rate calculation




    62                        developer perspective v2.0

Tuesday, April 24, 12
producer/consumer
  •      core design pattern
  •      found at the heart of many complex apps
  classic mode:
  - thread pools
  - semaphore/mutex, completion ports, etc.
  - scalability limited to visibility of the work queue



      producer          work   work queue             work       consumer



  cloud foundry mode:
  - instance pools
  - redis rpush/blpop, rabbit queues, etc.
  - full horizontal scalability, cloud scale


    63                              developer perspective v2.0

Tuesday, April 24, 12
producer/consumer: code
  //	
  producer
  function	
  commit_item(queue,	
  item)	
  {
  	
  	
  //	
  push	
  the	
  work	
  item	
  onto	
  the	
  proper	
  queue	
  
  	
  	
  redis.rpush(queue,	
  item,	
  function(err,	
  data)	
  {

  	
  	
  	
  	
  //	
  optionally	
  trim	
  the	
  queue,	
  throwing	
  away
  	
  	
  	
  	
  //	
  data	
  as	
  needed	
  to	
  ensure	
  the	
  queue	
  does
  	
  	
  	
  	
  //	
  not	
  grow	
  unbounded
  	
  	
  	
  	
  if	
  (!err	
  &&	
  data	
  >	
  queueTrim)	
  {
  	
  	
  	
  	
  	
  	
  redis.ltrim(queue,	
  0,	
  queueTrim-­‐1);
  	
  	
  	
  	
  }	
  	
  	
  
  	
  	
  });
  }
  //	
  consumer
  function	
  worker()	
  {
  	
  	
  //	
  blocking	
  wait	
  for	
  workitems
  	
  	
  blpop_redis.blpop(queue,	
  0,	
  function(err,	
  data)	
  {
  	
  	
  	
  	
  
  	
  	
  	
  	
  //	
  data[0]	
  ==	
  queue,	
  data[1]	
  ==	
  item
  	
  	
  	
  	
  if	
  (!err)	
  {
  	
  	
  	
  	
  	
  	
  doWork(data[1]);
  	
  	
  	
  	
  }
  	
  	
  	
  	
  process.nextTick(worker);	
  	
  	
  
  	
  	
  });
     64                                               developer perspective v2.0

Tuesday, April 24, 12
node.JS multi-server: http API server
  //	
  the	
  api	
  server	
  handles	
  two	
  key	
  load	
  generation	
  apis
  //	
  /http	
  –	
  for	
  http	
  load,	
  /vmc	
  for	
  Cloud	
  Foundry	
  API	
  load
  var	
  routes	
  =	
  {“/http”:	
  httpCmd,	
  “/vmc”:	
  vmcCmd}

  //	
  http	
  api	
  server	
  booted	
  by	
  app.js,	
  passing	
  redis	
  client
  //	
  and	
  Cloud	
  Foundry	
  instance	
  
  function	
  boot(redis_client,	
  cfinstance)	
  {
  	
  	
  var	
  redis	
  =	
  redis_client;
  	
  	
  
  	
  	
  function	
  onRequest(request,	
  response)	
  {
  	
  	
  	
  	
  var	
  u	
  =	
  url.parse(request.url);
  	
  	
  	
  	
  var	
  path	
  =	
  u.pathname;
  	
  	
  	
  	
  if	
  (routes[path]	
  &&	
  typeof	
  routes[path]	
  ==	
  ‘function’)	
  {
  	
  	
  	
  	
  	
  	
  routes[path](request,	
  response);
  	
  	
  	
  	
  }	
  else	
  {
  	
  	
  	
  	
  	
  	
  response.writeHead(404,	
  {‘Content-­‐Type’:	
  ‘text/plain’});
  	
  	
  	
  	
  	
  	
  response.write(‘404	
  Not	
  Found’);
  	
  	
  	
  	
  	
  	
  response.end();
  	
  	
  	
  	
  }
  	
  	
  }
  	
  	
  server	
  =	
  http.createServer(onRequest).listen(cfinstance[‘port’]);
  }


    65                                       developer perspective v2.0

Tuesday, April 24, 12
node.JS multi-server: blpop server
  var	
  blpop_redis	
  =	
  null;
  var	
  status_redis	
  =	
  null;
  var	
  cfinstance	
  =	
  null;

  //	
  blpop	
  server	
  handles	
  work	
  requests	
  for	
  http	
  traffic
  //	
  that	
  are	
  placed	
  on	
  the	
  queue	
  by	
  the	
  http	
  API	
  server
  //	
  another	
  blpop	
  server	
  sits	
  in	
  the	
  ruby/sinatra	
  VMC	
  server
  function	
  boot(r1,	
  r2,	
  cfi)	
  {
  	
  	
  //	
  multiple	
  redis	
  clients	
  due	
  to	
  concurrency	
  constraints
  	
  	
  blpop_redis	
  =	
  r1;
  	
  	
  status_redis	
  =	
  r2;
  	
  	
  cfinstance	
  =	
  cfi;
  	
  	
  worker();
  }

  //	
  this	
  is	
  the	
  blpop	
  server	
  loop
  function	
  worker()	
  {
  	
  	
  blpop_redis.blpop(queue,	
  0,	
  function(err,	
  data)	
  {
  	
  	
  	
  	
  if	
  (!err)	
  {
  	
  	
  	
  	
  	
  	
  doWork(data[1]);
  	
  	
  	
  	
  }
  	
  	
  	
  	
  process.nextTick(worker);	
  	
  	
  
  	
  	
  });
  }
    66                                    developer perspective v2.0

Tuesday, April 24, 12
caldecott: aka vmc tunnel
  #	
  create	
  a	
  caldecott	
  tunnel	
  to	
  the	
  redis	
  server
  $	
  vmc	
  tunnel	
  nab-­‐redis	
  redis-­‐cli
  Binding	
  Service	
  [nab-­‐redis]:	
  OK
  …
  Launching	
  'redis-­‐cli	
  -­‐h	
  localhost	
  -­‐p	
  10000	
  -­‐a	
  ...’
  	
  

  #	
  enumerate	
  the	
  keys	
  used	
  by	
  stac2
  redis>	
  keys	
  vmc::staging::*
  1)	
  “vmc::staging::actions::time_50”
  2)	
  “vmc::staging::active_workers”
  …

  #	
  enumerate	
  actions	
  that	
  took	
  less	
  that	
  50ms
  redis>	
  zrange	
  vmc::staging::actions::time_50	
  0	
  -­‐1	
  withscores
  1)	
  “delete_app”
  2)	
  “1”
  3)	
  “login”
  4)	
  “58676”
  5)	
  “info”
  6)	
  “80390”

  #	
  see	
  how	
  many	
  work	
  items	
  we	
  dumped	
  due	
  to	
  concurrency	
  constraint
  redis>	
  get	
  vmc::staging::wastegate
  “7829”
   67                                           developer perspective v2.0

Tuesday, April 24, 12
redis sorted sets for stats collection
  #	
  log	
  action	
  into	
  a	
  sorted	
  set,	
  net	
  result	
  is	
  set	
  contains
  #	
  actions	
  and	
  the	
  number	
  of	
  times	
  the	
  action	
  was	
  executed
  #	
  count	
  total	
  action	
  count,	
  and	
  also	
  per	
  elapsed	
  time	
  bucket
  def	
  logAction(action,	
  elapsedTimeBucket)	
  
  	
  	
  #	
  actionKey	
  is	
  the	
  set	
  for	
  all	
  counts
  	
  	
  #	
  etKey	
  is	
  the	
  set	
  for	
  a	
  particular	
  time	
  bucket	
  e.g.,	
  _1s,	
  _50ms
  	
  	
  actionKey	
  =	
  “vmc::#{@cloud}::actions::action_set”
  	
  	
  etKey	
  =	
  “vmc::#{@cloud}::actions::times#{elapsedTimeBucket}”
  	
  	
  @redis.zincrby	
  actionKey,	
  1,	
  action
  	
  	
  @redis.zincrby	
  etKey,	
  1,	
  action
  end

  #	
  enumerate	
  actions	
  and	
  their	
  associated	
  count
  redis>	
  zrange	
  vmc::staging::actions::action_set	
  0	
  -­‐1	
  withscores
  1)	
  “login”
  2)	
  “212092”
  3)	
  “info”
  4)	
  “212093”

  #	
  enumerate	
  actions	
  that	
  took	
  between	
  400ms	
  and	
  1s
  redis>	
  zrange	
  vmc::staging::actions::time_400_1s	
  0	
  -­‐1	
  withscores
  1)	
  “create-­‐app”
  2)	
  “14”
  3)	
  “bind-­‐service”
  4)	
  “75”
   68                                     developer perspective v2.0

Tuesday, April 24, 12
redis incrby and expire for rate calcs
  #	
  to	
  calculate	
  rates	
  (e.g.,	
  4,000	
  requests	
  per	
  second)
  #	
  we	
  use	
  plain	
  old	
  redis.incrby.	
  the	
  trick	
  is	
  that	
  the	
  
  #	
  key	
  contains	
  the	
  current	
  1sec	
  timestamp	
  as	
  it’s	
  suffix	
  value
  #	
  all	
  activity	
  that	
  happens	
  within	
  this	
  1s	
  period	
  accumulates
  #	
  in	
  that	
  key.	
  by	
  setting	
  an	
  expire	
  on	
  the	
  key,	
  the	
  key	
  is	
  
  #	
  automatically	
  deleted	
  10s	
  after	
  last	
  write
  def	
  logActionRate(cloud)
  	
  	
  tv	
  =	
  Time.now.tv_sec
  	
  	
  one_s_key	
  =	
  "vmc::#{cloud}::rate_1s::#{tv}"

  	
  	
  #	
  increment	
  the	
  bucket	
  and	
  set	
  expires,	
  key
  	
  	
  #	
  will	
  eventually	
  expires	
  Ns	
  after	
  the	
  last	
  write
  	
  	
  @redis.incrby	
  one_s_key,	
  1
  	
  	
  @redis.expire	
  one_s_key,	
  10
  end

  #	
  return	
  current	
  rate	
  by	
  looking	
  at	
  the	
  bucket	
  for	
  the	
  previous	
  
  #	
  one	
  second	
  period.	
  by	
  looking	
  further	
  back	
  and	
  averaging,	
  we	
  
  #	
  can	
  smooth	
  the	
  rate	
  calc
  def	
  actionRate(cloud)
  	
  	
  tv	
  =	
  Time.now.tv_sec	
  -­‐	
  1
  	
  	
  one_s_key	
  =	
  "vmc::#{cloud}::rate_1s::#{tv}"
  	
  	
  @redis.get	
  one_s_key
  end
    69                                        developer perspective v2.0

Tuesday, April 24, 12
stac2 demo -or- screencast




    70                  developer perspective v2.0

Tuesday, April 24, 12
stac2 demo -or- screencast




    70                  developer perspective v2.0

Tuesday, April 24, 12
Cloud Foundry Resources

     Primary Site : cloudfoundry.com
     Open Source Site : cloudfoundry.org


     Twitter : @cloudfoundry , hash tag #cfoundry
     Blog : blog.cloudfoundry.com
     FB : facebook.com/cloudfoundry


     Support : support.cloudfoundry.com
       • Documentation
       • Knowledge Base
       • Q & A / Forums
     We’re hiring: www.cloudfoundry.com/jobs



     71

Tuesday, April 24, 12
Community

                                       Oleg Zhurakousky
                        Senior Software Engineer, SpringSource/VMware
                                       Twitter: @z_oleg




     72

Tuesday, April 24, 12
Questions




     73

Tuesday, April 24, 12
                        ?
Thank You!
                 t @CloudFoundry


                 t @chanezon

                        Website   : www.cloudfoundry.com
                        Blog      : blog.cloudfoundry.com
                        Forum     : support.cloudfoundry.com

Tuesday, April 24, 12
Books / Articles


    §   Nick Carr, The Big Switch
    §   Eric Raymond, The Art of Unix Programming
    §   Weinberg, Psychology of Computer Programming
    §   Wes python book
    §   Mark html5 book
    §   Kent Beck XP
    §   Hunt, Thomas, The Pragmatic Programmer
    §   Ade Oshineye, Apprenticeship Patterns
    §   Matt Cutt's Ignite Talk IO 2011, Trying different things
    §   Josh Bloch talk about api design
    §   Larry and Sergey, Anatomy of a Search Engine
    §   Rob Pike, The Practice of Programming

   75


Tuesday, April 24, 12
Papers / Talks


    §   Simon Wardley, Oscon 09 “Cloud - Why IT Matters”
    §   Tim O’Reilly article on internet os
    §   Peter Deutsch’s 8 Fallacies of Distributed Computing
    §   Brewer’s CAP Theorem
    §   Gregor Hohpe’s Starbucks Does Not Use Two-Phase Commit
    §   Stuff I tag http://www.delicious.com/chanezon/
    §   More specifically http://www.delicious.com/chanezon/cloudfoundry
    §   My previous Talks http://www.slideshare.net/chanezon
    §   My list of favorite books
         http://www.chanezon.com/pat/soft_books.html




   76


Tuesday, April 24, 12
Acknowledgement

   § Drawings from my daughters Eliette
   § Slides from Dave McCrory, Derek Collison, Duke Leto
   § Haiku from Addiss, Stephen; Yamamoto, Fumiko; Yamamoto,
        Fumiko Y.; Yamamoto, Akira Y. (2011-06-22). Haiku: An Anthology of
        Japanese Poems (Shambhala Library)
   § Painting Hiroshige, Sengai




   77


Tuesday, April 24, 12

Más contenido relacionado

La actualidad más candente

The Application Server Platform of the Future - Container & Cloud Native and ...
The Application Server Platform of the Future - Container & Cloud Native and ...The Application Server Platform of the Future - Container & Cloud Native and ...
The Application Server Platform of the Future - Container & Cloud Native and ...Lucas Jellema
 
Getting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick StinematesGetting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick StinematesAtlassian
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realistsKarthik Gaekwad
 
Containers and microservices for realists
Containers and microservices for realistsContainers and microservices for realists
Containers and microservices for realistsKarthik Gaekwad
 
DockerPenang Meetup#1
DockerPenang Meetup#1DockerPenang Meetup#1
DockerPenang Meetup#1Sujay Pillai
 
OSCON 2014 - Crash Course in Open Source Cloud Computing
OSCON 2014 -  Crash Course in Open Source Cloud ComputingOSCON 2014 -  Crash Course in Open Source Cloud Computing
OSCON 2014 - Crash Course in Open Source Cloud ComputingMark Hinkle
 
ClouNS - A Cloud-native Application Reference Model for Enterprise Architects
ClouNS - A Cloud-native Application Reference Model for Enterprise ArchitectsClouNS - A Cloud-native Application Reference Model for Enterprise Architects
ClouNS - A Cloud-native Application Reference Model for Enterprise ArchitectsNane Kratzke
 
Hypervisor "versus" Linux Containers with Docker !
Hypervisor "versus" Linux Containers with Docker !Hypervisor "versus" Linux Containers with Docker !
Hypervisor "versus" Linux Containers with Docker !Francisco Gonçalves
 
The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native ApplicationEmiliano Pecis
 
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deployments
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deploymentsSAP Teched 2012 Session Tec3438 Automate IaaS SAP deployments
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deploymentsChris Kernaghan
 
Patterns of Cloud Native Architecture
Patterns of Cloud Native ArchitecturePatterns of Cloud Native Architecture
Patterns of Cloud Native ArchitectureAndrew Shafer
 
The Cloud Foundry Story
The Cloud Foundry StoryThe Cloud Foundry Story
The Cloud Foundry StoryVMware Tanzu
 
Crash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud Computing Crash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud Computing Mark Hinkle
 
Delivering Developer Tools at Scale
Delivering Developer Tools at ScaleDelivering Developer Tools at Scale
Delivering Developer Tools at ScaleOracle Developers
 
Olivier meetup-boston-2013-jan-21-v2
Olivier meetup-boston-2013-jan-21-v2Olivier meetup-boston-2013-jan-21-v2
Olivier meetup-boston-2013-jan-21-v2Olivier Eeckhoutte
 
Ensuring Cloud Native Success: Organization Transformation
Ensuring Cloud Native Success:  Organization TransformationEnsuring Cloud Native Success:  Organization Transformation
Ensuring Cloud Native Success: Organization TransformationChloe Jackson
 
IBM Container Service Overview
IBM Container Service OverviewIBM Container Service Overview
IBM Container Service OverviewKyle Brown
 
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...Kai Wähner
 
Multi-Containers Orchestration with Live Migration and High-Availability for ...
Multi-Containers Orchestration with Live Migration and High-Availability for ...Multi-Containers Orchestration with Live Migration and High-Availability for ...
Multi-Containers Orchestration with Live Migration and High-Availability for ...Jelastic Multi-Cloud PaaS
 

La actualidad más candente (20)

The Application Server Platform of the Future - Container & Cloud Native and ...
The Application Server Platform of the Future - Container & Cloud Native and ...The Application Server Platform of the Future - Container & Cloud Native and ...
The Application Server Platform of the Future - Container & Cloud Native and ...
 
Getting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick StinematesGetting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick Stinemates
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realists
 
Containers and microservices for realists
Containers and microservices for realistsContainers and microservices for realists
Containers and microservices for realists
 
DockerPenang Meetup#1
DockerPenang Meetup#1DockerPenang Meetup#1
DockerPenang Meetup#1
 
OSCON 2014 - Crash Course in Open Source Cloud Computing
OSCON 2014 -  Crash Course in Open Source Cloud ComputingOSCON 2014 -  Crash Course in Open Source Cloud Computing
OSCON 2014 - Crash Course in Open Source Cloud Computing
 
ClouNS - A Cloud-native Application Reference Model for Enterprise Architects
ClouNS - A Cloud-native Application Reference Model for Enterprise ArchitectsClouNS - A Cloud-native Application Reference Model for Enterprise Architects
ClouNS - A Cloud-native Application Reference Model for Enterprise Architects
 
Hypervisor "versus" Linux Containers with Docker !
Hypervisor "versus" Linux Containers with Docker !Hypervisor "versus" Linux Containers with Docker !
Hypervisor "versus" Linux Containers with Docker !
 
The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native Application
 
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deployments
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deploymentsSAP Teched 2012 Session Tec3438 Automate IaaS SAP deployments
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deployments
 
Patterns of Cloud Native Architecture
Patterns of Cloud Native ArchitecturePatterns of Cloud Native Architecture
Patterns of Cloud Native Architecture
 
Cloud Native Operations
Cloud Native OperationsCloud Native Operations
Cloud Native Operations
 
The Cloud Foundry Story
The Cloud Foundry StoryThe Cloud Foundry Story
The Cloud Foundry Story
 
Crash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud Computing Crash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud Computing
 
Delivering Developer Tools at Scale
Delivering Developer Tools at ScaleDelivering Developer Tools at Scale
Delivering Developer Tools at Scale
 
Olivier meetup-boston-2013-jan-21-v2
Olivier meetup-boston-2013-jan-21-v2Olivier meetup-boston-2013-jan-21-v2
Olivier meetup-boston-2013-jan-21-v2
 
Ensuring Cloud Native Success: Organization Transformation
Ensuring Cloud Native Success:  Organization TransformationEnsuring Cloud Native Success:  Organization Transformation
Ensuring Cloud Native Success: Organization Transformation
 
IBM Container Service Overview
IBM Container Service OverviewIBM Container Service Overview
IBM Container Service Overview
 
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
 
Multi-Containers Orchestration with Live Migration and High-Availability for ...
Multi-Containers Orchestration with Live Migration and High-Availability for ...Multi-Containers Orchestration with Live Migration and High-Availability for ...
Multi-Containers Orchestration with Live Migration and High-Availability for ...
 

Similar a Cloud Foundry OpenTour Kiev Keynote

Cloud Foundry the Open PaaS - OpenTour Austin Keynote
Cloud Foundry the Open PaaS - OpenTour Austin KeynoteCloud Foundry the Open PaaS - OpenTour Austin Keynote
Cloud Foundry the Open PaaS - OpenTour Austin KeynotePatrick Chanezon
 
Cloud Foundry and Ubuntu - 2012
Cloud Foundry and Ubuntu - 2012Cloud Foundry and Ubuntu - 2012
Cloud Foundry and Ubuntu - 2012Patrick Chanezon
 
Cloud Foundry Japan Community Meetup
Cloud Foundry Japan Community MeetupCloud Foundry Japan Community Meetup
Cloud Foundry Japan Community MeetupPatrick Chanezon
 
Japan Developer Summit (en) - Cloud Foundry, the Open Platform As A Service
Japan Developer Summit (en) - Cloud Foundry, the Open Platform As A ServiceJapan Developer Summit (en) - Cloud Foundry, the Open Platform As A Service
Japan Developer Summit (en) - Cloud Foundry, the Open Platform As A ServicePatrick Chanezon
 
Cloud Foundry, the Open Platform As A Service
Cloud Foundry, the Open Platform As A ServiceCloud Foundry, the Open Platform As A Service
Cloud Foundry, the Open Platform As A ServicePatrick Chanezon
 
UDS 2011 - Cloud Foundry and Ubuntu, a marriage made in heaven
UDS 2011 - Cloud Foundry and Ubuntu, a marriage made in heavenUDS 2011 - Cloud Foundry and Ubuntu, a marriage made in heaven
UDS 2011 - Cloud Foundry and Ubuntu, a marriage made in heavenPatrick Chanezon
 
Cloud Foundry Introduction - Canada - October 2012
Cloud Foundry Introduction - Canada - October 2012Cloud Foundry Introduction - Canada - October 2012
Cloud Foundry Introduction - Canada - October 2012Patrick Chanezon
 
Portrait of the Developer As "The Artist" - English Version
Portrait of the Developer As "The Artist" - English VersionPortrait of the Developer As "The Artist" - English Version
Portrait of the Developer As "The Artist" - English VersionPatrick Chanezon
 
NCA GTUG 2012 - Cloud is such stuff as dreams are made on
NCA GTUG 2012 - Cloud is such stuff as dreams are made onNCA GTUG 2012 - Cloud is such stuff as dreams are made on
NCA GTUG 2012 - Cloud is such stuff as dreams are made onPatrick Chanezon
 
Portrait of the developer as The Artist - SpringOne India 2012
Portrait of the developer as The Artist - SpringOne India 2012Portrait of the developer as The Artist - SpringOne India 2012
Portrait of the developer as The Artist - SpringOne India 2012Patrick Chanezon
 
Portrait of the Developer as the Artist - OpenTour Sofia
Portrait of the Developer as the Artist - OpenTour SofiaPortrait of the Developer as the Artist - OpenTour Sofia
Portrait of the Developer as the Artist - OpenTour SofiaPatrick Chanezon
 
Cloud Foundry, Spring and Vaadin
Cloud Foundry, Spring and VaadinCloud Foundry, Spring and Vaadin
Cloud Foundry, Spring and VaadinJoshua Long
 
Yow Conference Dec 2013 Netflix Workshop Slides with Notes
Yow Conference Dec 2013 Netflix Workshop Slides with NotesYow Conference Dec 2013 Netflix Workshop Slides with Notes
Yow Conference Dec 2013 Netflix Workshop Slides with NotesAdrian Cockcroft
 
Tackling complexity in giant systems: approaches from several cloud providers
Tackling complexity in giant systems: approaches from several cloud providersTackling complexity in giant systems: approaches from several cloud providers
Tackling complexity in giant systems: approaches from several cloud providersPatrick Chanezon
 
Interop 2011 - Scaling Platform As A Service
Interop 2011 - Scaling Platform As A ServiceInterop 2011 - Scaling Platform As A Service
Interop 2011 - Scaling Platform As A ServicePatrick Chanezon
 
Ruby conf2010 OpenPaaS
Ruby conf2010 OpenPaaSRuby conf2010 OpenPaaS
Ruby conf2010 OpenPaaSDerek Collison
 
Netflix Architecture Tutorial at Gluecon
Netflix Architecture Tutorial at GlueconNetflix Architecture Tutorial at Gluecon
Netflix Architecture Tutorial at GlueconAdrian Cockcroft
 
Understand immutable infrastructure, what? Why? how? - devops d day Marseill...
 Understand immutable infrastructure, what? Why? how? - devops d day Marseill... Understand immutable infrastructure, what? Why? how? - devops d day Marseill...
Understand immutable infrastructure, what? Why? how? - devops d day Marseill...Quentin Adam
 

Similar a Cloud Foundry OpenTour Kiev Keynote (20)

Cloud Foundry the Open PaaS - OpenTour Austin Keynote
Cloud Foundry the Open PaaS - OpenTour Austin KeynoteCloud Foundry the Open PaaS - OpenTour Austin Keynote
Cloud Foundry the Open PaaS - OpenTour Austin Keynote
 
Cloud Foundry and Ubuntu - 2012
Cloud Foundry and Ubuntu - 2012Cloud Foundry and Ubuntu - 2012
Cloud Foundry and Ubuntu - 2012
 
Cloud Foundry Japan Community Meetup
Cloud Foundry Japan Community MeetupCloud Foundry Japan Community Meetup
Cloud Foundry Japan Community Meetup
 
Japan Developer Summit (en) - Cloud Foundry, the Open Platform As A Service
Japan Developer Summit (en) - Cloud Foundry, the Open Platform As A ServiceJapan Developer Summit (en) - Cloud Foundry, the Open Platform As A Service
Japan Developer Summit (en) - Cloud Foundry, the Open Platform As A Service
 
Cloud Foundry, the Open Platform As A Service
Cloud Foundry, the Open Platform As A ServiceCloud Foundry, the Open Platform As A Service
Cloud Foundry, the Open Platform As A Service
 
UDS 2011 - Cloud Foundry and Ubuntu, a marriage made in heaven
UDS 2011 - Cloud Foundry and Ubuntu, a marriage made in heavenUDS 2011 - Cloud Foundry and Ubuntu, a marriage made in heaven
UDS 2011 - Cloud Foundry and Ubuntu, a marriage made in heaven
 
Cloud Foundry Introduction - Canada - October 2012
Cloud Foundry Introduction - Canada - October 2012Cloud Foundry Introduction - Canada - October 2012
Cloud Foundry Introduction - Canada - October 2012
 
Portrait of the Developer As "The Artist" - English Version
Portrait of the Developer As "The Artist" - English VersionPortrait of the Developer As "The Artist" - English Version
Portrait of the Developer As "The Artist" - English Version
 
NCA GTUG 2012 - Cloud is such stuff as dreams are made on
NCA GTUG 2012 - Cloud is such stuff as dreams are made onNCA GTUG 2012 - Cloud is such stuff as dreams are made on
NCA GTUG 2012 - Cloud is such stuff as dreams are made on
 
Portrait of the developer as The Artist - SpringOne India 2012
Portrait of the developer as The Artist - SpringOne India 2012Portrait of the developer as The Artist - SpringOne India 2012
Portrait of the developer as The Artist - SpringOne India 2012
 
NATO IST Symposium 2013
NATO IST Symposium 2013NATO IST Symposium 2013
NATO IST Symposium 2013
 
Portrait of the Developer as the Artist - OpenTour Sofia
Portrait of the Developer as the Artist - OpenTour SofiaPortrait of the Developer as the Artist - OpenTour Sofia
Portrait of the Developer as the Artist - OpenTour Sofia
 
Cloud Foundry, Spring and Vaadin
Cloud Foundry, Spring and VaadinCloud Foundry, Spring and Vaadin
Cloud Foundry, Spring and Vaadin
 
Yow Conference Dec 2013 Netflix Workshop Slides with Notes
Yow Conference Dec 2013 Netflix Workshop Slides with NotesYow Conference Dec 2013 Netflix Workshop Slides with Notes
Yow Conference Dec 2013 Netflix Workshop Slides with Notes
 
Tackling complexity in giant systems: approaches from several cloud providers
Tackling complexity in giant systems: approaches from several cloud providersTackling complexity in giant systems: approaches from several cloud providers
Tackling complexity in giant systems: approaches from several cloud providers
 
Interop 2011 - Scaling Platform As A Service
Interop 2011 - Scaling Platform As A ServiceInterop 2011 - Scaling Platform As A Service
Interop 2011 - Scaling Platform As A Service
 
Ruby conf2010 OpenPaaS
Ruby conf2010 OpenPaaSRuby conf2010 OpenPaaS
Ruby conf2010 OpenPaaS
 
Netflix Architecture Tutorial at Gluecon
Netflix Architecture Tutorial at GlueconNetflix Architecture Tutorial at Gluecon
Netflix Architecture Tutorial at Gluecon
 
RubyWorld 2011
RubyWorld 2011RubyWorld 2011
RubyWorld 2011
 
Understand immutable infrastructure, what? Why? how? - devops d day Marseill...
 Understand immutable infrastructure, what? Why? how? - devops d day Marseill... Understand immutable infrastructure, what? Why? how? - devops d day Marseill...
Understand immutable infrastructure, what? Why? how? - devops d day Marseill...
 

Más de Patrick Chanezon

KubeCon 2019 - Scaling your cluster (both ways)
KubeCon 2019 - Scaling your cluster (both ways)KubeCon 2019 - Scaling your cluster (both ways)
KubeCon 2019 - Scaling your cluster (both ways)Patrick Chanezon
 
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...Patrick Chanezon
 
Dockercon 2019 Developing Apps with Containers, Functions and Cloud Services
Dockercon 2019 Developing Apps with Containers, Functions and Cloud ServicesDockercon 2019 Developing Apps with Containers, Functions and Cloud Services
Dockercon 2019 Developing Apps with Containers, Functions and Cloud ServicesPatrick Chanezon
 
GIDS 2019: Developing Apps with Containers, Functions and Cloud Services
GIDS 2019: Developing Apps with Containers, Functions and Cloud ServicesGIDS 2019: Developing Apps with Containers, Functions and Cloud Services
GIDS 2019: Developing Apps with Containers, Functions and Cloud ServicesPatrick Chanezon
 
Docker Enterprise Workshop - Intro
Docker Enterprise Workshop - IntroDocker Enterprise Workshop - Intro
Docker Enterprise Workshop - IntroPatrick Chanezon
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalPatrick Chanezon
 
The Tao of Docker - ITES 2018
The Tao of Docker - ITES 2018The Tao of Docker - ITES 2018
The Tao of Docker - ITES 2018Patrick Chanezon
 
Microsoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and MicrosoftMicrosoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and MicrosoftPatrick Chanezon
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018Patrick Chanezon
 
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with Docker
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with DockerDocker Meetup Feb 2018 Develop and deploy Kubernetes Apps with Docker
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with DockerPatrick Chanezon
 
The Tao of Docker - Devfest Nantes 2017
The Tao of Docker - Devfest Nantes 2017The Tao of Docker - Devfest Nantes 2017
The Tao of Docker - Devfest Nantes 2017Patrick Chanezon
 
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...Patrick Chanezon
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Patrick Chanezon
 
Moby Introduction - June 2017
Moby Introduction - June 2017Moby Introduction - June 2017
Moby Introduction - June 2017Patrick Chanezon
 
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logicielsDocker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logicielsPatrick Chanezon
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapPatrick Chanezon
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectPatrick Chanezon
 

Más de Patrick Chanezon (20)

KubeCon 2019 - Scaling your cluster (both ways)
KubeCon 2019 - Scaling your cluster (both ways)KubeCon 2019 - Scaling your cluster (both ways)
KubeCon 2019 - Scaling your cluster (both ways)
 
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
 
Dockercon 2019 Developing Apps with Containers, Functions and Cloud Services
Dockercon 2019 Developing Apps with Containers, Functions and Cloud ServicesDockercon 2019 Developing Apps with Containers, Functions and Cloud Services
Dockercon 2019 Developing Apps with Containers, Functions and Cloud Services
 
GIDS 2019: Developing Apps with Containers, Functions and Cloud Services
GIDS 2019: Developing Apps with Containers, Functions and Cloud ServicesGIDS 2019: Developing Apps with Containers, Functions and Cloud Services
GIDS 2019: Developing Apps with Containers, Functions and Cloud Services
 
Docker Enterprise Workshop - Intro
Docker Enterprise Workshop - IntroDocker Enterprise Workshop - Intro
Docker Enterprise Workshop - Intro
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - Technical
 
The Tao of Docker - ITES 2018
The Tao of Docker - ITES 2018The Tao of Docker - ITES 2018
The Tao of Docker - ITES 2018
 
Moby KubeCon 2017
Moby KubeCon 2017Moby KubeCon 2017
Moby KubeCon 2017
 
Microsoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and MicrosoftMicrosoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and Microsoft
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
 
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with Docker
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with DockerDocker Meetup Feb 2018 Develop and deploy Kubernetes Apps with Docker
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with Docker
 
DockerCon EU 2017 Recap
DockerCon EU 2017 RecapDockerCon EU 2017 Recap
DockerCon EU 2017 Recap
 
Docker Innovation Culture
Docker Innovation CultureDocker Innovation Culture
Docker Innovation Culture
 
The Tao of Docker - Devfest Nantes 2017
The Tao of Docker - Devfest Nantes 2017The Tao of Docker - Devfest Nantes 2017
The Tao of Docker - Devfest Nantes 2017
 
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017
 
Moby Introduction - June 2017
Moby Introduction - June 2017Moby Introduction - June 2017
Moby Introduction - June 2017
 
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logicielsDocker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 Recap
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby project
 

Último

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
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
 
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
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
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
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 

Último (20)

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
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
 
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
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
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)
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 

Cloud Foundry OpenTour Kiev Keynote

  • 1. Cloud Foundry The Open Platform as a Service Patrick Chanezon Senior Director Developer Relations chanezonp@vmware.com @chanezon Cloud Foundry OpenTour, Kiev, April 2012 Tuesday, April 24, 12
  • 2. P@ in a nutshell • French, based in San Francisco • Senior Director, Developer Relations,VMware • Software Plumber, API guy, mix of Enterprise and Consumer • 18 years writing software, backend guy with a taste for javascript • 2 y Accenture (Notes guru), 3 y Netscape/AOL (Servers, Portals), 5 y Sun (ecommerce, blogs, Portals, feeds, open source) • 6 years at Google, API guy (first hired, helped start the team) • Adwords, Checkout, Social, HTML5, Cloud Tuesday, April 24, 12
  • 3. Dreams Of my childhood 3 Tuesday, April 24, 12
  • 4. Accelerando / Singularity, in a Galaxy far far away § Even if we automate ourselves out of a job every 10 years § ...I don’t think the singularity is near! 4 Tuesday, April 24, 12
  • 5. Moore's Law is for Hardware Only § Does not apply to software § Productivity gains not keeping up with hardware and bandwidth § Writing software is hard, painful, and still very much a craft 5 Tuesday, April 24, 12
  • 6. Moore's Law’s free lunch is over § Herb Sutter, Welcome to the Jungle http://herbsutter.com/welcome-to-the-jungle/ 6 Tuesday, April 24, 12
  • 7. Future “The future is already here — it's just not very evenly distributed” William Gibson 7 Tuesday, April 24, 12
  • 8. Haiku - Skylark “Trampling on clouds, inhaling the mist, the skylark soars” —SHIKI 8 Tuesday, April 24, 12
  • 9. Haiku - Frog “Crouching, studying the clouds— a frog” CHIYO-JO 9 Tuesday, April 24, 12
  • 10. Architecture Changes: 60’s Mainframe Tuesday, April 24, 12
  • 11. Architecture Changes: 80’s Client-Server Tuesday, April 24, 12
  • 12. Architecture Changes: 90’s Web Tuesday, April 24, 12
  • 13. Architecture Changes: 2010’s Cloud, HTML5, Mobile Tuesday, April 24, 12
  • 14. Back to Client Server: Groovy Baby! 14 Tuesday, April 24, 12
  • 15. What is Cloud Computing? Cloud According to my daughter Eliette 15 Tuesday, April 24, 12
  • 16. What is Cloud Computing? Cloud at Михайлівський золотоверхий монастир 16 Tuesday, April 24, 12
  • 17. Cloud Stack - Classic Pyramid Software As A Service Platform As A Service Infrastructure As A Service 17 Tuesday, April 24, 12
  • 18. Cloud Stack - By Value Software As A Service Platform As A Service Infrastructure As A Service 18 Tuesday, April 24, 12
  • 19. Cloud Stack - History § What does cloud mean, 4 main angles • Software 1994 Netscape • Infrastructure 2002 Amazon AWS • Platform 2008 Google • Development now! § Industrialization of hardware and software infrastructure like electricity beginning of 20th century § But software development itself is moving towards craftmanship 19 Tuesday, April 24, 12
  • 20. Cloud started at Consumer websites solving their needs • Google, Amazon, Yahoo, Facebook, Twitter • Large Data Sets • Storage Capacity growing faster than Moore’s Law • Fast Networks • Horizontal -> Vertical scalability • Open Source Software • Virtualization • Cloud is a productization of these infrastructures • Public Clouds Services: Google, Amazon • Open Source Software: Hadoop, Eucalyptus, Ubuntu, Cloud Foundry Tuesday, April 24, 12
  • 21. Infrastructure 21 Tuesday, April 24, 12
  • 22. IaaS/Virtualization getting mainstream § AWS, Joyent, Rackspace,... § Open Source projects: OpenStack, DeltaCloud, Eucalyptus § Automation: Chef, Juju § Standardization? DMTF § Inside the Firewall, Virtualization: VMware, Microsoft, Xen, KVM § 50% of workloads are virtualized § Easy to provision, manage instance...BUT § Still need to manage backups, software stacks, monitor, upgrades 22 Tuesday, April 24, 12
  • 23. With Infrastructure, you still need to build your own platform § Need to build a distributed platform on top of you infrastructure § Story of the AWS meltdown from last summer • http://blog.reddit.com/2011/03/why-reddit-was-down-for-6-of-last-24.html • http://www.readwriteweb.com/cloud/2010/12/chaos-monkey-how-netflix- uses.php • http://news.ycombinator.com/item?id=2477296 • http://stu.mp/2011/04/the-cloud-is-not-a-silver-bullet.html § Twilio, Smugmug, SimpleGeo survived it because they built their own distributed platform on top of IaaS § Enterprise customers want to consider Infrastructure like CDNs • Multi Cloud usage • Based on Open Source de facto standards, or full standards whenever that happens 23 Tuesday, April 24, 12
  • 24. Platforms 24 Tuesday, April 24, 12
  • 25. Platforms § Raise the Unit of currency to be application & services instead of infrastructure § Google App Engine, Cloud Foundry, Joyent, Heroku, Stax (Cloudbees), Amazon elastic beanstalk, Microsoft Azure, AppFog § Single or a few languages, services § Start of Multi language Polyglot platforms § Enabler for Agile Developers -> Create Business value faster § Lack of standards: risk, vendor lock-in § Enterprise needs: • Control, customizability • Private/Hybrid Cloud • Avoid lock-in 25 Tuesday, April 24, 12
  • 27. Agility as a survival skill § Consumer software is becoming like fashion • Phone apps, social apps, short lifetime, fast lifecycles • Ab testing § Clay shirky situational apps § Kent Beck, Usenix 2011 Talk, “Software G-Forces” change in software process when frequency grows § Cloud Platforms enables an Agile culture, driver for innovation • Scalability is built in the platforms • Can iterate faster • Focus on design § Cloud Platforms lets developers focus on driving business value 27 Tuesday, April 24, 12
  • 28. Main Risk: Lock-In Welcome to the hotel california Such a lovely place Such a lovely face Plenty of room at the hotel california Any time of year, you can find it here Last thing I remember, I was Running for the door I had to find the passage back To the place I was before ’relax,’ said the night man, We are programmed to receive. You can checkout any time you like, But you can never leave! 28 Tuesday, April 24, 12
  • 29. Cloud Foundry: The Open PaaS • Open Source: Apache 2 Licensed • multi language/frameworks • multi services • multi cloud Ap ce pli vFabric rfa Postgres Private ca nte Data Services tio Clouds rI n e Se Public vid vFabric RabbitMQTM rvi Cloud ro Msg Services ce dP Micro ou Other Cloud Cl Services 29 Tuesday, April 24, 12
  • 30. Open Source 30 Tuesday, April 24, 12
  • 31. Open Source Advantage § http://code.google.com/p/googleappengine/issues/detail?id=13 • https://github.com/cloudfoundry/vcap/pull/25 31 Tuesday, April 24, 12
  • 32. CloudFoundry.org 32 Tuesday, April 24, 12
  • 33. Cloud Foundry Open Source Workflow 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 33 Tuesday, April 24, 12
  • 34. Multi Cloud 34 Tuesday, April 24, 12
  • 35. CloudFoundry.COM Cloud Foundry Runtimes & Frameworks Services vCenter / vSphere Infrastructure 35 Tuesday, April 24, 12
  • 36. Cloud Foundry.ORG Cloud Foundry The Source Code to Compile & Build Cloud Foundry vCenter / vSphere Download Setup Setup Scripts Deploy Code Environment Behind Firewall 36 Tuesday, April 24, 12
  • 37. Micro Cloud Foundry Micro 37 Tuesday, April 24, 12
  • 38. What is a Micro Cloud? Or Entire Cloud Running inside of a single VM 38 Tuesday, April 24, 12
  • 39. What is in Micro Cloud Foundry? .COM Dynamic Updating DNS App Instances Services Open source Platform as a Service project 10.04 39 Tuesday, April 24, 12
  • 40. Other Cloud Foundry powered PaaS Private PaaS Added Python and Perl Public PaaS Added PHP Tier3 and Uhuru recently added .NET support 40 Tuesday, April 24, 12
  • 41. Register today http://cloudfoundry.com/signup Use Promo Code CFOpenTour2012 To avoid approval queue waiting time 41 Tuesday, April 24, 12
  • 42. Cloud Foundry BOSH 42 Tuesday, April 24, 12
  • 43. 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 43 Tuesday, April 24, 12
  • 44. 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 44 Tuesday, April 24, 12
  • 45. 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 45 Tuesday, April 24, 12
  • 46. 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 46 Tuesday, April 24, 12
  • 47. Cloud for Developers: the true path is PaaS! 47 Tuesday, April 24, 12
  • 48. Development As A Service 48 Tuesday, April 24, 12
  • 49. Development § Final frontier, happening now § Not whole product yet § Social Coding: Google code, Github § Web IDEs: Cloud9, Exo, Orion § Higher level case tools, Wavemaker, Orangescape, Runmyprocess § Continuous Integration: Jenkins, Cloudbees, OpenShift § Test: feature of cloud platforms § Knowledge Sharing: StackOverflow 49 Tuesday, April 24, 12
  • 50. Demo Exo Cloud IDE Mark Downey Cloud Services Product Manager, Exo Platforms Twitter: @marksdowney 50 Tuesday, April 24, 12
  • 51. Lessons for Developers 51 Tuesday, April 24, 12
  • 52. Predictions § Software is becoming like fashion, design rules § Welcome to Babel, use the best tool for the job, embrace multiple language & heterogeneity § Our jobs will change, build yourself out of your current job § Sysadmin jobs will morph, there will be less of them § Many opportunities open when you embrace change 52 Tuesday, April 24, 12
  • 53. Things to Forget § First normal form § Waterfall model § Single server deployment § Single language skill § Build everything from scratch § Build custom infrastructure 53 Tuesday, April 24, 12
  • 54. Things to Learn • Agile • Take risks, fail often, fail fast and learn • API Design: create the API first • UI Design, Javacript, HTML5, CSS3 • A/B Testing • Open Source, Open Standards • Architecture, Distributed Computing (CAP theorem, 8 fallacies) • Cloud Platforms and APIs • Multiple types of languages (imperative, object, functional, logic) • Ability to encapsulate domain knowledge in a DSL • Build on the shoulders of giants: reuse, REST APIs • Pick your battles, choose what you need to build yourself to add value • Learn to live in a box (embrace platform limitations) to think outside the box • Use an App Store for distribution • Consider your career as a startup 54 Tuesday, April 24, 12
  • 56. Such stuff as dreams are made on § Like a kid on a candy store: there's never been a better time to be a software developer! § Welcome to the Cloud: embrace change and reinvent yourselves § “The future is already there, not evenly distributed” Gibson § We Developers, invent the future today 56 Tuesday, April 24, 12
  • 57. sample app polyglot in action by Mark Lucovsky 57 developer perspective v2.0 Tuesday, April 24, 12
  • 58. 58 developer perspective v2.0 Tuesday, April 24, 12
  • 59. stac2: load generation system - jQuery, jQuery UI json-p stac2 - 2 x 128mb - haml templates frontend - ruby 1.8.7, sinatra - 100% JS based UI smtp http json email - 16 x 128mb* api server - node.JS, 0.6.8 reports rpush redis api redis blpop redis api blpop - 96 x 128mb - 16 x 128mb* - ruby 1.8.7, sinatra vmc worker http worker - node.JS, 0.6.8 * - api server and http worker share the same node.JS process/instance 59 developer perspective v2.0 Tuesday, April 24, 12
  • 60. deployment instructions $ cd ~/stac2 $ vmc push 60 developer perspective v2.0 Tuesday, April 24, 12
  • 61. how is this possible? $  cd  ~/stac2;  cat  manifest.yml applications:    ./nabh:        instances:  16        mem:  128M        runtime:  node06        url:  ${name}.${target-­‐base}        services:            nab-­‐redis:                type:  :redis ./nabv:        instances:  96        mem:  128M          runtime:  ruby18        url:  ${name}.${target-­‐base}        services:            nab-­‐redis:                type:  :redis ./stac2:        instances:  2        mem:  128M          runtime:  ruby18        url:  ${name}.${target-­‐base} 61 developer perspective v2.0 Tuesday, April 24, 12
  • 62. design tidbits • producer/consumer pattern using rpush/blpop • node.JS: multi-server and high performance async i/o • caldecott – aka vmc tunnel for debugging • redis sorted sets for stats collection • redis expiring keys for rate calculation 62 developer perspective v2.0 Tuesday, April 24, 12
  • 63. producer/consumer • core design pattern • found at the heart of many complex apps classic mode: - thread pools - semaphore/mutex, completion ports, etc. - scalability limited to visibility of the work queue producer work work queue work consumer cloud foundry mode: - instance pools - redis rpush/blpop, rabbit queues, etc. - full horizontal scalability, cloud scale 63 developer perspective v2.0 Tuesday, April 24, 12
  • 64. producer/consumer: code //  producer function  commit_item(queue,  item)  {    //  push  the  work  item  onto  the  proper  queue      redis.rpush(queue,  item,  function(err,  data)  {        //  optionally  trim  the  queue,  throwing  away        //  data  as  needed  to  ensure  the  queue  does        //  not  grow  unbounded        if  (!err  &&  data  >  queueTrim)  {            redis.ltrim(queue,  0,  queueTrim-­‐1);        }          }); } //  consumer function  worker()  {    //  blocking  wait  for  workitems    blpop_redis.blpop(queue,  0,  function(err,  data)  {                //  data[0]  ==  queue,  data[1]  ==  item        if  (!err)  {            doWork(data[1]);        }        process.nextTick(worker);          }); 64 developer perspective v2.0 Tuesday, April 24, 12
  • 65. node.JS multi-server: http API server //  the  api  server  handles  two  key  load  generation  apis //  /http  –  for  http  load,  /vmc  for  Cloud  Foundry  API  load var  routes  =  {“/http”:  httpCmd,  “/vmc”:  vmcCmd} //  http  api  server  booted  by  app.js,  passing  redis  client //  and  Cloud  Foundry  instance   function  boot(redis_client,  cfinstance)  {    var  redis  =  redis_client;        function  onRequest(request,  response)  {        var  u  =  url.parse(request.url);        var  path  =  u.pathname;        if  (routes[path]  &&  typeof  routes[path]  ==  ‘function’)  {            routes[path](request,  response);        }  else  {            response.writeHead(404,  {‘Content-­‐Type’:  ‘text/plain’});            response.write(‘404  Not  Found’);            response.end();        }    }    server  =  http.createServer(onRequest).listen(cfinstance[‘port’]); } 65 developer perspective v2.0 Tuesday, April 24, 12
  • 66. node.JS multi-server: blpop server var  blpop_redis  =  null; var  status_redis  =  null; var  cfinstance  =  null; //  blpop  server  handles  work  requests  for  http  traffic //  that  are  placed  on  the  queue  by  the  http  API  server //  another  blpop  server  sits  in  the  ruby/sinatra  VMC  server function  boot(r1,  r2,  cfi)  {    //  multiple  redis  clients  due  to  concurrency  constraints    blpop_redis  =  r1;    status_redis  =  r2;    cfinstance  =  cfi;    worker(); } //  this  is  the  blpop  server  loop function  worker()  {    blpop_redis.blpop(queue,  0,  function(err,  data)  {        if  (!err)  {            doWork(data[1]);        }        process.nextTick(worker);          }); } 66 developer perspective v2.0 Tuesday, April 24, 12
  • 67. caldecott: aka vmc tunnel #  create  a  caldecott  tunnel  to  the  redis  server $  vmc  tunnel  nab-­‐redis  redis-­‐cli Binding  Service  [nab-­‐redis]:  OK … Launching  'redis-­‐cli  -­‐h  localhost  -­‐p  10000  -­‐a  ...’   #  enumerate  the  keys  used  by  stac2 redis>  keys  vmc::staging::* 1)  “vmc::staging::actions::time_50” 2)  “vmc::staging::active_workers” … #  enumerate  actions  that  took  less  that  50ms redis>  zrange  vmc::staging::actions::time_50  0  -­‐1  withscores 1)  “delete_app” 2)  “1” 3)  “login” 4)  “58676” 5)  “info” 6)  “80390” #  see  how  many  work  items  we  dumped  due  to  concurrency  constraint redis>  get  vmc::staging::wastegate “7829” 67 developer perspective v2.0 Tuesday, April 24, 12
  • 68. redis sorted sets for stats collection #  log  action  into  a  sorted  set,  net  result  is  set  contains #  actions  and  the  number  of  times  the  action  was  executed #  count  total  action  count,  and  also  per  elapsed  time  bucket def  logAction(action,  elapsedTimeBucket)      #  actionKey  is  the  set  for  all  counts    #  etKey  is  the  set  for  a  particular  time  bucket  e.g.,  _1s,  _50ms    actionKey  =  “vmc::#{@cloud}::actions::action_set”    etKey  =  “vmc::#{@cloud}::actions::times#{elapsedTimeBucket}”    @redis.zincrby  actionKey,  1,  action    @redis.zincrby  etKey,  1,  action end #  enumerate  actions  and  their  associated  count redis>  zrange  vmc::staging::actions::action_set  0  -­‐1  withscores 1)  “login” 2)  “212092” 3)  “info” 4)  “212093” #  enumerate  actions  that  took  between  400ms  and  1s redis>  zrange  vmc::staging::actions::time_400_1s  0  -­‐1  withscores 1)  “create-­‐app” 2)  “14” 3)  “bind-­‐service” 4)  “75” 68 developer perspective v2.0 Tuesday, April 24, 12
  • 69. redis incrby and expire for rate calcs #  to  calculate  rates  (e.g.,  4,000  requests  per  second) #  we  use  plain  old  redis.incrby.  the  trick  is  that  the   #  key  contains  the  current  1sec  timestamp  as  it’s  suffix  value #  all  activity  that  happens  within  this  1s  period  accumulates #  in  that  key.  by  setting  an  expire  on  the  key,  the  key  is   #  automatically  deleted  10s  after  last  write def  logActionRate(cloud)    tv  =  Time.now.tv_sec    one_s_key  =  "vmc::#{cloud}::rate_1s::#{tv}"    #  increment  the  bucket  and  set  expires,  key    #  will  eventually  expires  Ns  after  the  last  write    @redis.incrby  one_s_key,  1    @redis.expire  one_s_key,  10 end #  return  current  rate  by  looking  at  the  bucket  for  the  previous   #  one  second  period.  by  looking  further  back  and  averaging,  we   #  can  smooth  the  rate  calc def  actionRate(cloud)    tv  =  Time.now.tv_sec  -­‐  1    one_s_key  =  "vmc::#{cloud}::rate_1s::#{tv}"    @redis.get  one_s_key end 69 developer perspective v2.0 Tuesday, April 24, 12
  • 70. stac2 demo -or- screencast 70 developer perspective v2.0 Tuesday, April 24, 12
  • 71. stac2 demo -or- screencast 70 developer perspective v2.0 Tuesday, April 24, 12
  • 72. Cloud Foundry Resources Primary Site : cloudfoundry.com Open Source Site : cloudfoundry.org Twitter : @cloudfoundry , hash tag #cfoundry Blog : blog.cloudfoundry.com FB : facebook.com/cloudfoundry Support : support.cloudfoundry.com • Documentation • Knowledge Base • Q & A / Forums We’re hiring: www.cloudfoundry.com/jobs 71 Tuesday, April 24, 12
  • 73. Community Oleg Zhurakousky Senior Software Engineer, SpringSource/VMware Twitter: @z_oleg 72 Tuesday, April 24, 12
  • 74. Questions 73 Tuesday, April 24, 12 ?
  • 75. Thank You! t @CloudFoundry t @chanezon Website : www.cloudfoundry.com Blog : blog.cloudfoundry.com Forum : support.cloudfoundry.com Tuesday, April 24, 12
  • 76. Books / Articles § Nick Carr, The Big Switch § Eric Raymond, The Art of Unix Programming § Weinberg, Psychology of Computer Programming § Wes python book § Mark html5 book § Kent Beck XP § Hunt, Thomas, The Pragmatic Programmer § Ade Oshineye, Apprenticeship Patterns § Matt Cutt's Ignite Talk IO 2011, Trying different things § Josh Bloch talk about api design § Larry and Sergey, Anatomy of a Search Engine § Rob Pike, The Practice of Programming 75 Tuesday, April 24, 12
  • 77. Papers / Talks § Simon Wardley, Oscon 09 “Cloud - Why IT Matters” § Tim O’Reilly article on internet os § Peter Deutsch’s 8 Fallacies of Distributed Computing § Brewer’s CAP Theorem § Gregor Hohpe’s Starbucks Does Not Use Two-Phase Commit § Stuff I tag http://www.delicious.com/chanezon/ § More specifically http://www.delicious.com/chanezon/cloudfoundry § My previous Talks http://www.slideshare.net/chanezon § My list of favorite books http://www.chanezon.com/pat/soft_books.html 76 Tuesday, April 24, 12
  • 78. Acknowledgement § Drawings from my daughters Eliette § Slides from Dave McCrory, Derek Collison, Duke Leto § Haiku from Addiss, Stephen; Yamamoto, Fumiko; Yamamoto, Fumiko Y.; Yamamoto, Akira Y. (2011-06-22). Haiku: An Anthology of Japanese Poems (Shambhala Library) § Painting Hiroshige, Sengai 77 Tuesday, April 24, 12