Cloud Foundry is a cloud application platform that makes it faster and easier to build, test, deploy and scale applications. The platform is recently being adopted by lots of companies to securely host thousands of applications while at the same time reducing operational burden for developers significantly. The platform is equipped with a marketplace to provide any backing service your application may need with the click of a button. In this talk, you'll get an understanding of what Cloud Foundry is, why it increases the productivity of development teams and see how to run and operate a microservice landscape in a live demo. Once you deployed your first app, you can hardly imagine deploying software differently!
1. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Cloud Foundry
A Platform for Everyone
// Fabian Keller
Photo by Dominik Schröder on Unsplash
2. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Fabian Keller
Software Engineer @mimacom
Woodworker @127.0.0.1
# CLOUD PLATFORMS
# ARCHITECTURE
# DESIGN SYSTEMS
# DEVOPS
@_fabiankeller
www.fabian-keller.de
2019-10-17 / Team Talks / @_fabiankeller
2
3. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
2019-10-17 / Team Talks / @_fabiankeller
3
4. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
2019-10-17 / Team Talks / @_fabiankeller
4
The industry standard platform for cloud applications. Built for
fast-cycle innovation. Designed for the enterprise.
5. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Cloud Foundry Foundation
There is no single vendor
2019-10-17 / Team Talks / @_fabiankeller
5
6. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Cloud Foundry
and the ecosystem
2019-10-17 / Team Talks / @_fabiankeller
6
Platform
as a Service
Container
as a Service
Function
as a Service
7. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Circles of Infrastructure
What is a PaaS?
2019-10-17 / Team Talks / @_fabiankeller
7
Hardware
IaaS
CaaS
PaaS
FaaS
SaaS
Flexibility Operational
Efficiency
8. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Why Cloud Foundry?
2019-10-17 / Team Talks / @_fabiankeller
8
Open Source Faster to iterate Scalable platform
9. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Getting Started
2019-10-17 / Team Talks / @_fabiankeller
9
Photo by Jukan Tateisi on Unsplash
10. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Cloud Foundry Overview
Runs on any IaaS
2019-10-17 / Team Talks / @_fabiankeller
10
IAAS
PAAS
Application
Application
Application
Cloud Foundry
11. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Cloud Foundry High Level Usage
Here is my source code, run it on the cloud for me, I don’t care how.
2019-10-17 / Team Talks / @_fabiankeller
11
Push
Cloud Foundry
Application Application
12. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Tenancy Management
Logical isolation
• Cloud Foundry supports
organizations for tenancy
management
• Organizations contain spaces
that further divides the
organization
• Organization can be limited with
quotas and billed based on their
usage
2019-10-17 / Team Talks / @_fabiankeller
12
Organization
Space
Space
R & D
Test
QA
13. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Organisations
Logical isolation
• Organisations have users with
different roles: Manager / Billing
Manager / Auditor
• Organization can have quotas
assigned that limits the total
resource consumption
• Organizations can be self-
maintained by the organization
admin
2019-10-17 / Team Talks / @_fabiankeller
13
Organization
Role User
Quota
Memory
# Apps
14. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Spaces
Logical isolation
• Spaces have users with different
roles: Manager, Developer,
Auditor
• Spaces can have additional
quotas assigned that limit the
total resource consumption
• Services and applications are
scoped to a space
2019-10-17 / Team Talks / @_fabiankeller
14
Organization
Role
User
Quota
Memory
# Apps
Space
15. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Routing
Ensuring traffic reaches your application
2019-10-17 / Team Talks / @_fabiankeller
15
https://myapp.cfapps.io/api/v2/account
Secure by default
App name (unique across platform for the domain)
Domains available in the platform
Path prefix (rarely used)
App-specific
16. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Demo Pushing App
to Cloud Foundry
2019-10-17 / Team Talks / @_fabiankeller
16
17. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Operations
2019-10-17 / Team Talks / @_fabiankeller
17
Photo by Tim Mossholder on Unsplash
18. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Cloud Foundry Architecture
2019-10-17 / Team Talks / @_fabiankeller
18
Router
Cloud
Controller
Messaging
Diego
Diego Cell Diego Cell
Diego Cell Diego Cell Metrics &
Logging
Authentication
Service Brokers
Your app
19. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Buildpacks
Turning source code into a container
2019-10-17 / Team Talks / @_fabiankeller
19
App Source
Code
stage Droplet
cf push store
• Add frameworks, libraries and runtimes
• Add APM tools
• Put certificates in place
• Configure security
• Optimize runtime (e.g. memory flags)
20. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Scaling
Horizontal or vertical
• Applications can be horizontally
scaled out with more instances
(without down-time and
recommended)
• Applications can be vertically scaled
up with more memory / disk space
• Pivotal CF auto-scaler can
automatically scale based on CPU
load
2019-10-17 / Team Talks / @_fabiankeller
20
21. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Logging & Monitoring
Insights for your app
• Cloud Foundry supports the collection of all logs
and metrics (components, apps) into a unified
stream
• Logs can be retrieved from the platform via
Ø Command Line
Ø Syslog
Ø 3rd Party Systems (e.g. Datadog, Instana)
2019-10-17 / Team Talks / @_fabiankeller
21
22. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Zero Downtime Deployments
And doing them frequently
2019-10-17 / Team Talks / @_fabiankeller
22
Router
App
GREEN
App
BLUE
myapp.cfapps.io
Remap
Blue / Green Deployments
Router
App
GREEN
App
BLUE
myapp.cfapps.io
Scale down
Canary Deployments
Scale up
23. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Demo Operating an App
on Cloud Foundry
2019-10-17 / Team Talks / @_fabiankeller
23
24. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Services
2019-10-17 / Team Talks / @_fabiankeller
24
Photo by Jan Kolar / VUI Designer on Unsplash
25. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Services
Self-service for spicing up your app with services
• Cloud Foundry provides a service abstraction for service
providers and consumer applications
• Service Broker provides possibility to provision services (e.g.
persistent services) through a centralized API
• Application can use the services by inspecting the environment
variable VCAP_SERVICES
2019-10-17 / Team Talks / @_fabiankeller
25
26. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Marketplace
Offers a wide variety of different services
• Services can be registered in
the marketplace (either
manually or during
installation with bosh)
• Services can offer service
plans (e.g. 1 GB, 10 GB,
dedicated)
• Administrator can configure
service plans
2019-10-17 / Team Talks / @_fabiankeller
26
27. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Open Service Broker API
Integrate any service
2019-10-17 / Team Talks / @_fabiankeller
27
• Open API
specification to
provision and bind
service instances
• Platform-agnostic to
foster reuse of
service broker
implementations
across different
platforms.
28. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Demo Using Services
on Cloud Foundry
2019-10-17 / Team Talks / @_fabiankeller
28
29. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
How to succeed in
adopting a cloud platform
Beginning the journey
2019-10-17 / Team Talks / @_fabiankeller
29
Photo by Daniel Hjalmarsson on Unsplash
30. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Agile
Adopting an agile mindset
• Delivering value, fast
• Maintaining and prioritizing a
backlog
• Daily Standup
• Pair / Mob programming
2019-10-17 / Team Talks / @_fabiankeller
30
31. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Platform Team
The role of a platform team?
Build a superior path to production, and
operate it as a service to developers.
@jamesurquhart
2019-10-17 / Team Talks / @_fabiankeller
31
Photo by Annie Spratt on Unsplash
32. Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
Cloud Native Maturity Model
Mastering the cloud journey
2019-10-17 / Team Talks / @_fabiankeller
32
Cloud Native API-first design
Microservices
Cloud Resilient Expect failure and prepare for it
Cloud Friendly 12 Factors (www.12factor.net)
Horizontally scalable
Cloud Ready It works in the cloud
33. $ cf push thank-you
Pushing from manifest to org mimacom / space training as fabian.keller...
Creating app with these attributes...
+ name: thank-you
path: /development/cloudfoundry/training/thank-you.jar
+ memory: 1G
routes:
+ thank-you-awesome-audience.cfapps.io
2019-10-17 / Team Talks / @_fabiankeller
33
Let’s keep in touch:
@_fabiankeller