+ All Categories
Home > Documents > Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network...

Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network...

Date post: 12-Aug-2020
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
63
Derek Collison Design and Architecture
Transcript
Page 1: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Derek Collison

Design and Architecture

Page 2: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

What isCloud Foundry?

2

Page 3: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

The OpenPlatform as a Service

3

Page 4: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

What is PaaS?

4

Page 5: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Or more specifically, aPaaS?

5

Page 6: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

aPaaS

• Application Platform as a Service

• Applications and Services

6

Page 7: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

aPaaS

• Application Platform as a Service

• Applications and Services

• Not • VMs

• Memory

• Storage

• Networks

• CPU

7

Page 8: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

What isOpenPaaS?

8

Page 9: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

OpenPaaS

• Multi-Language

• Multi-Framework

• Multi-Services

• Multi-Cloud, Multi-IaaS

• Hybrid - Public or Private or Both

• OpenSource

9

Page 10: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

OpenPaaS

• Multi-Language• Ruby, Java, Scala, Node.js, Erlang, Python, PHP..

• Multi-Framework• Rails, Sinatra, Spring, Grails, Express, Lift

• Multi-Services• MySQL, Postgres, MongoDB, Redis, RabbitMQ

• Multi-Cloud, Multi-IaaS• vSphere, MicroCloud, OpenStack, AWS

10

Page 11: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

The Open PaaS

Clou

d Pr

ovide

r Int

erfa

ce

Application Service Interface

Private Clouds

PublicClouds

MicroClouds

11

Data Services

Other Services

Msg Services

vFabric Postgres

vFabric RabbitMQTM

Page 12: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

What isour Goal?

12

Page 13: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

What was our Goal?

13

Raise the unit of currency to be the application and its associated services,

not the infrastructure

Page 14: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

What was our Goal?

14

Best of breed delivery platform for all modern

applications and frameworks

Page 15: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

What was our Goal?

15

Favor Choice

and

Openness

Page 16: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

How was it Built?

16

Page 17: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

How was it Built?

• Kernel (CloudFoundry OSS)• Core PaaS System

• Kernel and Orchestrator Shells• Layered on top of IaaS

• Orchestrator• IaaS creation, management and

orchestration

17

Page 18: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

High Level

18

IaaS

Orchestrator

CF Kernel

Hardware - CPU/Memory/Disk/Network

Clients (VMC, STS, Browser)

Page 19: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Basic Premises

• Fail Fast

• Self Healing

• Horizontally Scalable Components

• Distributed State

• No Single Point of Failure

• Should be as simple as possible

19

Page 20: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Basic Patterns

• Event-Driven

• Asynchronous

• Non-blocking

• Independent, Idempotent

• Message Passing

• Eventually Consistent

20

Page 21: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Basic Design

• All components loosely coupled• Few “Classes”, many “Instances”

• Messaging as foundation• Addressing and Component Discovery

• Command and Control

• JSON payloads

• HTTP or File/Blob for data transport

21

Page 22: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Kernel Components

• All dynamically discoverable

• Launch and scale in any order

• Can come and go as needed

• Monitor via HTTP and JSON

• Location independent

22

Page 23: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Kernel Components

• Router

• CloudController

• DEA

• HealthManager

• Service Provisioning Agent

• Messaging System

23

Page 24: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Logical View

24

VMC client STS plugin Browser(user app access)

Routers

CloudControllers App

Services

App

HealthManager

DEA Pool

Messaging

Page 25: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

25

Arc

hit

ec

ture

Page 26: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Messaging

26

Page 27: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Messaging

27

“The Nervous System”

Page 28: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Messaging

28

VMC client STS plugin Browser(user app access)

Routers

CloudControllers App

Services

App

HealthManager

DEA Pool

Messaging

Page 29: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Messaging

• Addressing and Discovery• No static IPs or DNS lookups req’d

• Just Layer 4

• Command and Control

• Central communication system

• Dial tone, fire and forget

• Protects *itself* at all costs

• Idempotent semantics

29

Page 30: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Router

30

Page 31: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Router

31

“Traffic Cop”

Page 32: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Router

32

VMC client STS plugin Browser(user app access)

Routers

CloudControllers App

Services

App

HealthManager

DEA Pool

Messaging

Page 33: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Router

• Handles all HTTP traffic

• Maintains distributed routing state

• Routes URLs to applications

• Distributes load among instances

• Realtime distributed updates to routing tables from DEAs

33

Page 34: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

CloudController

34

Page 35: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

CloudController

35

“The King”

Page 36: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

CloudController

36

VMC client STS plugin Browser(user app access)

Routers

CloudControllers App

Services

App

HealthManager

DEA Pool

Messaging

Page 37: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

CloudController

• Handles all state transitions

• Deals with users, apps, and services

• Packages and Stages applications

• Binds Services to Applications

• Presents external REST API

37

Page 38: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

HealthManager

38

Page 39: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

HealthManager

39

“Court Jester”

Page 40: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

HealthManager

40

VMC client STS plugin Browser(user app access)

Routers

CloudControllers App

Services

App

HealthManager

DEA Pool

Messaging

Page 41: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

HealthManager

• Monitors the state of the world

• Initial value with realtime delta updates to “intended” vs “real”

• Determines drift

• Complains to the CloudControllers when something is not correct

• No power to change state itself

41

Page 42: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

DEA

42

Page 43: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

DEA

43

“Droplet Execution Agent”

Page 44: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

DEA

44

VMC client STS plugin Browser(user app access)

Routers

CloudControllers App

Services

App

HealthManager

DEA Pool

Messaging

Page 45: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

DEA (Droplet Execution Agent)

• Responsible for running all applications

• Monitors all applications

• CPU, Mem, IO, Threads, Disk, FDs, etc

• All apps look same to DEA• start and stop

• Express ability and desire to run an application• runtimes, options, cluster avoidance, memory/cpu

• Alerts on any change in state of applications

• Provides secure/constrained OS runtime

• Hypervisor, Unix File and User, Linux Containers*

• Single or Multi-Tenant

45

Page 46: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

How does it allWork?

46

Page 47: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Pushing an App

• Client (VMC/STS) pushes meta-data to CC

• Client optionally pushes resource signatures (diff analysis, sys wide)

• Client pushes app resources to CC

• CC puts app together

• CC stages app asynchronously

• CC binds and stages services

• Droplet ready

47

Page 48: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

48

Arc

hit

ec

ture

Page 49: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Running an App

• CC asks DEAs for “help”

• First DEA back wins! Simple

• CC sends start request to selected DEA

• DEA pushes the “green” button

• DEA waits and monitors pid and ephemeral port for app to bind

• When app is healthy, sends “register” message

• Register message is seen by HM and Routers

• Routers bind URL to host:port

49

Page 50: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

DEAs answer?

• DEAs first determine YES or NO• correct runtime, options, memory, etc

• Then calculate a Delay Taint• SHA hash of application

• memory

• cpu

• Taint allows balancing and selection

50

Page 51: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Scale up & down?

• Exact steps as running the app the first time

• SHA1 taint helps avoid clustering

• memory/cpu taint helps distribute as evenly as possible

• Nothing pre-computed

• Nothing assumed

51

Page 52: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Crashes?

• If your app stops and we did not tell it to, that is a crash

• Crashed apps are immediately detected by DEA and messaged

• Routers disconnect route instantly

• HM will signal CC• something is wrong

• CC will issue run sequence again52

Page 53: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

53

Arc

hit

ec

ture

Page 54: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Access to my App?

• All routers understand where all instances of your application are running

• Will randomly pick backend, not semantically aware.

• Will remove routes that are stale or unhealthy

• Session stickiness and replication available, but best to avoid if possible

54

Page 55: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

What aboutServices?

55

Page 56: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Services

56

VMC client STS plugin Browser(user app access)

Routers

CloudControllers App

Services

App

HealthManager

DEA Pool

Messaging

Page 57: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Services

• Service Advertisement

• Service Provisioning

• Gateway fronts multi-backends

• Service Nodes scale independent

• App and service talk directly

• API to register into system

• Closure for additional value

57

Page 58: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Provisioning

58

VMC/STS

Routers

CloudControllers Services Gateway

Service NodeMySQL

Service NodeRedis

Service NodeRedis

Messaging

Application

1

2

3

45

6

Page 59: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Access (Direct)

59

Routers

CloudControllers Services Gateway

Service NodeMySQL

Service NodeRedis

Service NodeRedis

Messaging

Application

1

2

Browser(user app access)

Page 60: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Services

60

Cloud Foundry

vSphere

core services

Enterprise Services

SQLFire

apps

service controller service broker

provision/bind

consume consume

bind

VMware Dev Tools Partner Dev Tools

Data Director

Relational DB

Page 61: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

Learn more:

www.cloudfoundry.org

blog.cloudfoundry.com

support.cloudfoundry.com

61

Page 62: Derek Collison - qconsf.com€¦ · Orchestrator CF Kernel Hardware - CPU/Memory/Disk/Network Clients (VMC, STS, Browser) Basic Premises

62

Thank You


Recommended