Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... •...
-
Upload
duongtuong -
Category
Documents
-
view
218 -
download
3
Transcript of Cloud Foundry Architecture Presentation - Allan Tokuda · What&is&Cloud&Foundry?&(Intro)& ... •...
Cloud Foundry Architecture
Team: "Pipes_and_Filters" { Bre3_Borchardt Marc_Johnson Paul_Kleczka Allan_Tokuda }
Outline
• Intro • Goals and Principles • FuncConal View and Scenarios • Concurrency View • PerspecCves • Proposed Extension
What is Cloud Foundry?
PAAS (Cloud Foundry)
IAAS (AWS)
SAAS (Custom App)
© cloudfoundry.com
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
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
FuncConal Scenarios
• Target and AuthenCcate • Deploy ApplicaCon • Provision and Bind Service • Start/Stop ApplicaCon
• ApplicaCon Request by End User
ApplicaCon Developer
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
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
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
Concurrency: Fibers
<<process group>>Cloud RDBMS
<<process>>Cloud Controller
<<fiber>><<process>>
Async DB Driver
Controller
Model
Router EventMachine
Single Threaded Dispatch via Reactor Pattern
Source: h3p://www.igvita.com/2009/05/13/fibers-‐cooperaCve-‐scheduling-‐in-‐ruby/
Concurrency: Fiber Scheduling
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
QuesCons?
Bre3 Borchardt [email protected] Marc Johnson [email protected] Paul Kleczka [email protected] Allan Tokuda [email protected]
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
Backup Slides
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
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
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
FuncCo
nal V
iew
Reference: [3]
FuncConal View
FuncConal View