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
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
Copyright: mimacom ag, 2019. Alle Rechte vorbehalten, auch bzgl. jeder Verwertung, Reproduktion und Weitergabe
2019-10-17 / Team Talks / @_fabiankeller
3
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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.
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
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
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
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
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
$ 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

Cloud Foundry - A Platform for Everyone

  • 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 pushthank-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