SlideShare une entreprise Scribd logo
1  sur  57
Enterprise	
  Apps	
  in	
  2011	
  
     and	
  beyond	
  


                              Adrian Colyer
                                   VMware
                              @adriancolyer
1. Big Picture Stuff

              2. Open
                 PaaS


3. Application implications
major	
  forces	
  that	
  impact	
  the	
  way	
  we	
  develop	
  and	
  deploy	
  applica;ons	
  

PART  I:  THE  BIG  PICTURE  
language,
new ways to                tools,
access                     fworks,
                           data,
         enterprise        services,
            apps           design


new modes of          new deployment
interaction           options
new ways to
access




              client and server-side
                        implications
 	
  	
  	
  	
  Greenhouse	
  
new modes of interaction
social commentary




                                  social
                                  objects




                social entities
cross-­‐store	
  persistence	
  
cross-­‐store	
  persistence	
  
blob


BIG    column
       document
       graph
       key-value

data   map-reduce
       relational!
development and
new	
  deployment	
  op;ons	
  

                                  public
 traditional                      private
                    PaaS
                                  hybrid
 why	
  PaaS?	
  




                       •  eliminate tickets
                       •  business agility
                       •  cost models
                       •  scalability
                       •  low barrier to entry
this	
  changes	
  everything	
  

PART  II:  OPEN  PAAS  
Cloud	
  Foundry	
  –	
  Open	
  PaaS	
  




      •  www.cloudfoundry.com
      •  www.cloudfoundry.org
choice	
  of	
  frameworks	
  


                 Cloud
                Foundry
choice	
  of	
  applica;on	
  services	
  




     Data	
  Services
                    	
  




                  Msg	
  Services
                                	
  




                                   Other	
  Services
                                                   	
  
choice	
  of	
  clouds	
  




Data	
  Services
               	
  
                                                                      Private	
  	
  
                                                                      Clouds	
  	
  

                                                              Public	
  
             Msg	
  Services
                           	
  
                                                              Clouds	
  

                                                     Micro	
  
                              Other	
  Services
                                              	
     Clouds	
  
cloud	
  foundry	
  :	
  the	
  open	
  paas	
  




      Data	
  Services
                     	
  
                                                                           Private	
  	
  
                                                                           Clouds	
  	
  


                   Msg	
  Services
                                 	
  
                                                                   Public	
  
                                                                   Clouds	
  

                                                           Micro	
  
                                    Other	
  Services
                                                    	
  
                                                           Clouds	
  
$
$ vmc info
$ vmc info	

VMware's 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 info	

VMware's 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
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 |            |	
+-------------+----+---------+-----------------------------+----------+	


$
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
+-------------+----+---------+-----------------------------+----------+	
| 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    |	
+----------+----------+
$ vmc frameworks	
+---------+	
| Name    |	
+---------+	
| node    |	
| spring |	
| rails3 |	
| grails |	
| sinatra |	
+---------+	

$
$ vmc frameworks	
+---------+	
| Name    |	
+---------+	
| node    |	
| spring |	
| rails3 |	
| grails |	
| sinatra |	
+---------+	

$ vmc runtimes
| 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 |	
+--------+-------------+-----------+	

$
$ 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$
$ vmc instances whatsnext	

+-------+---------+--------------------+	
| Index | State   | Start Time         |	
+-------+---------+--------------------+	
| 0     | RUNNING | 05/23/2011 03:36PM |	
+-------+---------+--------------------+	

$
$ 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	

+-------+---------+--------------------+	
| 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
$ 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 |	
+-------+---------+--------------------+ 	

$
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>	
  
•    …	
  
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
$ grails prod cf-push
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             Orchestrates
Health 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
and	
  it’s	
  only	
  just	
  the	
  beginning…	
  

PART  III:  WHAT  PAAS  MEANS  FOR  
APPS  &  SERVICES  
applica;on	
  enablers	
  
•  polyglot	
  applica;ons	
  
•  service	
  consump;on	
  
•  web	
  of	
  services	
  
full description and links to source at
http://blog.springsource.com
;cker-­‐sample	
  
 browser
       socket.io



                           store in
generate       subscribe   mongo
ticker         ticker
events         stream




      subscribe                       update min, max,
      ticker                          avg.
      stream
web	
  of	
  services	
  


lot of
little
services




infrastructure                          …
services
applica;on	
  challenges	
  
•  portability	
  
•  elas;c	
  scaling	
  
•  cloud-­‐burs;ng	
  and	
  other	
  hybrid	
  
   scenarios	
  
•  monitoring	
  
environment	
  beans	
  

<beans profile="cloud">	
  <cloud:datasource id="dataSource"/>	
</beans>	

<beans profile="default">	
  <jdbc:embedded-database 	
     id="dataSource"/>	
</beans>	

@Profile("production")	
…
elas;c	
  scaling	
  
•  no	
  silver	
  bullets	
  
•  design	
  for	
  scale	
  
    -­‐  think	
  about	
  data,	
  
    -­‐  deployment	
  units,	
  
    -­‐  messaging	
  
design	
  for	
  scale	
  


                    application




                     database
design	
  for	
  scale	
  

        app          app                 sessions



msg fabric
                                         app data




 app          app            app          ref data



                                   app
                                         data
                                         fabric
              database
cloud	
  foundry	
  example	
  
                     system	
  load	
  balancer
                                              	
  

             elas;c	
  pool	
  

  redis
      	
                                               mysql
                                                           	
  
                front_end	
         front_end	
  


                              rabbitMQ	
  

             elas;c	
  pool	
  

                                                     mongodb	
  
                           back_end	
  
#  create  the  front  end  and  backend  apps
#  front  end  is  small  but  multi-­‐instance
vmc  push  fe  –instances  8  –mem  64M  –path  ../fe_code
vmc  push  be  –instances  2  –mem  256M  –path  ../be_code

#  create  the  services  and  bind  per  spec
vmc  create-­‐service  mysql  –name  mysql  –bind  fe
vmc  create-­‐service  mongodb  –name  mongo  –bind  be
vmc  create-­‐service  rabbit  –name  rabbit  –bind  fe
vmc  create-­‐service  redis  –name  redis  –bind  fe
vmc  bind-­‐service  redis  be
vmc  bind-­‐service  rabbit  be

#  to  perform  an  update  of  code
vmc  update  fe  –path  ../new_fe_code
vmc  update  be  –path  ../new_be_code
the data’s over
there!
thank	
  you	
  for	
  listening	
  

PART  IV:  IN  CONCLUSION  
language,
new ways to                tools,
access                     fworks,
                           data,
         enterprise        services,
            apps           design


new modes of          new deployment
interaction           options
thank	
  you	
  

                   Adrian Colyer
                        VMware
                   @adriancolyer

Contenu connexe

Similaire à What's Next? Paris - Adrian Colyer Keynote

CloudCompare NC4
CloudCompare NC4CloudCompare NC4
CloudCompare NC4
Clearpreso
 
Capacity Management in a Cloud Computing World
Capacity Management in a Cloud Computing WorldCapacity Management in a Cloud Computing World
Capacity Management in a Cloud Computing World
David Linthicum
 
Avner algom igt cloud igtdld event
Avner algom igt cloud   igtdld eventAvner algom igt cloud   igtdld event
Avner algom igt cloud igtdld event
Avner Algom
 
Cloud Computing For Enterprises
Cloud Computing For EnterprisesCloud Computing For Enterprises
Cloud Computing For Enterprises
One App Cloud
 
Cloud Computing Webinar
Cloud Computing WebinarCloud Computing Webinar
Cloud Computing Webinar
Saif Ahmad
 

Similaire à What's Next? Paris - Adrian Colyer Keynote (20)

Smalltalk In the Cloud
Smalltalk In the CloudSmalltalk In the Cloud
Smalltalk In the Cloud
 
Cloud Foundry et le Cloud vu par VMware
Cloud Foundry et le Cloud vu par VMwareCloud Foundry et le Cloud vu par VMware
Cloud Foundry et le Cloud vu par VMware
 
12023 cloud-computing-wp
12023 cloud-computing-wp12023 cloud-computing-wp
12023 cloud-computing-wp
 
Unleashing cloud-performance
Unleashing cloud-performanceUnleashing cloud-performance
Unleashing cloud-performance
 
CloudCompare NC4
CloudCompare NC4CloudCompare NC4
CloudCompare NC4
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
What Does Cloud Computing Mean for the Channel?
What Does Cloud Computing Mean for the Channel?What Does Cloud Computing Mean for the Channel?
What Does Cloud Computing Mean for the Channel?
 
IIA2013 PPT SLIDES DECK
IIA2013 PPT SLIDES DECKIIA2013 PPT SLIDES DECK
IIA2013 PPT SLIDES DECK
 
The Ultimate Guide to Cloud Migration - A Whitepaper by RapidValue
The Ultimate Guide to Cloud Migration - A Whitepaper by RapidValueThe Ultimate Guide to Cloud Migration - A Whitepaper by RapidValue
The Ultimate Guide to Cloud Migration - A Whitepaper by RapidValue
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Introduction to cloud computing
Introduction to cloud computingIntroduction to cloud computing
Introduction to cloud computing
 
CLOUD COMPUTING AND SERVICES BY SAIKIRAN PANJALA
CLOUD COMPUTING AND SERVICES BY SAIKIRAN PANJALACLOUD COMPUTING AND SERVICES BY SAIKIRAN PANJALA
CLOUD COMPUTING AND SERVICES BY SAIKIRAN PANJALA
 
Capacity Management in a Cloud Computing World
Capacity Management in a Cloud Computing WorldCapacity Management in a Cloud Computing World
Capacity Management in a Cloud Computing World
 
Avner algom igt cloud igtdld event
Avner algom igt cloud   igtdld eventAvner algom igt cloud   igtdld event
Avner algom igt cloud igtdld event
 
Cloud Computing For Enterprises
Cloud Computing For EnterprisesCloud Computing For Enterprises
Cloud Computing For Enterprises
 
Cloud Computing Presentation
Cloud Computing PresentationCloud Computing Presentation
Cloud Computing Presentation
 
Evolution of the Cloud.pptx
Evolution of the Cloud.pptxEvolution of the Cloud.pptx
Evolution of the Cloud.pptx
 
Zubair
ZubairZubair
Zubair
 
Cloud Computing Webinar
Cloud Computing WebinarCloud Computing Webinar
Cloud Computing Webinar
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Dernier (20)

Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

What's Next? Paris - Adrian Colyer Keynote

  • 1. Enterprise  Apps  in  2011   and  beyond   Adrian Colyer VMware @adriancolyer
  • 2. 1. Big Picture Stuff 2. Open PaaS 3. 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 design new modes of new deployment interaction options
  • 5. new ways to access client and server-side implications
  • 6.          Greenhouse  
  • 7. new modes of interaction social commentary social objects social entities
  • 10.
  • 11. blob BIG column document graph key-value data map-reduce relational!
  • 12. development and new  deployment  op;ons   public traditional private PaaS hybrid
  • 13.  why  PaaS?   •  eliminate tickets •  business agility •  cost models •  scalability •  low barrier to entry
  • 14. this  changes  everything   PART  II:  OPEN  PAAS  
  • 15. Cloud  Foundry  –  Open  PaaS   •  www.cloudfoundry.com •  www.cloudfoundry.org
  • 16. choice  of  frameworks   Cloud Foundry
  • 17. choice  of  applica;on  services   Data  Services   Msg  Services   Other  Services  
  • 18. choice  of  clouds   Data  Services   Private     Clouds     Public   Msg  Services   Clouds   Micro   Other  Services   Clouds  
  • 19. cloud  foundry  :  the  open  paas   Data  Services   Private     Clouds     Msg  Services   Public   Clouds   Micro   Other  Services   Clouds  
  • 20. $
  • 22. $ vmc info VMware's 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) $
  • 23. $ vmc info VMware's 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
  • 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 | | +-------------+----+---------+-----------------------------+----------+ $
  • 25. 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
  • 26. +-------------+----+---------+-----------------------------+----------+ | 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 | +----------+----------+
  • 27. $ vmc frameworks +---------+ | Name | +---------+ | node | | spring | | rails3 | | grails | | sinatra | +---------+ $
  • 28. $ vmc frameworks +---------+ | Name | +---------+ | node | | spring | | rails3 | | grails | | sinatra | +---------+ $ vmc runtimes
  • 29. | 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 | +--------+-------------+-----------+ $
  • 30. $ 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$
  • 31.
  • 32. $ vmc instances whatsnext +-------+---------+--------------------+ | Index | State | Start Time | +-------+---------+--------------------+ | 0 | RUNNING | 05/23/2011 03:36PM | +-------+---------+--------------------+ $
  • 33. $ 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 $
  • 34. $ 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
  • 35. $ 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 | +-------+---------+--------------------+ $
  • 36. 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>   •  …  
  • 37. 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
  • 38.
  • 39.
  • 40. $ grails prod cf-push
  • 41. 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 Orchestrates Health 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
  • 42. and  it’s  only  just  the  beginning…   PART  III:  WHAT  PAAS  MEANS  FOR   APPS  &  SERVICES  
  • 43. applica;on  enablers   •  polyglot  applica;ons   •  service  consump;on   •  web  of  services  
  • 44. full description and links to source at http://blog.springsource.com
  • 45. ;cker-­‐sample   browser socket.io store in generate subscribe mongo ticker ticker events stream subscribe update min, max, ticker avg. stream
  • 46. web  of  services   lot of little services infrastructure … services
  • 47. applica;on  challenges   •  portability   •  elas;c  scaling   •  cloud-­‐burs;ng  and  other  hybrid   scenarios   •  monitoring  
  • 48. environment  beans   <beans profile="cloud"> <cloud:datasource id="dataSource"/> </beans> <beans profile="default"> <jdbc:embedded-database id="dataSource"/> </beans> @Profile("production") …
  • 49. elas;c  scaling   •  no  silver  bullets   •  design  for  scale   -­‐  think  about  data,   -­‐  deployment  units,   -­‐  messaging  
  • 50. design  for  scale   application database
  • 51. design  for  scale   app app sessions msg fabric app data app app app ref data app data fabric database
  • 52. cloud  foundry  example   system  load  balancer   elas;c  pool   redis   mysql   front_end   front_end   rabbitMQ   elas;c  pool   mongodb   back_end  
  • 53. #  create  the  front  end  and  backend  apps #  front  end  is  small  but  multi-­‐instance vmc  push  fe  –instances  8  –mem  64M  –path  ../fe_code vmc  push  be  –instances  2  –mem  256M  –path  ../be_code #  create  the  services  and  bind  per  spec vmc  create-­‐service  mysql  –name  mysql  –bind  fe vmc  create-­‐service  mongodb  –name  mongo  –bind  be vmc  create-­‐service  rabbit  –name  rabbit  –bind  fe vmc  create-­‐service  redis  –name  redis  –bind  fe vmc  bind-­‐service  redis  be vmc  bind-­‐service  rabbit  be #  to  perform  an  update  of  code vmc  update  fe  –path  ../new_fe_code vmc  update  be  –path  ../new_be_code
  • 55. thank  you  for  listening   PART  IV:  IN  CONCLUSION  
  • 56. language, new ways to tools, access fworks, data, enterprise services, apps design new modes of new deployment interaction options
  • 57. thank  you   Adrian Colyer VMware @adriancolyer