cloud foundry technical overview at ibm interconnect 2016
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