Autoscaling Cloud Foundry with BOSH (Cloud Foundry Summit 2014)
Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging...
Transcript of Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging...
![Page 1: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/1.jpg)
@chipchildersChip Childers, VP Technology
Cloud Foundry Foundation
Going Cloud Native with Cloud Foundry
![Page 2: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/2.jpg)
Why does Cloud Native matter?
![Page 3: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/3.jpg)
Since 2000, 52% of the Fortune 500 are no longer on the list
![Page 4: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/4.jpg)
Continuous Innovation
![Page 5: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/5.jpg)
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, Redmonkhttp://redmonk.com/sogrady/2015/07/24/cloud-native-implications/
![Page 6: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/6.jpg)
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, Redmonkhttp://redmonk.com/sogrady/2015/07/24/cloud-native-implications/
![Page 7: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/7.jpg)
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, Redmonkhttp://redmonk.com/sogrady/2015/07/24/cloud-native-implications/
![Page 8: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/8.jpg)
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, Redmonkhttp://redmonk.com/sogrady/2015/07/24/cloud-native-implications/
![Page 9: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/9.jpg)
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, Redmonkhttp://redmonk.com/sogrady/2015/07/24/cloud-native-implications/
![Page 10: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/10.jpg)
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, Redmonkhttp://redmonk.com/sogrady/2015/07/24/cloud-native-implications/
![Page 11: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/11.jpg)
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, Redmonkhttp://redmonk.com/sogrady/2015/07/24/cloud-native-implications/
![Page 12: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/12.jpg)
The Cloud Native Advantage:
Simple PatternsHighly AutomatedScaled with Ease
![Page 13: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/13.jpg)
Fast, Safe, Scalable… Pick 3
![Page 14: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/14.jpg)
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
![Page 15: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/15.jpg)
SafeA.B.T. - Always Be Testing (automatically)
![Page 16: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/16.jpg)
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
![Page 17: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/17.jpg)
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
![Page 18: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/18.jpg)
![Page 19: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/19.jpg)
“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
![Page 20: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/20.jpg)
Microservices are great, but they require:
rapid provisioningbasic monitoring
rapid application deploymentdevops culture
Martin Fowler
![Page 21: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/21.jpg)
![Page 22: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/22.jpg)
• 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.
![Page 23: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/23.jpg)
But even that’s not enough…
![Page 24: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/24.jpg)
• 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
![Page 25: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/25.jpg)
You must be this tall…
![Page 26: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/26.jpg)
We’re going to need a platform
![Page 27: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/27.jpg)
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)
![Page 28: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/28.jpg)
Unit of Value
IaaS == Virtual Machine• Opaque to the system• Orchestration is post-hoc• System changes are
imperative (“launch” stuff)
App Platform == ApplicationTime to release a feature or App
• Containers are transparent
• Lifecycle is fully managed
• System changes are declarative (manifest.yml)
![Page 29: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/29.jpg)
Platforms make promises
Constraints are the contract that allows a platform to keep
promises
![Page 30: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/30.jpg)
Here is my source codeRun it on the cloud for meI do not care how
Cloud Foundry HaikuOnsi Fakhouri
![Page 31: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/31.jpg)
Buildpack Docker Rocket
Browser Mobile IoT DevicesEnd 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
![Page 32: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/32.jpg)
.war .jar
dependencies
libraries
service manifest
App App App
LB
DB
Multi-‐server run time environment(s)
.tar.gz
Turning this: Into this:
![Page 33: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/33.jpg)
https://blog.appdynamics.com/devops/the-future-of-ops/
Or even this…
![Page 34: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/34.jpg)
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
![Page 35: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/35.jpg)
target <mycf>push <myapp>create-service <myservice>bind <myapp> <myservice>start <myapp>scale <myapp> -i 100…
cf
App
DB
LB
App App
![Page 36: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/36.jpg)
Where’s the container in this story?
![Page 37: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/37.jpg)
![Page 38: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/38.jpg)
= + +Contents Processes
??Isolation Rules
PIDUser
Network
cgroups cflinuxfs2
What is a “Container”?
![Page 39: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/39.jpg)
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
![Page 40: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/40.jpg)
Prescriptive
CH
RON
OS
scheduler.n
ext
container.next
Assembly
![Page 41: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/41.jpg)
Prescriptive
CH
RON
OS
scheduler.n
ext
container.next
Assembly
runC
![Page 42: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/42.jpg)
Prescriptive
CH
RON
OS
scheduler.n
ext
gorouter
Clo
ud C
ontro
ller
Auth
Loggregator
Staging
Buildpacks
BOSH
Service Broker
Diego
Garden
etcd
Core Services
container.next
Assembly
runC
![Page 43: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/43.jpg)
Prescriptive Assembly
CH
RON
OS
scheduler.n
ext
gorouter
Clo
ud C
ontro
ller
Auth
Loggregator
Staging
Buildpacks
BOSH
Service Broker
Diego
etcd
Core Services
container.nextrunC
![Page 44: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/44.jpg)
That was all about 12 factor apps…
What about services?
![Page 45: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/45.jpg)
CF and Services
- Development infrastructure components (DBs, Cache, Queue, etc…)
- Loopback to other CF hosted apps- Reaching out to your “legacy”- External providers
![Page 46: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/46.jpg)
![Page 47: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/47.jpg)
![Page 48: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/48.jpg)
.war .jar
dependencies
libraries
service manifest
App App App
LB
DB
Multi-‐server run time environment(s)
.tar.gz
Turning this: Into this:
![Page 49: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/49.jpg)
The Cloud Native Advantage:
Simple PatternsHighly AutomatedScaled with Ease
![Page 50: Cloud Foundry - Going Cloud Native with Cloud Foundry · Let’s talk about Buildpacks / Staging • Ruby code that detects language, frameworks, whatnot… • Compiles the code](https://reader033.fdocuments.us/reader033/viewer/2022050209/5f5b863a6c54606c996368d6/html5/thumbnails/50.jpg)
cloudfoundry.org