SlideShare a Scribd company logo
Blasting Through the Clouds
Automating Cloud Foundry with Concourse CI
Photo by Emiel Molenaar on Unsplash
About me
Fabian Keller
Software Engineer
Woodworker
@_fabiankeller
www.fabian-keller.de
PCF Releases
Sep‘18 Oct‘18 Nov‘18 Dec‘18 Jan‘19 Feb‘19 Mar‘19 Apr‘19 May‘19
Maintenance Release
Security Release
PCF AS
Stemcell
2.3
PCF AS
Stemcell
2.4
PCF AS
Stemcell
2.5
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 3
Then add environments…
Bleeding Edge
Developers
Upgrade Test
Operators
Sandbox
Operators
Development
Developers Testing
Developers Production
Developers
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 4
Help!
We need to automate this...
Photo by Alex Knight on Unsplash
Concourse
An open-source
continuous thing-doer
Why Concourse?
And not [Jenkins | Bamboo | …]
• Automate everything!
• Controlled and reproducible builds
• Easy mechanics à Containers
• Automation as Code
• Shiny UI (and CLI)
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 7
Tasks
The basic mechanics of Concourse
---
platform: linux
image_resource:
type: docker-image
source: {repository: busybox}
run:
path: echo
args: ["Hello CF Meetup!"]
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 8
Tasks == Functions
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 9
Task Inputs / Outputs
Parameters and return values
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 10
---
platform: linux
image_resource:
type: docker-image
source: {repository: ubuntu}
inputs:
- name: name
outputs:
- name: greeting
run:
path: bash
args:
- -c
- |
echo "Hello $(cat ./name/*)!" > ./greeting/greeting.txt
Resources
Concourse can process any resource
• Check resources for new versions
• Pull resources at specific versions
• Push resources to create new
versions
• Default resource types available: git,
s3, time, semver, docker-image, …
resources:
- name: project
type: git
source:
uri: ssh://git@gitlab.com/my/repo.git
branch: master
- name: cache
type: s3
source:
access_key_id: ((s3_access_key_id))
secret_access_key: ((s3_secret_key))
endpoint: ((s3_endpoint))
region_name: ((s3_region))
bucket: ((s3_bucket))
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 11
Connecting Tasks
Pipelines connect resources with tasks…
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 12
Connecting Tasks
… in a simple YAML file
# install-pcf-pipeline.yml
resoures:
- name: pcf-pipelines
type: git
source:
# ...
jobs:
- name: create-infrastructure
plan:
- aggregate:
- get: pcf-pipelines
- get: terraform-state
- task: find-ami
# ...
- task: create-infrastructure
file: pcf-pipelines/tasks/create-infra/task.yml
# ...
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 13
Handling Secrets
• Secrets are passed to tasks as
parameters
• Concourse fetches secrets from
external credentials manager (Vault /
Credhub)
• No secrets in pipeline/task
definitions
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 14
# deploy-to-aws-pipeline.yml
jobs:
- name: create-infrastructure
plan:
- task: deploy-on-aws
config:
params:
AWS_ACCESS_KEY: ((aws-access-key))
AWS_SECRET_KEY: ((aws-secret-key))
AWS_REGION: ((aws-region))
PCF
Automation
Status Quo
pcf-pipelines
A collection of pipelines for installing and upgrading PCF
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 16
pcf-pipelines
Tile upgrade pipeline
Well, that was easy!
Maybe too easy?
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 17
pcf-pipelines
Ready-made tasks
PCF Installation
• config-ert
• config-opsman
• configure-ert
• configure-product
• create-initial-terraform-state
• delete-vm
Tile Upgrades
• disable-errands
• toggle-errands
• download-boshio-stemcells
• download-custom-stemcells-from-s3
• download-pivnet-stemcells
• delete-unused-products
• stage-and-apply-updates
• stage-product
• upload-product-and-stemcell
• wait-opsman-clear
• apply-changes
OpsManager Upgrade
• deploy-opsman-vm
• export-opsmgr-settings
• import-opsmgr-settings
• replace-vm
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 18
pcf-pipelines
Is deprecated unfortunately
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 19
PCF Automation pcf-pipelines
• Currently in beta: http://docs.pivotal.io/platform-automation/
• No reference pipeline for tile upgrades so far
• Improved tasks:
upload-product-and-stemcell
upload-and-stage-product
upload-product
upload-stemcell
assign-stemcell
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 20
CONCOURSE GOOD PRACTICE #1
Build reusable tasks
… and combine them to tailored pipelines
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 21
What do we
really need?
A tool operators want to
work with every day!
Photo by Todd Quackenbush on Unsplash
How to upgrade CF
Upload product, stage product, apply changes.
IaaS
Operations
Manager
Concourse
Operations
Manager
Cloud
Foundry
Application
Service
Isolation
Segment
One
MySQL for
PCF
Isolation
Segment
Two
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 23
We need environment support
Bleeding Edge
Upgrade Test
Sandbox
Development Testing Production
Operations
Manager
Cloud
Foundry
Application
Service
Isolation
Segment
One
MySQL for
PCF
Isolation
Segment
Two
Isolation
Segment
Three
RabbitMQ
for PCF
Operations
Manager
Cloud
Foundry
Application
Service
Isolation
Segment
One
MySQL for
PCF
Isolation
Segment
Two
Operations
Manager
Cloud
Foundry
Application
Service
Isolation
Segment
One
MySQL for
PCF
Isolation
Segment
Two
Operations
Manager
Cloud
Foundry
Application
Service
Isolation
Segment
One
MySQL for
PCF
Isolation
Segment
Two
Operations
Manager
Cloud
Foundry
Application
Service
Isolation
Segment
One
MySQL for
PCF
Isolation
Segment
Two
Operations
Manager
Cloud
Foundry
Application
Service
Isolation
Segment
One
MySQL for
PCF
Isolation
Segment
Two
New Relic
RabbitMQ
for PCF
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 24
We need offline support
Well, we‘re in Germany after all
Concourse
Pivotal
Network
PCF
DMZ
Download
Concourse
Pivotal
Network
S3
Upgrade
Concourse
PCF
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 25
What do we really need?
• Multi-environment
• Offline Cloud Foundry à Offline Pipelines
• Stemcells?!
• Really bleeding edge?
• Organizational Constraints
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 26
Let‘s build it
And the journey begins...
6
Photo by Will Suddreth on Unsplash
S3 Layout
The shared data of our automation setup
• Upload: Upload .pivotal tiles once
• Info: Extract required metadata and
store it for each version
• Installed: Copy the .pivotal tiles to
each environment folder when
deploying
├── upload
│ ├── cf
│ │ ├── cf-2.4.1.pivotal
│ │ └── cf-2.4.2.pivotal
│ └── p-isolation-segment
│ └── p-iso-2.4.1.pivotal
├── info
│ ├── cf
│ │ ├── 2.4.1.yml
│ │ └── 2.4.2.yml
│ └── p-isolation-segment
│ └── 2.4.1.yml
└── installed
├── dev
│ ├── cf
│ │ ├── cf-2.4.1.pivotal
│ └── p-isolation-segment
│ └── p-iso-2.4.1.pivotal
└── prod
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 28
Triggering Deployments
Making it simple to deploy the correct version
Operations
Manager
CF
Application
Service
2.4.1
Isolation
Segment
One
2.4.1
MySQL for
PCF
1.9.6
Isolation
Segment
Two
2.4.1
Operations
Manager
CF
Application
Service
2.4.3
Isolation
Segment
One
2.4.3
MySQL for
PCF
1.9.8
Isolation
Segment
Two
2.4.3
cf: 2.4.1
p-isoseg-one: 2.4.1
p-isoseg-two: 2.4.1
p-mysql: 1.9.6
cf: 2.4.3
p-isoseg-one: 2.4.3
p-isoseg-two: 2.4.3
p-mysql: 1.9.8
dev.yml dev.yml
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 29
CONCOURSE GOOD PRACTICE #2
Operator Experience (OX)
… making it fun and safe to use all the tools
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 30
Multi-product Upgrade Pipeline
One pipeline to upgrade a whole foundation
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 31
We have built some tasks
Tailoring the tasks that pcf-pipelines provides
Preparation Pipeline
• extract-product-info
• create-isolation-segment
Update Pipeline
• validate-versions
• product-setup
• upload-stemcell
• upload-product
• stage-product
• apply-changes
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 32
pcfup
We haven‘t open-sourced the tasks, but they are heavily using pcfup
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 33
Demo Time!
Photo by SpaceX on Unsplash
Buildpack Pipelines
Building from source and distributing accross environments
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 35
Challenges
There is still a lot to do
• Concourse resource versions
• Run pipeline with Version X not possible
• Triggers work only good with latest version
• Pipeline Complexity
• Complex tasks are harder to maintain
• At times difficult to oversee all moving parts
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 36
Thank you! Questions?
2019-05-22 / CF Meetup Stuttgart / Fabian Keller 37
@_fabiankeller
Also check out:
https://blog.mimacom.com/tag/cloud-foundry/

More Related Content

PDF
The Challenges of Taking Open Source Cloud Foundry to Production
PDF
Collect Cloud Foundry App Logs with Fluentd
PPTX
Towards Flink 2.0: Unified Batch & Stream Processing - Aljoscha Krettek, Ver...
PDF
Scaffolding for Serverless: lightning talk for AWS Arlington Meetup
PDF
Why we don’t use the Term DevOps: the Journey to a Product Mindset - Destinat...
PPTX
Virtual Flink Forward 2020: Integrate Flink with Kubernetes natively - Yang Wang
PPTX
Virtual Flink Forward 2020: Implement Reliable, Isolated & Unified Job Submis...
PDF
Jenkins X - automated CI/CD solution for cloud native applications on Kubernetes
The Challenges of Taking Open Source Cloud Foundry to Production
Collect Cloud Foundry App Logs with Fluentd
Towards Flink 2.0: Unified Batch & Stream Processing - Aljoscha Krettek, Ver...
Scaffolding for Serverless: lightning talk for AWS Arlington Meetup
Why we don’t use the Term DevOps: the Journey to a Product Mindset - Destinat...
Virtual Flink Forward 2020: Integrate Flink with Kubernetes natively - Yang Wang
Virtual Flink Forward 2020: Implement Reliable, Isolated & Unified Job Submis...
Jenkins X - automated CI/CD solution for cloud native applications on Kubernetes

What's hot (20)

PDF
Automated Serverless Pipelines with #GitOps on Codefresh
PDF
Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...
PDF
Terraform GitOps on Codefresh
PDF
Meetup Openshift Geneva 03/10
PPTX
Cross Cloud CI Intro
PDF
Monitoring Akka with Kamon 1.0
PDF
Getting MongoDB to a Developer Fast - Kubernetes for the Enterprise - London
PDF
Introduction of cloud native CI/CD on kubernetes
PDF
Dockerized apps on Kubernetes
PDF
Evolutionary infrastructure agile 2018 - kief morris
PDF
Papyrus for RealTime - Executable Modeling on Eclipse
PPTX
Where is my scalable API?
PDF
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
PPTX
Spark industrialisation
PDF
Velocity London - Chaos Engineering Bootcamp
PPTX
Multi-cloud CI/CD with failover powered by K8s, Istio, Helm, and Codefresh
PDF
Developer Journey at Zalando - Idea to Production with Containers in the Clou...
PDF
Cloud Native CI/CD with Jenkins X and Knative Pipelines
PDF
10 Steps to Cloud Happiness
PDF
Faster, more Secure Application Modernization and Replatforming with PKS - Ku...
Automated Serverless Pipelines with #GitOps on Codefresh
Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...
Terraform GitOps on Codefresh
Meetup Openshift Geneva 03/10
Cross Cloud CI Intro
Monitoring Akka with Kamon 1.0
Getting MongoDB to a Developer Fast - Kubernetes for the Enterprise - London
Introduction of cloud native CI/CD on kubernetes
Dockerized apps on Kubernetes
Evolutionary infrastructure agile 2018 - kief morris
Papyrus for RealTime - Executable Modeling on Eclipse
Where is my scalable API?
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Spark industrialisation
Velocity London - Chaos Engineering Bootcamp
Multi-cloud CI/CD with failover powered by K8s, Istio, Helm, and Codefresh
Developer Journey at Zalando - Idea to Production with Containers in the Clou...
Cloud Native CI/CD with Jenkins X and Knative Pipelines
10 Steps to Cloud Happiness
Faster, more Secure Application Modernization and Replatforming with PKS - Ku...
Ad

Similar to Blasting Through the Clouds - Automating Cloud Foundry with Concourse CI (20)

PPTX
Automated PCF Upgrades with Concourse
PDF
How Percolate uses CFEngine to Manage AWS Stateless Infrastructure
PDF
What is CF
PDF
How to Scale Operations for a Multi-Cloud Platform using PCF
PDF
Denver Cloud Foundry Meetup - February 2016
PPTX
Spring Boot & Spring Cloud on k8s and PCF
PDF
Upgrade your InfoSec, Ops and Dev teams with PCF 1.12
PPTX
An Integrated Pipeline for Private and Public Clouds with Jenkins, Artifactor...
PDF
Concourse, Spinnaker, Cloud Foundry, Oh My! Creating Sophisticated Deployment...
PPTX
Cloud Foundry Vancouver Meetup July 2016
PDF
Adopting PCF At An Automobile Manufacturer
PDF
Adopting PCF At An Automobile Manufacturer
PPTX
Cloud Foundry Roadmap in 2016
PDF
EMC DevOps Day Aug-2015 - Stormy Peters, Cloud Foundry Foundation
PDF
quickguide-einnovator-4-cloudfoundry
PPTX
Introduction to CFEngine Enterprise 3.6.0 Webinar
PDF
Cloud foundry on kubernetes
PDF
Using Docker in CI process
PDF
Cloud foundry shanghai summit experience
PDF
Automation and Culture Changes for 40M Subscriber Platform Operation
Automated PCF Upgrades with Concourse
How Percolate uses CFEngine to Manage AWS Stateless Infrastructure
What is CF
How to Scale Operations for a Multi-Cloud Platform using PCF
Denver Cloud Foundry Meetup - February 2016
Spring Boot & Spring Cloud on k8s and PCF
Upgrade your InfoSec, Ops and Dev teams with PCF 1.12
An Integrated Pipeline for Private and Public Clouds with Jenkins, Artifactor...
Concourse, Spinnaker, Cloud Foundry, Oh My! Creating Sophisticated Deployment...
Cloud Foundry Vancouver Meetup July 2016
Adopting PCF At An Automobile Manufacturer
Adopting PCF At An Automobile Manufacturer
Cloud Foundry Roadmap in 2016
EMC DevOps Day Aug-2015 - Stormy Peters, Cloud Foundry Foundation
quickguide-einnovator-4-cloudfoundry
Introduction to CFEngine Enterprise 3.6.0 Webinar
Cloud foundry on kubernetes
Using Docker in CI process
Cloud foundry shanghai summit experience
Automation and Culture Changes for 40M Subscriber Platform Operation
Ad

More from Fabian Keller (7)

PDF
Cloud Foundry - A Platform for Everyone
PDF
Quo Vadis Netflix Stack?
PDF
Skalierbare Multicast Konzepte
PDF
Systematic Architecture Level Fault Diagnosis Using Statistical Techniques
PPTX
Introducing Performance Awareness in an Integrated Specification Environment
PDF
Referenzmodelle für das Informationsmanagement in der Smart Factory
PDF
High Dimensional Data Visualization
Cloud Foundry - A Platform for Everyone
Quo Vadis Netflix Stack?
Skalierbare Multicast Konzepte
Systematic Architecture Level Fault Diagnosis Using Statistical Techniques
Introducing Performance Awareness in an Integrated Specification Environment
Referenzmodelle für das Informationsmanagement in der Smart Factory
High Dimensional Data Visualization

Recently uploaded (20)

PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
System and Network Administration Chapter 2
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
history of c programming in notes for students .pptx
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
System and Network Administraation Chapter 3
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
top salesforce developer skills in 2025.pdf
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
Introduction to Artificial Intelligence
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
How Creative Agencies Leverage Project Management Software.pdf
PPTX
Transform Your Business with a Software ERP System
Which alternative to Crystal Reports is best for small or large businesses.pdf
Odoo Companies in India – Driving Business Transformation.pdf
System and Network Administration Chapter 2
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
history of c programming in notes for students .pptx
Design an Analysis of Algorithms II-SECS-1021-03
Navsoft: AI-Powered Business Solutions & Custom Software Development
Operating system designcfffgfgggggggvggggggggg
Internet Downloader Manager (IDM) Crack 6.42 Build 41
System and Network Administraation Chapter 3
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
top salesforce developer skills in 2025.pdf
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
VVF-Customer-Presentation2025-Ver1.9.pptx
Introduction to Artificial Intelligence
Softaken Excel to vCard Converter Software.pdf
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
How Creative Agencies Leverage Project Management Software.pdf
Transform Your Business with a Software ERP System

Blasting Through the Clouds - Automating Cloud Foundry with Concourse CI

  • 1. Blasting Through the Clouds Automating Cloud Foundry with Concourse CI Photo by Emiel Molenaar on Unsplash
  • 2. About me Fabian Keller Software Engineer Woodworker @_fabiankeller www.fabian-keller.de
  • 3. PCF Releases Sep‘18 Oct‘18 Nov‘18 Dec‘18 Jan‘19 Feb‘19 Mar‘19 Apr‘19 May‘19 Maintenance Release Security Release PCF AS Stemcell 2.3 PCF AS Stemcell 2.4 PCF AS Stemcell 2.5 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 3
  • 4. Then add environments… Bleeding Edge Developers Upgrade Test Operators Sandbox Operators Development Developers Testing Developers Production Developers 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 4
  • 5. Help! We need to automate this... Photo by Alex Knight on Unsplash
  • 7. Why Concourse? And not [Jenkins | Bamboo | …] • Automate everything! • Controlled and reproducible builds • Easy mechanics à Containers • Automation as Code • Shiny UI (and CLI) 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 7
  • 8. Tasks The basic mechanics of Concourse --- platform: linux image_resource: type: docker-image source: {repository: busybox} run: path: echo args: ["Hello CF Meetup!"] 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 8
  • 9. Tasks == Functions 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 9
  • 10. Task Inputs / Outputs Parameters and return values 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 10 --- platform: linux image_resource: type: docker-image source: {repository: ubuntu} inputs: - name: name outputs: - name: greeting run: path: bash args: - -c - | echo "Hello $(cat ./name/*)!" > ./greeting/greeting.txt
  • 11. Resources Concourse can process any resource • Check resources for new versions • Pull resources at specific versions • Push resources to create new versions • Default resource types available: git, s3, time, semver, docker-image, … resources: - name: project type: git source: uri: ssh://git@gitlab.com/my/repo.git branch: master - name: cache type: s3 source: access_key_id: ((s3_access_key_id)) secret_access_key: ((s3_secret_key)) endpoint: ((s3_endpoint)) region_name: ((s3_region)) bucket: ((s3_bucket)) 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 11
  • 12. Connecting Tasks Pipelines connect resources with tasks… 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 12
  • 13. Connecting Tasks … in a simple YAML file # install-pcf-pipeline.yml resoures: - name: pcf-pipelines type: git source: # ... jobs: - name: create-infrastructure plan: - aggregate: - get: pcf-pipelines - get: terraform-state - task: find-ami # ... - task: create-infrastructure file: pcf-pipelines/tasks/create-infra/task.yml # ... 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 13
  • 14. Handling Secrets • Secrets are passed to tasks as parameters • Concourse fetches secrets from external credentials manager (Vault / Credhub) • No secrets in pipeline/task definitions 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 14 # deploy-to-aws-pipeline.yml jobs: - name: create-infrastructure plan: - task: deploy-on-aws config: params: AWS_ACCESS_KEY: ((aws-access-key)) AWS_SECRET_KEY: ((aws-secret-key)) AWS_REGION: ((aws-region))
  • 16. pcf-pipelines A collection of pipelines for installing and upgrading PCF 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 16
  • 17. pcf-pipelines Tile upgrade pipeline Well, that was easy! Maybe too easy? 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 17
  • 18. pcf-pipelines Ready-made tasks PCF Installation • config-ert • config-opsman • configure-ert • configure-product • create-initial-terraform-state • delete-vm Tile Upgrades • disable-errands • toggle-errands • download-boshio-stemcells • download-custom-stemcells-from-s3 • download-pivnet-stemcells • delete-unused-products • stage-and-apply-updates • stage-product • upload-product-and-stemcell • wait-opsman-clear • apply-changes OpsManager Upgrade • deploy-opsman-vm • export-opsmgr-settings • import-opsmgr-settings • replace-vm 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 18
  • 19. pcf-pipelines Is deprecated unfortunately 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 19
  • 20. PCF Automation pcf-pipelines • Currently in beta: http://docs.pivotal.io/platform-automation/ • No reference pipeline for tile upgrades so far • Improved tasks: upload-product-and-stemcell upload-and-stage-product upload-product upload-stemcell assign-stemcell 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 20
  • 21. CONCOURSE GOOD PRACTICE #1 Build reusable tasks … and combine them to tailored pipelines 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 21
  • 22. What do we really need? A tool operators want to work with every day! Photo by Todd Quackenbush on Unsplash
  • 23. How to upgrade CF Upload product, stage product, apply changes. IaaS Operations Manager Concourse Operations Manager Cloud Foundry Application Service Isolation Segment One MySQL for PCF Isolation Segment Two 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 23
  • 24. We need environment support Bleeding Edge Upgrade Test Sandbox Development Testing Production Operations Manager Cloud Foundry Application Service Isolation Segment One MySQL for PCF Isolation Segment Two Isolation Segment Three RabbitMQ for PCF Operations Manager Cloud Foundry Application Service Isolation Segment One MySQL for PCF Isolation Segment Two Operations Manager Cloud Foundry Application Service Isolation Segment One MySQL for PCF Isolation Segment Two Operations Manager Cloud Foundry Application Service Isolation Segment One MySQL for PCF Isolation Segment Two Operations Manager Cloud Foundry Application Service Isolation Segment One MySQL for PCF Isolation Segment Two Operations Manager Cloud Foundry Application Service Isolation Segment One MySQL for PCF Isolation Segment Two New Relic RabbitMQ for PCF 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 24
  • 25. We need offline support Well, we‘re in Germany after all Concourse Pivotal Network PCF DMZ Download Concourse Pivotal Network S3 Upgrade Concourse PCF 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 25
  • 26. What do we really need? • Multi-environment • Offline Cloud Foundry à Offline Pipelines • Stemcells?! • Really bleeding edge? • Organizational Constraints 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 26
  • 27. Let‘s build it And the journey begins... 6 Photo by Will Suddreth on Unsplash
  • 28. S3 Layout The shared data of our automation setup • Upload: Upload .pivotal tiles once • Info: Extract required metadata and store it for each version • Installed: Copy the .pivotal tiles to each environment folder when deploying ├── upload │ ├── cf │ │ ├── cf-2.4.1.pivotal │ │ └── cf-2.4.2.pivotal │ └── p-isolation-segment │ └── p-iso-2.4.1.pivotal ├── info │ ├── cf │ │ ├── 2.4.1.yml │ │ └── 2.4.2.yml │ └── p-isolation-segment │ └── 2.4.1.yml └── installed ├── dev │ ├── cf │ │ ├── cf-2.4.1.pivotal │ └── p-isolation-segment │ └── p-iso-2.4.1.pivotal └── prod 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 28
  • 29. Triggering Deployments Making it simple to deploy the correct version Operations Manager CF Application Service 2.4.1 Isolation Segment One 2.4.1 MySQL for PCF 1.9.6 Isolation Segment Two 2.4.1 Operations Manager CF Application Service 2.4.3 Isolation Segment One 2.4.3 MySQL for PCF 1.9.8 Isolation Segment Two 2.4.3 cf: 2.4.1 p-isoseg-one: 2.4.1 p-isoseg-two: 2.4.1 p-mysql: 1.9.6 cf: 2.4.3 p-isoseg-one: 2.4.3 p-isoseg-two: 2.4.3 p-mysql: 1.9.8 dev.yml dev.yml 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 29
  • 30. CONCOURSE GOOD PRACTICE #2 Operator Experience (OX) … making it fun and safe to use all the tools 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 30
  • 31. Multi-product Upgrade Pipeline One pipeline to upgrade a whole foundation 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 31
  • 32. We have built some tasks Tailoring the tasks that pcf-pipelines provides Preparation Pipeline • extract-product-info • create-isolation-segment Update Pipeline • validate-versions • product-setup • upload-stemcell • upload-product • stage-product • apply-changes 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 32
  • 33. pcfup We haven‘t open-sourced the tasks, but they are heavily using pcfup 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 33
  • 34. Demo Time! Photo by SpaceX on Unsplash
  • 35. Buildpack Pipelines Building from source and distributing accross environments 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 35
  • 36. Challenges There is still a lot to do • Concourse resource versions • Run pipeline with Version X not possible • Triggers work only good with latest version • Pipeline Complexity • Complex tasks are harder to maintain • At times difficult to oversee all moving parts 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 36
  • 37. Thank you! Questions? 2019-05-22 / CF Meetup Stuttgart / Fabian Keller 37 @_fabiankeller Also check out: https://blog.mimacom.com/tag/cloud-foundry/