going cloud native with cloud foundry

Download Going Cloud Native with Cloud Foundry

Post on 13-Feb-2017

748 views

Category:

Technology

1 download

Embed Size (px)

TRANSCRIPT

PowerPoint Presentation

@chipchildersChip Childers, VP TechnologyCloud Foundry FoundationGoing Cloud Native with Cloud Foundry

Why does Cloud Native matter?

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

Continuous Innovation

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 OGrady, Redmonkhttp://redmonk.com/sogrady/2015/07/24/cloud-native-implications/

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 OGrady, Redmonkhttp://redmonk.com/sogrady/2015/07/24/cloud-native-implications/

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 OGrady, Redmonkhttp://redmonk.com/sogrady/2015/07/24/cloud-native-implications/

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 OGrady, Redmonkhttp://redmonk.com/sogrady/2015/07/24/cloud-native-implications/

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 OGrady, Redmonkhttp://redmonk.com/sogrady/2015/07/24/cloud-native-implications/

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 OGrady, Redmonkhttp://redmonk.com/sogrady/2015/07/24/cloud-native-implications/

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 OGrady, Redmonkhttp://redmonk.com/sogrady/2015/07/24/cloud-native-implications/

The Cloud Native Advantage:

Simple PatternsHighly AutomatedScaled with Ease

Fast, Safe, Scalable Pick 3

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

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

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

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

Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure.

Melvyn Conway, 1967

Microservices are great, but they require:

rapid provisioningbasic monitoringrapid application deploymentdevops culture

Martin Fowler

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.

But even thats not enough

Role based access to resources: the right people should be able to do things and the wrong people shouldntRun 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 otherRoute public requests to running bits: the next big thing needs access to the internetRead and write persistent data: data has to live somewhereAdd 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 failureMeasure performance/health: cant manage what you dont measureDetect and determine failure: sometimes, things get real but how do you knowRecover failures: someone is going to have to clean this messWork tomorrow: when everything youve thought to be true has been shown not to

You must be this tall

Were going to need a platform

Unit of ValueIaaS == Virtual MachineOpaque to the systemOrchestration is post-hocSystem changes are imperative (launch stuff)App Platform == ApplicationContainers are transparentLifecycle is fully managedSystem changes are declarative (manifest.yml)

Unit of ValueIaaS == Virtual MachineOpaque to the systemOrchestration is post-hocSystem changes are imperative (launch stuff)App Platform == Application Time to release a feature or AppContainers are transparentLifecycle is fully managedSystem changes are declarative (manifest.yml)

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

Here is my source codeRun it on the cloud for meI do not care how

Cloud Foundry HaikuOnsi Fakhouri

.war.jardependencieslibrariesservice manifestAppAppAppLBDBMulti-server run time environment(s).tar.gzTurning this:Into this:

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

Auto-detect frameworksLink to App PlatformSelf-service deployDynamic routingA/B versioningLive upgradesSelf-service removalElastic scaleIntegrated HALog aggregationPolicy and Auth

target push create-service bind start scale -i 100cfAppDBLBAppApp

Wheres the container in this story?

=++

Contents

Processes

?

?Isolation RulesPIDUserNetworkcgroups

cflinuxfs2What is a Container?

Lets talk about Buildpacks / Staging Ruby code that detects language, frameworks, whatnotCompiles the code into executable binaries (*)

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

cflinuxfs2

Prescriptive

CHRONOS

scheduler.nextcontainer.next

Assembly

Prescriptive

CHRONOS

scheduler.nextcontainer.nextAssemblyrunC

Prescriptive

CHRONOS

scheduler.next

gorouter

Cloud Controller

Auth

Loggregator

Staging

Buildpacks

BOSH

Service Broker

Diego

Garden

etcd

Core Servicescontainer.next

AssemblyrunC

Prescriptive

Assembly

CHRONOS

scheduler.next

gorouter

Cloud Controller

Auth

Loggregator

Staging

Buildpacks

BOSH

Service Broker

Diego

etcd

Core Servicescontainer.next

runC

That was all about 12 factor apps

What about services?

CF and Services

Development infrastructure components (DBs, Cache, Queue, etc)Loopback to other CF hosted appsReaching out to your legacyExternal providers

.war.jardependencieslibrariesservice manifestAppAppAppLBDBMulti-server run time environment(s).tar.gzTurning this:Into this:

The Cloud Native Advantage:

Simple PatternsHighly AutomatedScaled with Ease

cloudfoundry.org