cloud foundry technical overview at ibm interconnect 2016

93
Stormy Peters @storming

Upload: stormy-peters

Post on 16-Apr-2017

530 views

Category:

Software


2 download

TRANSCRIPT

Cloud Foundry Stormy Peters

Stormy Peters@storming

Cloud Foundry is an open source platform for application lifecycle automation. Develop with your favorite cloud-native application framework, then just cf push. Deploy, monitor, recover, scale, and update your apps.

1

Show of hands

Cloud Foundry is an open source platform for application life cycle automation.

Develop with your favorite cloud native application framework, and then just cf push.

Why Cloud Foundry?

Accessible

Accessible

Accessible

All kids

Developing countries

Developing countries

Its happening

Its happening

Year of the Cloud

Year of the Linux desktop

Year of the Linux desktop2001

Year of the Linux desktop2007

Year of the Linux desktop2010

OLPC

Photo by Roo Reynolds

Raspberry Pi

Waves & Waves

Photo by Kevin N. Murphy

Cusp of a brand new thing, big like electricty, big like the internet, big like the assembly line

Cusp of a brand new thing, big like electricty, big like the internet, big like the assembly line

Year of the Cloud

Big companies and individual collaborating

tough for normal humans under the covers, its in the code and in the infrastructre

tough for normal humans under the covers, its in the code and in the infrastructre

scalability

Scalability

8 million liters of beer

reliability

Reliable

microservices

Microservices

Putting these all together

Putting these all together

gorouter

Cloud Controller

Auth

Loggregator

Staging

Buildpacks

BOSH

Service Broker

Diego

LinuxWindowsDocker

etcd

Core Services

Cloud Foundry is an open source platform for application lifecycle automation. Develop with your favorite cloud-native application framework, then just cf push. Deploy, monitor, recover, scale, and update your apps.

DemoSign up for trial Cloud Foundry accountCheck out a demo app from githubDownload Cloud Foundry CLIAnd then

IBM login screen

Demo time!

Show simple pathDo cf at the end to show all the options.

Demo time!

Show simple pathDo cf at the end to show all the options.

Public, private, and hybrid deployment (Multi cloud)Portable and interoperable, enabling users and developers to move their applications wherever they need to go.Massive ecosystem of applications and developers based on an efficient marketplace.Cloud Foundry Foundation Vision:Cloud native platform supporting applications

Comic Relief

Armakuni7 hours1 billiion dollars400 transactions/second800,000 transactions

Red Nose Day

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

Continuous Innovation

Photo by See1,Do1,Teach1

continuous innovation

Amazon changes its prices more than 2.5 million times a dayDeploys every 7 seconds

Right-sizing digital innovation

Focused on cycle time optimization

Smaller teams and faster tools

Continuous IntegrationContinuous DeploymentContinuous Innovation

Continuous IntegrationContinuous DeploymentContinuous Innovation

waterscrumfall

waterscrumfall

No waterscrumfall

Continuous IntegrationContinuous DeploymentContinuous Innovation

PwC CTI http://www.pwc.com/techforecast 44

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

Two-pizza teams

Silo-breaking

Photo by wEnDy

Two-pizza teamsRight-sizing digital innovation

Focused on cycle time optimization

Smaller teams and faster tools

Microservices

Containers

12-Factor Applications

Microservices are great, but they require:

rapid provisioningbasic monitoringrapid application deploymentdevops culture

Per 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

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)

VM is faster way to an operating system, application platorm is the application, not details about how its deployed, doing things in a declarative way

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:

BUILD APPLICATION

PUSH FIRST RELEASE

MAINTAIN APPLICATION

UPDATE APPLICATIONS

RETIRE APPLICATIONSAuto-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?

Prescriptive

CHRONOS

scheduler.nextcontainer.next

Do it yourself

harmonize Kubernetes and Mesos

reimagine schedulers as plugins

Photo by izumiflowers

Prescriptive

CHRONOS

scheduler.nextcontainer.next

Do it yourself

Prescriptive

CHRONOS

scheduler.nextcontainer.nextDo it yourselfrunC

Prescriptive

CHRONOS

scheduler.next

gorouter

Cloud Controller

Auth

Loggregator

Staging

Buildpacks

BOSH

Service Broker

Diego

Garden

etcd

Core Servicescontainer.next

Do it yourselfrunC

Prescriptive

Do it yourself

CHRONOS

scheduler.next

gorouter

Cloud Controller

Auth

Loggregator

Staging

Buildpacks

BOSH

Service Broker

Diego

etcd

Core Servicescontainer.next

runC

=++

Contents

Processes

?

?Isolation RulesPIDUserNetworkcgroups

cflinuxfs2

Whats a container?Its isolation: name space, processfilesprocess - the command that targets the files to have a running processcflinuxfs2: root file system -> every droplet in CF starts life as a container thats started with default file system, user files are put on top of it, then build pack runs

Containers Are Awesome, but Not Enough

Were going to need a platform

Is BASH a platform?Is config mgmt with $YOURFAVTOOL?

Anatomy of a cf push (abridged)

start causes staging action (staging is some secret sauce)

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

Same as Herokus buildpacks.detect, compile, pull down executables, turn into binary3 scripts (detect, compile, release)

python scripts dont need to be turned into binary, but need dependencies

That was all about 12 factor apps

What about services?

Service Broker API, any implementation is fair Game5 operations:catalog - what it offerprovision - new servicebind - compine to service unpack with unbind and deprovision

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

The Cloud Native Advantage:

Simple PatternsHighly AutomatedScaled with Ease

A platform is a promise that the products will function in ways beyond whats written on the box; that the product is extensible and has value provided by an ecosystem bigger than the original vendor.

Horace Dediu, 2011http://www.asymco.com/2011/02/25/the-platform-as-a-promise/

Users see value

Were rebalancing the system towards user-driven roadmaps and control of the upstream project.

Were building support for specific industry clusters in Financial Services, Industrial IoT, and Telecommunications.

SIG photo

SIGs

Dojos

Dojos. Pair programming.

Were focusing on certification to guarantee portability of apps across clouds.

Make it lasting and durable.

Build the ecosystem of opportunity.

Absolutely critical for CF users and ecosystemCF Core:Certified ProductCertified ServiceHybrid CertificationCF ExtensionsTarget Early 2016Cloud Foundry Certification Program

CF CoreBOSHCF CoreCloud Foundry CoreCertified Products and As a Service ImplementationsMust Use Specific CF-ReleaseCFF Maintained Add-onsProjects owned by the foundationExtend or work with CF CoreMust meet qualifications for relevant CF Extension certificationCertified CF ExtensionsProjects and products external to the foundationAre certified by the foundation as interoperable with CF CoreExtended EcosystemProjects and products external to the foundationNot certifiedBOSH, while not in CF Core, remains critical to our ecosystem development efforts and represents several opportunities for certification programs.

Try it out

IBM login screen

Download it, play with it,contribute

To Try Cloud Foundry, Download CF LatticeLattice is a cloud-native development experience on your laptop.Its the essential components of Cloud Foundry:

App schedulerRouter Logging mechanisms

To create, deploy and manage your apps in containers.

Download it now to try cloud-native development!

https://github.com/cloudfoundry-incubator/lattice

Speaking notes:Want to try CF? You can download Lattice on your laptop.Made from CF components:SchedulerRouterLoggingMakes clustering containers easyGood for trying out cloud native, individuals and small teams89

New screenshot

Mailing lists

91

Slack.cloudfoundry.org

92

Learn more at cloudfoundry.org Thanks - @storming