What's Next? Paris - Adrian Colyer Keynote

  • 1,129 views
Uploaded on

Adrian's keynote slides from What's Next? Paris - 26th May 2011. Watch out for the full InfoQ recording of the session coming soon.

Adrian's keynote slides from What's Next? Paris - 26th May 2011. Watch out for the full InfoQ recording of the session coming soon.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,129
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Enterprise  Apps  in  2011   and  beyond   Adrian Colyer VMware @adriancolyer
  • 2. 1. Big Picture Stuff 2. Open PaaS3. Application implications
  • 3. major  forces  that  impact  the  way  we  develop  and  deploy  applica;ons  PART  I:  THE  BIG  PICTURE  
  • 4. language,new ways to tools,access fworks, data, enterprise services, apps designnew modes of new deploymentinteraction options
  • 5. new ways toaccess client and server-side implications
  • 6.          Greenhouse  
  • 7. new modes of interactionsocial commentary social objects social entities
  • 8. cross-­‐store  persistence  
  • 9. cross-­‐store  persistence  
  • 10. blobBIG column document graph key-valuedata map-reduce relational!
  • 11. development andnew  deployment  op;ons   public traditional private PaaS hybrid
  • 12.  why  PaaS?   •  eliminate tickets •  business agility •  cost models •  scalability •  low barrier to entry
  • 13. this  changes  everything  PART  II:  OPEN  PAAS  
  • 14. Cloud  Foundry  –  Open  PaaS   •  www.cloudfoundry.com •  www.cloudfoundry.org
  • 15. choice  of  frameworks   Cloud Foundry
  • 16. choice  of  applica;on  services   Data  Services   Msg  Services   Other  Services  
  • 17. choice  of  clouds  Data  Services   Private     Clouds     Public   Msg  Services   Clouds   Micro   Other  Services   Clouds  
  • 18. cloud  foundry  :  the  open  paas   Data  Services   Private     Clouds     Msg  Services   Public   Clouds   Micro   Other  Services   Clouds  
  • 19. $
  • 20. $ vmc info
  • 21. $ vmc info VMwares Cloud Application Platform For support visit support@cloudfoundry.com Target: http://api.cloudfoundry.com (v0.999) Client: v0.3.4 User: acolyer@vmware.com Usage: Memory (512.0M of 2.0G total) Services (2 of 16 total) Apps (1 of 20 total) $
  • 22. $ vmc info VMwares Cloud Application Platform For support visit support@cloudfoundry.com Target: http://api.cloudfoundry.com (v0.999) Client: v0.3.4 User: acolyer@vmware.com Usage: Memory (512.0M of 2.0G total) Services (2 of 16 total) Apps (1 of 20 total) $ vmc apps
  • 23. For support visit support@cloudfoundry.com Target: http://api.cloudfoundry.com (v0.999) Client: v0.3.4 User: acolyer@vmware.com Usage: Memory (512.0M of 2.0G total) Services (2 of 16 total) Apps (1 of 20 total) $ vmc apps +-------------+----+---------+-----------------------------+----------+ | Application | # | Health | URLS | Services | +-------------+----+---------+-----------------------------+----------+ | showcase | 1 | RUNNING | showcase.cloudfoundry.com | | | hello-node | 1 | STOPPED | hello-node.cloudfoundry.com | | +-------------+----+---------+-----------------------------+----------+ $
  • 24. For support visit support@cloudfoundry.com Target: http://api.cloudfoundry.com (v0.999) Client: v0.3.4 User: acolyer@vmware.com Usage: Memory (512.0M of 2.0G total) Services (2 of 16 total) Apps (1 of 20 total) $ vmc apps +-------------+----+---------+-----------------------------+----------+ | Application | # | Health | URLS | Services | +-------------+----+---------+-----------------------------+----------+ | showcase | 1 | RUNNING | showcase.cloudfoundry.com | | | hello-node | 1 | STOPPED | hello-node.cloudfoundry.com | | +-------------+----+---------+-----------------------------+----------+ $ vmc services
  • 25. +-------------+----+---------+-----------------------------+----------+ | Application | # | Health | URLS | Services | +-------------+----+---------+-----------------------------+----------+ | showcase | 1 | RUNNING | showcase.cloudfoundry.com | | | hello-node | 1 | STOPPED | hello-node.cloudfoundry.com | | +-------------+----+---------+-----------------------------+----------+ $ vmc services ============== System Services ============== +----------+---------+-------------------------------+ | Service | Version | Description | +----------+---------+-------------------------------+ | rabbitmq | 2.4 | RabbitMQ message queue | | mysql | 5.1 | MySQL database service | | mongodb | 1.8 | MongoDB NoSQL store | | redis | 2.2 | Redis key-value store service | +----------+---------+-------------------------------+ =========== Provisioned Services ============ +----------+----------+ | Name | Service | +----------+----------+ | mybroker | rabbitmq | | mydb | mysql | +----------+----------+
  • 26. $ vmc frameworks +---------+ | Name | +---------+ | node | | spring | | rails3 | | grails | | sinatra | +---------+ $
  • 27. $ vmc frameworks +---------+ | Name | +---------+ | node | | spring | | rails3 | | grails | | sinatra | +---------+ $ vmc runtimes
  • 28. | node | | spring | | rails3 | | grails | | sinatra | +---------+ $ vmc runtimes +--------+-------------+-----------+ | Name | Description | Version | +--------+-------------+-----------+ | node | Node.js | 0.4.5 | | java | Java 6 | 1.6 | | ruby18 | Ruby 1.8 | 1.8.7 | | ruby19 | Ruby 1.9 | 1.9.2p180 | +--------+-------------+-----------+ $
  • 29. $ cd myapp myapp$ vmc push whatsnext Would you like to deploy from the current directory? [Yn]: Y Application Deployed URL: whatsnext.cloudfoundry.com? Detected a Java SpringSource Spring Application, is this correct?[Yn]: Memory Reservation [Default:512M] (64M, 128M, 256M, 512M or 1G) Creating Application: OK Would you like to bind any services to whatsnext? [yN]: N Uploading Application: Checking for available resources: OK Processing resources: OK Packing application: OK Uploading (8K): OK Push Status: OK Starting Application: OK myapp$
  • 30. $ vmc instances whatsnext +-------+---------+--------------------+ | Index | State | Start Time | +-------+---------+--------------------+ | 0 | RUNNING | 05/23/2011 03:36PM | +-------+---------+--------------------+ $
  • 31. $ vmc instances whatsnext +-------+---------+--------------------+ | Index | State | Start Time | +-------+---------+--------------------+ | 0 | RUNNING | 05/23/2011 03:36PM | +-------+---------+--------------------+ $ vmc instances whatsnext 3 Scaling Application instances up to 3: OK $
  • 32. $ vmc instances whatsnext +-------+---------+--------------------+ | Index | State | Start Time | +-------+---------+--------------------+ | 0 | RUNNING | 05/23/2011 03:36PM | +-------+---------+--------------------+ $ vmc instances whatsnext 3 Scaling Application instances up to 3: OK $ vmc instances whatsnext
  • 33. $ vmc instances whatsnext 3 Scaling Application instances up to 3: OK $ vmc instances whatsnext +-------+---------+--------------------+ | Index | State | Start Time | +-------+---------+--------------------+ | 0 | RUNNING | 05/23/2011 03:36PM | | 1 | RUNNING | 05/23/2011 03:46PM | | 2 | RUNNING | 05/23/2011 03:46PM | +-------+---------+--------------------+ $
  • 34. other  vmc  commands  •  create-­‐service  <service>  <name>  <app>  •  bind-­‐service  <servicename>  <appname>  •  unbind-­‐service  <servicename>  <appname>  •  update  <appname>  •  map  <appname>  <url>  •  logs  <appname>  •  stats  <appname>  •  target  <url>  •  …  
  • 35. Applica;on  Concepts   All  of  the  code,  libraries,  and,  data  that  are  needed  in   my  code   order  to  run  my  code  on  a  system  supplied  stack   Instances  make  my  applica;on  scale.  The  more   instances  the  more  load  the  app  can  handle   My  app  is  URL  addressable  and  can  have  mul;ple  URLs,   http://www.foo some  clouds  allow  custom  domains   Services  are  used  to  extend  an  applica;on  with  higher   level  func;ons  like  a  KV  store  or  email  gateway  Applica;on  Tools   $  vmc  update  myapp $  vmc  apps vmc  (command  line  tool)  and  STS  plugin  (IDE)  are  the   primary  tools  used  by  developers   $  vm
  • 36. $ grails prod cf-push
  • 37. Sends droplet heart beats and exit messages Router Router Registers and Registers and unregisters unregisters Routes REST API Routes droplet requests requests Droplet change notifications Droplet Cloud Controller OrchestratesHealth Manager start/stop Cloud Controller (Start, Stop, Find) Droplet Execution requests Agent (DEA)Periodically scans Persists droplets for consistency and provisioned Guest applications Advertise services consume Cloud Service Controller Provision and Database unprovision Service "A" Provision Service and "A" Provisioning Agent unprovision
  • 38. and  it’s  only  just  the  beginning…  PART  III:  WHAT  PAAS  MEANS  FOR  APPS  &  SERVICES  
  • 39. applica;on  enablers  •  polyglot  applica;ons  •  service  consump;on  •  web  of  services  
  • 40. full description and links to source athttp://blog.springsource.com
  • 41. ;cker-­‐sample   browser socket.io store ingenerate subscribe mongoticker tickerevents stream subscribe update min, max, ticker avg. stream
  • 42. web  of  services  lot oflittleservicesinfrastructure …services
  • 43. applica;on  challenges  •  portability  •  elas;c  scaling  •  cloud-­‐burs;ng  and  other  hybrid   scenarios  •  monitoring  
  • 44. environment  beans  <beans profile="cloud"> <cloud:datasource id="dataSource"/> </beans> <beans profile="default"> <jdbc:embedded-database id="dataSource"/> </beans> @Profile("production") …
  • 45. elas;c  scaling  •  no  silver  bullets  •  design  for  scale   -­‐  think  about  data,   -­‐  deployment  units,   -­‐  messaging  
  • 46. design  for  scale   application database
  • 47. design  for  scale   app app sessionsmsg fabric app data app app app ref data app data fabric database
  • 48. cloud  foundry  example   system  load  balancer   elas;c  pool   redis   mysql   front_end   front_end   rabbitMQ   elas;c  pool   mongodb   back_end  
  • 49. #  create  the  front  end  and  backend  apps#  front  end  is  small  but  multi-­‐instancevmc  push  fe  –instances  8  –mem  64M  –path  ../fe_codevmc  push  be  –instances  2  –mem  256M  –path  ../be_code#  create  the  services  and  bind  per  specvmc  create-­‐service  mysql  –name  mysql  –bind  fevmc  create-­‐service  mongodb  –name  mongo  –bind  bevmc  create-­‐service  rabbit  –name  rabbit  –bind  fevmc  create-­‐service  redis  –name  redis  –bind  fevmc  bind-­‐service  redis  bevmc  bind-­‐service  rabbit  be#  to  perform  an  update  of  codevmc  update  fe  –path  ../new_fe_codevmc  update  be  –path  ../new_be_code
  • 50. the data’s overthere!
  • 51. thank  you  for  listening  PART  IV:  IN  CONCLUSION  
  • 52. language,new ways to tools,access fworks, data, enterprise services, apps designnew modes of new deploymentinteraction options
  • 53. thank  you   Adrian Colyer VMware @adriancolyer