Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... •...

23
Cloud Foundry Architecture Team: "Pipes_and_Filters" { Bre3_Borchardt Marc_Johnson Paul_Kleczka Allan_Tokuda }

Transcript of Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... •...

Page 1: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&

Cloud  Foundry  Architecture  

Team:  "Pipes_and_Filters"  {      Bre3_Borchardt      Marc_Johnson      Paul_Kleczka      Allan_Tokuda  }  

Page 2: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&

Outline  

•  Intro  •  Goals  and  Principles  •  FuncConal  View  and  Scenarios  •  Concurrency  View  •  PerspecCves  •  Proposed  Extension  

Page 3: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&

What  is  Cloud  Foundry?  

PAAS  (Cloud  Foundry)  

IAAS  (AWS)  

SAAS  (Custom  App)  

Page 4: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&

©  cloudfoundry.com  

Page 5: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&

Quality  PerspecCves    

•  Performance  and  Scalability  – Horizontal  scaling  of  apps/services  – Ruby  fibers  

•  Availability  and  Resilience  – MulC-­‐tenant  isolaCon  – Health  manager      

•  EvoluCon  – Loosely  coupled  interfaces  via  messaging/REST  

Page 6: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&

Architectural  Principles  

•  Principle  1:  Open  pla]orm  •  Principle  2:  Extensible  architecture  •  Principle  3:  PosiCve  developer  experience  •  Principle  4:  Simple  design  – Low  efferent  coupling  – RESTful  communicaCon  and  async.  messaging  –  Idempotent  service  interfaces  

Page 7: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&

FuncConal  Scenarios  

•  Target  and  AuthenCcate  •  Deploy  ApplicaCon  •  Provision  and  Bind  Service  •  Start/Stop  ApplicaCon  

•  ApplicaCon  Request  by  End  User  

ApplicaCon  Developer  

Page 8: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&

Cloud    Controller  

Health  Manager  

Droplet  ExecuCon  Agent  

Router  

Service  Gateway  

Service  Node  

Load  Balancer  

<<External>>  ApplicaCon  User  

<<External>>  ApplicaCon  Developer  

Stager  

FuncConal  View   HTTP  Async.  Messaging  

Other  

Route  Request  

Route  Request  

Route  Request  

Stage  ApplicaCon  

Provision  Service  

Provision  Service  

Start/  Stop    

Instances  

Start/Stop    Instances  

Heartbeat  

Start/Stop  Droplet  

Droplet  

Route  Request  

ApplicaCon  Service  

Create  Service  

Consume  Service  

Route  Request  

Droplet  Started  

Page 9: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&

Concurrency:  CommunicaCon  &  State  

<<process  group>>Cloud  RDBMS

<<process  group>>Service  Instance  

Processes

<<process>>

<<process>><<process>><<process>>

<<process>><<process>>

<<process  group>>NATS  Message  Bus

<<process>>

<<process>>

DEA

Stager

HTTP

HTTP

Service

Service Gateway

Droplet

Service Node

Health  Manager

Cloud Controller

OS  shell  commands

Service  Protocol

Router

HTTP

HTTP

Page 10: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&

Concurrency:  Messaging  

<<process>>

<<process>>

<<process>>

<<process>>

<<process>>

<<process>>

Cloud Controller

DEA 1

...

DEA nDeploy  Application  Flow

Health Manager

Cloud Controller 1

...

Cloud Controller nRestore  Health  Flow

Page 11: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&

Concurrency:  Fibers  

<<process  group>>Cloud  RDBMS

<<process>>Cloud  Controller

<<fiber>><<process>>

Async  DB  Driver

Controller

Model

Router EventMachine

Single  Threaded  Dispatch  via  Reactor  Pattern

Page 12: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&

Source:  h3p://www.igvita.com/2009/05/13/fibers-­‐cooperaCve-­‐scheduling-­‐in-­‐ruby/  

Concurrency:  Fiber  Scheduling  

Page 13: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&

Proposed  Extension    

•  Auto-­‐scaling:  provide  detailed  means  of  controlling  how  many  instances  of  an  app  are  running  – Schedule  regular  increases  and  decreases  – Respond  to  demand  pickup/dropoff  – Decide  from  system  metrics  – Propagate  scaling  decisions    

Page 14: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&

QuesCons?  

Bre3  Borchardt  [email protected]    Marc  Johnson  [email protected]    Paul  Kleczka  [email protected]    Allan  Tokuda  [email protected]  

Page 15: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&

References  

•  [1]  Cade  Metz,  Man  Survives  Steve  Ballmer’s  Flying  Chair  To  Build  ’21st  Century  Linux’,  h3p://www.wired.com/wiredenterprise/2011/11/cloud-­‐foundry/all/1  

•  [2]  [3]  Derek  Collison  -­‐  Distributed  Design  and  Architecture  of  Cloud  Foundry  h3p://www.slideshare.net/derekcollison/design-­‐of-­‐cloud-­‐foundry  

 

Page 16: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&

Backup  Slides  

 

Page 17: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&

Goals  •  Developer  ProducCvity  – wide  variety  of  frameworks  and  services  –  seamless  integraCon  into  applicaCons  –  simple  deployment  model  and  toolset  

 

•  Open  System  –  Extensible  frameworks  +  services.  –  Runs  public,  private,  or  hybrid  –  Runs  on  a  virtual  machine  

•  Faster  Delivery  –  Simple  and  high  performance  framework  –  Third-­‐party  (or  enterprise)  integraCon  –  “Micro”  cloud  on  developer  machine  

Page 18: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&

What  is  Cloud  Foundry?  (Intro)  

• MulL-­‐Language    

• MulL-­‐Framework  

• MulL-­‐Services    

• MulL-­‐Cloud,  MulL-­‐IaaS  

•  Ruby,  Java,  Scala,  Node.js,Erlang,  Python,  PHP..  

•  Rails,  Sinatra,  Spring,  Grails,  Express,  LiY  

•  MySQL,  Postgres,  MongoDB,  Redis,  RabbitMQ  

•  vSphere,  MicroCloud,  OpenStack,  AWS  

Page 19: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&

What  is  Cloud  Foundry?  (Intro)  •  Open  Pla\orm  as  a  Service  (PAAS)  •  “Linux  of  the  Cloud”  :  – Makes  deploying  and  scaling  fast  and  easy  – Open  source  (wri3en  in  Ruby)  – Supports  mulCple  development  frameworks  ,  extensible  

– Public  clouds,  private  clouds,  and  “micro-­‐cloud”  which  can  be  run  on  a  PC  

Not  VMs,  Memory,  Storage,  Networks,  CPU    

Page 20: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&

FuncCo

nal  V

iew  

Reference:  [3]  

Page 21: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&

FuncConal  View  

Page 22: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&

FuncConal  View  

Page 23: Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... • Rails,&Sinatra,&Spring,&Grails,&Express,&LiY&