Going Cloud Native with Cloud Foundry @chipchilders Chip Childers, - - PowerPoint PPT Presentation

going cloud native with cloud foundry
SMART_READER_LITE
LIVE PREVIEW

Going Cloud Native with Cloud Foundry @chipchilders Chip Childers, - - PowerPoint PPT Presentation

Going Cloud Native with Cloud Foundry @chipchilders Chip Childers, VP Technology Cloud Foundry Foundation Why does Cloud Native matter? Since 2000, 52% of the Fortune 500 are no longer on the list Continuous Innovation There is a rough


slide-1
SLIDE 1

@chipchilders Chip Childers, VP Technology Cloud Foundry Foundation

Going Cloud Native with Cloud Foundry

slide-2
SLIDE 2

Why does Cloud Native matter?

slide-3
SLIDE 3

Since 2000, 52% of the Fortune 500 are no longer on the list

slide-4
SLIDE 4

Continuous Innovation

slide-5
SLIDE 5

There is a rough consensus on many Cloud Native traits. Containers as an atomic unit, for example. Micro-services as the means of both construction and communication. Platform independence. Multiple language support. Automation as a feature of everything from build to

  • deployment. High uptime. Ephemeral infrastructure (cattle

not pets). And so on. Stephen O’Grady, Redmonk

http://redmonk.com/sogrady/2015/07/24/cloud-native-implications/

slide-6
SLIDE 6

There is a rough consensus on many Cloud Native traits. Containers as an atomic unit, for example. Micro-services as the means of both construction and communication. Platform independence. Multiple language support. Automation as a feature of everything from build to

  • deployment. High uptime. Ephemeral infrastructure (cattle

not pets). And so on. Stephen O’Grady, Redmonk

http://redmonk.com/sogrady/2015/07/24/cloud-native-implications/

slide-7
SLIDE 7

There is a rough consensus on many Cloud Native traits. Containers as an atomic unit, for example. Micro-services as the means of both construction and communication. Platform independence. Multiple language support. Automation as a feature of everything from build to

  • deployment. High uptime. Ephemeral infrastructure (cattle

not pets). And so on. Stephen O’Grady, Redmonk

http://redmonk.com/sogrady/2015/07/24/cloud-native-implications/

slide-8
SLIDE 8

There is a rough consensus on many Cloud Native traits. Containers as an atomic unit, for example. Micro-services as the means of both construction and communication. Platform independence. Multiple language support. Automation as a feature of everything from build to

  • deployment. High uptime. Ephemeral infrastructure (cattle

not pets). And so on. Stephen O’Grady, Redmonk

http://redmonk.com/sogrady/2015/07/24/cloud-native-implications/

slide-9
SLIDE 9

There is a rough consensus on many Cloud Native traits. Containers as an atomic unit, for example. Micro-services as the means of both construction and communication. Platform independence. Multiple language support. Automation as a feature of everything from build to

  • deployment. High uptime. Ephemeral infrastructure (cattle

not pets). And so on. Stephen O’Grady, Redmonk

http://redmonk.com/sogrady/2015/07/24/cloud-native-implications/

slide-10
SLIDE 10

There is a rough consensus on many Cloud Native traits. Containers as an atomic unit, for example. Micro-services as the means of both construction and communication. Platform independence. Multiple language support. Automation as a feature of everything from build to

  • deployment. High uptime. Ephemeral infrastructure (cattle

not pets). And so on. Stephen O’Grady, Redmonk

http://redmonk.com/sogrady/2015/07/24/cloud-native-implications/

slide-11
SLIDE 11

There is a rough consensus on many Cloud Native traits. Containers as an atomic unit, for example. Micro-services as the means of both construction and communication. Platform independence. Multiple language support. Automation as a feature of everything from build to

  • deployment. High uptime. Ephemeral infrastructure

(cattle not pets). And so on. Stephen O’Grady, Redmonk

http://redmonk.com/sogrady/2015/07/24/cloud-native-implications/

slide-12
SLIDE 12

The Cloud Native Advantage: Simple Patterns Highly Automated Scaled with Ease

slide-13
SLIDE 13

Fast, Safe, Scalable… Pick 3

slide-14
SLIDE 14

Fast – Focus on Takt Time

Definition: the desired time between units of production output, synchronized to customer demand

http://www.strategosinc.com/takt_time.htm

slide-15
SLIDE 15

Safe

A.B.T. - Always Be Testing (automatically)

slide-16
SLIDE 16

Safe – Runtime Characteristics Matter

  • Visibility – Measure all the things. Translate data into knowledge. (see:

OODA loop)

  • Fault Isolation – Smaller applications, released independently, isolate the

scope of a fault condition.

  • Fault Tolerance – Failures happen (see: Circuit Breaker Pattern / Design

for Failure)

  • Autonomic Recovery – Humans have better things to do at night
slide-17
SLIDE 17

Scale – Prepare (as best you can) to Succeed

  • Demand elastic infrastructure
  • Separate concerns - Isolated ephemeral services, Solve persistence

independently

  • Accept that the scalability of a system can be a series of plateaus
slide-18
SLIDE 18
slide-19
SLIDE 19

“Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the

  • rganization's communication

structure.

Melvyn Conway, 1967

slide-20
SLIDE 20

Microservices are great, but they require: rapid provisioning basic monitoring rapid application deployment devops culture

Martin Fowler

slide-21
SLIDE 21
slide-22
SLIDE 22
  • Use declarative formats for setup automation, to minimize time

and cost for new developers joining the project;

  • Have a clean contract with the underlying OS, offering maximum

portability between execution environments;

  • Are suitable for deployment on modern cloud platforms, obviating

the need for servers and systems administration;

  • Minimize divergence between development and production,

enabling continuous deployment for maximum agility;

  • And can scale up without significant changes to tooling,

architecture, or development practices.

slide-23
SLIDE 23

But even that’s not enough…

slide-24
SLIDE 24
  • Role based access to resources: the right

people should be able to do things and the wrong people shouldn’t

  • Run specified bits on demand: take code,

put it together with all the rest of the things it needs and and get it running

  • Coordinate cross service configurations: in

a service oriented world, services need to be configured to connect with each other

  • Route public requests to running bits: the

next big thing needs access to the internet

  • Read and write persistent data: data has to

live somewhere

  • Add and remove resources: scaling is a

great problem to have, but still

  • Isolate resources and failures without

isolation and decoupling, that is one big distributed single point of failure

  • Measure performance/health: can’t manage

what you don’t measure

  • Detect and determine failure: sometimes,

things get real… but how do you know

  • Recover failures: someone is going to have

to clean this mess

  • Work tomorrow: when everything you’ve

thought to be true has been shown not to

slide-25
SLIDE 25

You must be this tall…

slide-26
SLIDE 26

We’re going to need a platform

slide-27
SLIDE 27

Unit of Value

IaaS == Virtual Machine

  • Opaque to the system
  • Orchestration is post-hoc
  • System changes are

imperative (“launch” stuff) App Platform == Application

  • Containers are transparent
  • Lifecycle is fully managed
  • System changes are

declarative (manifest.yml)

slide-28
SLIDE 28

Unit of Value

IaaS == Virtual Machine

  • Opaque to the system
  • Orchestration is post-hoc
  • System changes are

imperative (“launch” stuff) App Platform == Application Time to release a feature or App

  • Containers are transparent
  • Lifecycle is fully managed
  • System changes are

declarative (manifest.yml)

slide-29
SLIDE 29

Platforms make promises Constraints are the contract that allows a platform to keep promises

slide-30
SLIDE 30

Here is my source code Run it on the cloud for me I do not care how

Cloud Foundry Haiku Onsi Fakhouri

slide-31
SLIDE 31

Buildpack Docker Rocket Browser Mobile IoT Devices

End Users Services

Core Services (MySQL / RiakCS) Provider-Specific Services User Provided Service Instances

Operations

Logging Scaling Platform Deployment Health Monitoring

Infrastructure

AWS OpenStack VMware vSphere Other…

Elastic Runtime

slide-32
SLIDE 32

.war .jar dependencies libraries service ¡manifest App App App LB DB Multi-­‑server ¡run ¡time ¡ environment(s) .tar.gz

Turning this: Into this:

slide-33
SLIDE 33

https://blog.appdynamics.com/devops/the-future-of-ops/

Or even this…

slide-34
SLIDE 34

BUILD APPLICATION PUSH FIRST RELEASE MAINTAIN APPLICATION UPDATE APPLICATIONS RETIRE APPLICATIONS

  • Auto-detect frameworks
  • Link to App Platform
  • Self-service deploy
  • Dynamic routing
  • A/B versioning
  • Live upgrades
  • Self-service

removal

  • Elastic scale
  • Integrated HA
  • Log aggregation
  • Policy and Auth
slide-35
SLIDE 35

target <mycf> push <myapp> create-service <myservice> bind <myapp> <myservice> start <myapp> scale <myapp> -i 100 … cf

App DB LB App App

slide-36
SLIDE 36

Where’s the container in this story?

slide-37
SLIDE 37
slide-38
SLIDE 38

= + +

Contents Processes

?

?

Isolation Rules

PID User Network cgroups

cflinuxfs2

What is a “Container”?

slide-39
SLIDE 39

Let’s talk about Buildpacks / Staging

  • Ruby code that detects language,

frameworks, whatnot…

  • Compiles the code into executable

binaries (*)

/bin/detect < Am I supposed to run? /bin/compile < Build the thing /bin/release < Pass along potential metadata

cflinuxfs2

slide-40
SLIDE 40

Prescriptive

CHRONOS scheduler.next

container.next

Assembly

slide-41
SLIDE 41

Prescriptive

CHRONOS scheduler.next

container.next

Assembly

runC

slide-42
SLIDE 42

Prescriptive

CHRONOS scheduler.next

gorouter Cloud Controller Auth Loggregator Staging

Buildpacks

BOSH

Service Broker

Diego

Garden etcd Core Services

container.next

Assembly

runC

slide-43
SLIDE 43

Prescriptive Assembly

CHRONOS scheduler.next

gorouter Cloud Controller Auth Loggregator Staging

Buildpacks

BOSH

Service Broker

Diego

etcd Core Services

container.next

runC

slide-44
SLIDE 44

That was all about 12 factor apps… What about services?

slide-45
SLIDE 45

CF and Services

  • Development infrastructure components

(DBs, Cache, Queue, etc…)

  • Loopback to other CF hosted apps
  • Reaching out to your “legacy”
  • External providers
slide-46
SLIDE 46
slide-47
SLIDE 47
slide-48
SLIDE 48

.war .jar dependencies libraries service ¡manifest App App App LB DB Multi-­‑server ¡run ¡time ¡ environment(s) .tar.gz

Turning this: Into this:

slide-49
SLIDE 49

The Cloud Native Advantage: Simple Patterns Highly Automated Scaled with Ease

slide-50
SLIDE 50

cloudfoundry.org