SlideShare une entreprise Scribd logo
1  sur  147
Télécharger pour lire hors ligne
Concourse Workshop
SpringOne Platform 2019
Workshop agenda
1:00 - 1:10 | Welcome remarks
1:10 - 1:40 | Concourse 102 talk
1:40 - 2:00 | Concourse Roadmap
2:00 - 2:10 | Breakout intros & snack break
2:10 - 2:55 | Breakout discussion groups
2:55 - 3:00 | Wrap-up
Concourse Sessions @S1P
PKS Automation Station...All Aboard: Enabling
Team Access to PKS with a Concourse Pipeline
(Dick’s Sporting Goods)
Tuesday, 11:30am–12:40pm, Ballroom E
Deploy on Friday!
Tuesday, 11:30am–12:40pm, Ballroom F
Square Pegs, Square Holes: CI/CD That Fits
Tuesday. 3:20pm–3:50pm, 15AB
The Continuous Platform (Cerner)
Tuesday, 5:40pm–6:10pm, 15AB
General Motors In-Vehicle App Store and
Personalization Case Study (General Motors)
Tuesday, 5:40pm–6:10pm, 17AB
Accelerating the Developers’ Road to the Cloud
at Enterprise Scale (Fidelity Investments)
Wednesday, 11:30am–12:40pm, 17AB
SDLC for Pivotal Platform, Powered by Spring
Initializr, Concourse, and Spinnaker (Fiserv)
Wednesday, 4:20pm–5:30pm, 15AB
Pivotal Concourse 5.5.3 GA + Helm Chart Support
Supported Helm Deployment
● Pivotal Concourse team officially maintains
and supports Concourse Helm Chart for our
enterprise customers
● Deployment validated with “Hush
House”—the environment for observing,
maintaining, and operating Concourse on
Pivotal Container Service at scale
● Available as download on PivNet
Key Feature Updates for 5.5.3
● Performance boost from improved volume
streaming compression with Zstandard
● Better auditability with improved user
session and event tracking
● UI refinements like sticky step headers that
enables you to keep track of place
● New Super admin role: broader, more
efficient access to permissions across teams
● Automated support for Let’sEncrypt SSL/TLS
certificates
● Backup & recovery reliability and
configuration improvements
Concourse 102
Agenda
• What is Concourse
• Web
• Worker
• Monitoring
Can’t Talk About Everything
What is Concourse?
What is Concourse
What is Concourse
Web Components
Worker Components
Pipeline Walkthrough
Pipeline
Pipeline
Pipeline
What happens when you
set a pipeline?
Pipeline Syncer
What happens when you
unpause your pipeline?
Pipeline Syncer
Pipeline Routine
Radar
How many resource
configurations are in my
pipeline?
Resource Configs
resources:
- name: app
public: true
type: git
source: ...
- name: app-pre-release
public: true
type: github-release
source: ...
- name: app-release
public: true
type: github-release
source: ...
- name: version
public: true
type: semver
source: ...
resource_types:
- name: semver
type: registry-image
source:
1
2
3
4
5
Radar Routine
x5
What does the scanner
do?
Radar Routine
How does the scanner
make check containers?
Check Containers
Check Containers
resource-type:1
container: 2
Where did the volumes come from?
Volumes
Container Volumes
● The workers file system (e.g. mounting CA certs from the worker)
Resource-type Volumes
● Bundled with the Concourse binary
● Downloaded from Docker Hub or another image registry
Back to check containers!
Check Containers
resource-type:1
container: 2
Check Containers
check: 1 resource-type:1
container: 2
Check Containers
check: 5 resource-type:4
container: 10
x5
How long do check containers exist?
Check containers exist for one hour and are then recreated.
How long do check containers exist?
Check containers exist for one hour and are then recreated.
Why?
How long do check containers exist?
Check containers exist for one hour and are then recreated.
Why?
1. Resources are checked every 1min by default
How long do check containers exist?
Check containers exist for one hour and are then recreated.
Why?
1. Resources are checked every 1min by default
2. Don’t want to overload one worker with too many check containers
Check containers are
your minimum workload
Our check containers
run and discover new
versions
What happens next?
Scheduler Routine
check: 5 resource-type:4
container: 10
Scheduler Routine
check: 5 resource-type:4
container: 10
Scheduler Routine
check: 5 resource-type:4
container: 10
Build Routine
check: 5 resource-type:4
container: 10
How does the build
routine execute a job?
Test Job
- name: test
public: true
plan:
- get: app
trigger: true
- task: test-app
file: app/ci/tasks/test-app.yml
Test Job
- name: test
public: true
plan:
- get: app
trigger: true
- task: test-app
file: app/ci/tasks/test-app.yml
Test Job
- name: test
public: true
plan:
- get: app
trigger: true
- task: test-app
file: app/ci/tasks/test-app.yml
Test Job
- name: test
public: true
plan:
- get: app
trigger: true
- task: test-app
file: app/ci/tasks/test-app.yml
Get Step
check: 5 resource-type:4
container: 10
Get Step
check: 5 resource-type:4
container: 10
resource: 1
Get Step
check: 5 resource-type:4
container: 10
resource: 1
Get Step
check: 5
get: 1
resource-type:4
container: 10
resource: 1
Get Step
check: 5
get: 1
resource-type:4
container: 10
resource: 1
Test Job
- name: test
public: true
plan:
- get: app
trigger: true
- task: test-app
file: app/ci/tasks/test-app.yml
How is a task step
executed?
Task Step
platform: linux
image_resource:
type: registry-image
source: {repository: golang}
inputs:
- name: app
run:
path: /bin/bash
args:
- -cex
- |
cd app/sample-app
go test
Task Step
platform: linux
image_resource:
type: registry-image
source: {repository: golang}
inputs:
- name: app
run:
path: /bin/bash
args:
- -cex
- |
cd app/sample-app
go test
Task Step
platform: linux (can be linux/windows/darwin)
image_resource:
type: registry-image
source: {repository: golang}
inputs:
- name: app
run:
path: /bin/bash
args:
- -cex
- |
cd app/sample-app
go test
Task Step
platform: linux
image_resource:
type: registry-image
source: {repository: golang}
inputs:
- name: app
run:
path: /bin/bash
args:
- -cex
- |
cd app/sample-app
go test
Task Step
platform: linux
image_resource: (download from docker hub)
type: registry-image
source: {repository: golang}
inputs:
- name: app
run:
path: /bin/bash
args:
- -cex
- |
cd app/sample-app
go test
Task Step
platform: linux
Image_resource:
type: registry-image
source: {repository: golang} (use small images!)
inputs:
- name: app
run:
path: /bin/bash
args:
- -cex
- |
cd app/sample-app
go test
What does our worker
look like now?
Task Step
check: 5
get: 1
resource-type:4
container: 10
resource: 1
Task Step
check: 5
get: 1
resource-type:4
container: 10
resource: 2
Task Step
platform: linux
Image_resource:
type: registry-image
source: {repository: golang}
Inputs: (from previous steps in the job)
- name: app
run:
path: /bin/bash
args:
- -cex
- |
cd app/sample-app
go test
Task Step
check: 5
get: 1
resource-type:4
container: 10
resource: 2
Task Step
check: 5
get: 1
task: 1
resource-type:4
container: 10
resource: 2
Task Step
check: 5
get: 1
task: 1
resource-type:4
container: 10
resource: 2
go test
Build routine has
finished running the job!
Successful Build
check: 5
get: 1
task: 1
resource-type:4
container: 10
resource: 2
Successful Build
check: 5
get: 1
task: 1
resource-type:4
container: 10
resource: 2
When Jobs Are Passing
Jobs
starting
Jobs
succeeding
What If Your Job Failed?
Failed Jobs
● Concourse keeps containers and volumes for the last failed build of a job
Why keep containers &
volumes from failed
jobs?
Why Concourse Keeps Containers From Failed Jobs
● We don’t know when people will be able to debug a failed job
● What if the job triggered on the weekend?
The user will want to look at the containers on Monday
Bye Pipeline
Remaining Web Components
● Build Tracker
● Build Reaper
● Garbage Collector
What does the build
tracker do?
Build Tracker
Why do we need the
build tracker?
Build Tracker
What’s an orphaned
build?
Build Tracker
Build Tracker
● Networking issue
● Web node VM goes down
Build Tracker
Build Tracker
Build Tracker
Build Reaper
Build Reaper
Build Log Retention
• Can set build log retention at the:
• Web node level, affecting all pipelines
• At the job level, set by users in their pipeline configuration
When should you set a
build log retention
policy?
When To Set Build Log Retention
● Job runs frequently
● Job generates a lot of logs from a single build
● Database has limited disk space
What if you want to
store the logs
somewhere else?
Syslog Endpoint
Concourse can be configured to drain build logs to a syslog endpoint.
Build Reaper
Garbage Collector
Garbage Collector
Two-step process:
1. Web node figures out what containers and volumes can be deleted based on
ownership
Who owns volumes and
containers?
Container & Volume Owners
● Running builds
● Failed builds
● Resource caches
● Check containers
Garbage Collector
Two-step asynchronous process:
1. Web node figures out what containers and volumes can be deleted based on
ownership
2. Worker deletes what the web node tells it to
What does this look
like?
Garbage Collector
1
1) These are the volumes and containers I currently have
Garbage Collector
1
1) These are the volumes and containers I currently have
Garbage Collector
1
1) These are the volumes and containers I currently have
Garbage Collector
1
1) These are the volumes and containers I currently have
Garbage Collector
1
1) These are the volumes and containers I currently have
2) These are the volumes and containers you can delete
2
That’s how Concourse works!
Monitoring Your Concourse
Monitoring
View our metrics at: https://metrics.concourse-ci.org/
Thank You
https://concourse-ci.org/
https://github.com/concourse/concourse
https://discuss.concourse-ci.org/
https://discord.gg/MeRxXKW
Thanks!
Concourse CI
Roadmap
October 7–10, 2019
Austin Convention Center
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Safe Harbor Statement
The following is intended to outline the general direction of Pivotal's offerings. It is intended for information
purposes only and may not be incorporated into any contract. Any information regarding pre-release of
Pivotal offerings, future updates or other planned modifications is subject to ongoing evaluation by Pivotal
and is subject to change. This information is provided without warranty or any kind, express or implied, and
is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making
purchasing decisions regarding Pivotal's offerings. These purchasing decisions should only be based on
features currently available. The development, release, and timing of any features or functionality described
for Pivotal's offerings in this presentation remain at the sole discretion of Pivotal. Pivotal has no obligation to
update forward looking information in this presentation.
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
The Concourse Team!
1
2
0

Alex Suraci
(Product)
Lindsay Auchinachie
(Design)
James Thomson
(Eng/UX)
Jamie Klassen
(Eng/UX)
Clara Fu
(Eng/Core)
Josh Winters
(Eng/Core)
Rui Yang
(Eng/Core)
Julia Pu
(Eng/Core)
Divya Dadlani
(Eng/Runtime)
Krishna Mannem
(Eng/Runtime)
Sameer Vohra
(Eng/Runtime)
Denise Yu
(Eng/Runtime)
Scott Foerster
(Product)
Matthew Pereira
(Design)
Ciro Costa
(Pivotal Concourse)
Taylor Silva
(Pivotal Concourse)
Bishoy Youssef
(Pivotal Concourse)
Zoe Tian
(Pivotal Concourse)
Bin Ju
(Pivotal Concourse)
Mike Hoskins
(Pivotal Concourse)
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
The Concourse Team!
1
2
1

Alex Suraci
(Product)
Lindsay Auchinachie
(Design)
James Thomson
(Eng/UX)
Jamie Klassen
(Eng/UX)
Clara Fu
(Eng/Core)
Josh Winters
(Eng/Core)
Rui Yang
(Eng/Core)
Julia Pu
(Eng/Core)
Divya Dadlani
(Eng/Runtime)
Krishna Mannem
(Eng/Runtime)
Sameer Vohra
(Eng/Runtime)
Denise Yu
(Eng/Runtime)
Scott Foerster
(Product)
Matthew Pereira
(Design)
Ciro Costa
(Pivotal Concourse)
Taylor Silva
(Pivotal Concourse)
Bishoy Youssef
(Pivotal Concourse)
Zoe Tian
(Pivotal Concourse)
Bin Ju
(Pivotal Concourse)
Mike Hoskins
(Pivotal Concourse)
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
The Concourse Team!
1
2
2

Alex Suraci
(Product)
Lindsay Auchinachie
(Design)
James Thomson
(Eng/UX)
Jamie Klassen
(Eng/UX)
Clara Fu
(Eng/Core)
Josh Winters
(Eng/Core)
Rui Yang
(Eng/Core)
Julia Pu
(Eng/Core)
Divya Dadlani
(Eng/Runtime)
Krishna Mannem
(Eng/Runtime)
Sameer Vohra
(Eng/Runtime)
Denise Yu
(Eng/Runtime)
Scott Foerster
(Product)
Matthew Pereira
(Design)
Ciro Costa
(Pivotal Concourse)
Taylor Silva
(Pivotal Concourse)
Bishoy Youssef
(Pivotal Concourse)
Zoe Tian
(Pivotal Concourse)
Bin Ju
(Pivotal Concourse)
Mike Hoskins
(Pivotal Concourse)
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
The Concourse Team!
1
2
3

Alex Suraci
(Product)
Lindsay Auchinachie
(Design)
James Thomson
(Eng/UX)
Jamie Klassen
(Eng/UX)
Clara Fu
(Eng/Core)
Josh Winters
(Eng/Core)
Rui Yang
(Eng/Core)
Julia Pu
(Eng/Core)
Divya Dadlani
(Eng/Runtime)
Krishna Mannem
(Eng/Runtime)
Sameer Vohra
(Eng/Runtime)
Denise Yu
(Eng/Runtime)
Scott Foerster
(Product)
Matthew Pereira
(Design)
Ciro Costa
(Pivotal Concourse)
Taylor Silva
(Pivotal Concourse)
Bishoy Youssef
(Pivotal Concourse)
Zoe Tian
(Pivotal Concourse)
Bin Ju
(Pivotal Concourse)
Mike Hoskins
(Pivotal Concourse)
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
The Concourse Team!
1
2
4

Alex Suraci
(Product)
Lindsay Auchinachie
(Design)
James Thomson
(Eng/UX)
Jamie Klassen
(Eng/UX)
Clara Fu
(Eng/Core)
Josh Winters
(Eng/Core)
Rui Yang
(Eng/Core)
Julia Pu
(Eng/Core)
Divya Dadlani
(Eng/Runtime)
Krishna Mannem
(Eng/Runtime)
Sameer Vohra
(Eng/Runtime)
Denise Yu
(Eng/Runtime)
Scott Foerster
(Product)
Matthew Pereira
(Design)
Ciro Costa
(Pivotal Concourse)
Taylor Silva
(Pivotal Concourse)
Bishoy Youssef
(Pivotal Concourse)
Zoe Tian
(Pivotal Concourse)
Bin Ju
(Pivotal Concourse)
Mike Hoskins
(Pivotal Concourse)
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
The Concourse Team!
1
2
5

Alex Suraci
(Product)
Lindsay Auchinachie
(Design)
James Thomson
(Eng/UX)
Jamie Klassen
(Eng/UX)
Clara Fu
(Eng/Core)
Josh Winters
(Eng/Core)
Rui Yang
(Eng/Core)
Julia Pu
(Eng/Core)
Divya Dadlani
(Eng/Runtime)
Krishna Mannem
(Eng/Runtime)
Sameer Vohra
(Eng/Runtime)
Denise Yu
(Eng/Runtime)
Scott Foerster
(Product)
Matthew Pereira
(Design)
Ciro Costa
(Pivotal Concourse)
Taylor Silva
(Pivotal Concourse)
Bishoy Youssef
(Pivotal Concourse)
Zoe Tian
(Pivotal Concourse)
Bin Ju
(Pivotal Concourse)
Mike Hoskins
(Pivotal Concourse)
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Our roadmap is public!
project.concourse-ci.org
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Short-term: Algorithm improvements
● What was the problem before?
As more builds and resource versions accumulated, it took Concourse longer to
figure out the correct version of every resource to use in every task that
required a passed constraint.
1
2
7

Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Short-term: Algorithm improvements
● What was the problem before?
As more builds and resource versions accumulated, it took Concourse longer to
figure out the correct version of every resource to use in every task that
required a passed constraint.
● What changed?
The new algorithm computes passed versions in a faster, less memory-intensive
way, in constant time rather than linear. Details in blog post:
blog.concourse-ci.org/core-roadmap-towards-v10/#issue-3602-a-new-algorithm
1
2
8

Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Short-term: Algorithm improvements
● What was the problem before?
As more builds and resource versions accumulated, it took Concourse longer to
figure out the correct version of every resource to use in every task that
required a passed constraint.
● What changed?
The new algorithm computes passed versions in a faster, less memory-intensive
way, in constant time rather than linear. Details in blog post:
blog.concourse-ci.org/core-roadmap-towards-v10/#issue-3602-a-new-algorithm
● End user impact
Lower CPU usage on web nodes, faster step initialization.
1
2
9

Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Medium term: Moving runtime beyond Garden
● Current world:
Concourse steps are executed by Garden & runC containers only.
1
3
0

Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Medium term: Moving runtime beyond Garden
● Current world:
Concourse steps are executed by Garden & runC containers only.
● How are we getting there?
Rework Concourse internals to support stronger separation between user-facing
abstractions (steps, resources, build plans, resources) and internal execution
details (containers and volumes), to enable support for alternative runtime
engines like containerd and Kubernetes.
1
3
1

Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Medium term: Moving runtime beyond Garden
● Current world:
Concourse steps are executed by Garden & runC containers only.
● How are we getting there?
Rework Concourse internals to support stronger separation between user-facing
abstractions (steps, resources, build plans, resources) and internal execution
details (containers and volumes), to enable support for alternative runtime
engines like containerd and Kubernetes.
● Why?
When we started, Garden was the best option for Concourse’s use case. Today,
there are viable alternatives to Garden that enable more flexibility and
collaboration.
1
3
2

Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Long term: Concourse “Projects”
● Motivation
○ Improve Onboarding:
CI for my standalone application
○ Improve Day 2: Spaces
CI for my complex application
Multiple release versions ( eg. git branches )
Multiple contributors ( eg. PR workflow )
1
3
3

Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Long term: Concourse “Projects”
● Onboarding
CI for my standalone application
1
3
4

name: ci
plan:
- get: booklit
trigger: true
- task: unit
Top level job config
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Long term: Concourse “Projects”
● Onboarding
CI for my standalone application
1
3
5

name: ci
plan:
- get: booklit
trigger: true
- task: unit
ci/project.yml
ci/tasks/unit.yml
ci/resources/booklit.yml
ci/pipelines/booklit.yml
Top level job config
“Projects” directory convention
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Long term: Concourse “Projects”
● Day 2
CI for my complex application - multiple branches
1
3
6

name: booklit
plan:
- across: repo-branches
as: repo-branch
set_pipeline: branch
instance_vars:
branch_name: ((repo-branch.name))
file: bookit.yml
Step `across`
Step `set_pipeline`
Feature `Instanced Pipelines`
Feature `Archive Pipeline`
Feature `Resources v2`
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Long term: Concourse “Projects”
● Day 2
CI for my complex application
1
3
7

name: booklit
plan:
- across: repo-branches
as: repo-branch
set_pipeline: branch
instance_vars:
branch_name: ((repo-branch.name))
file: bookit.yml
Step `across`
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Long term: Concourse “Projects”
● Day 2
CI for my complex application
1
3
8

name: booklit
plan:
- across: repo-branches
as: repo-branch
set_pipeline: branch
instance_vars:
branch_name: ((repo-branch.name))
file: bookit.yml
Step `across`
Step `set_pipeline`
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Long term: Concourse “Projects”
● Day 2
CI for my complex application
1
3
9

name: booklit
plan:
- across: repo-branches
as: repo-branch
set_pipeline: branch
instance_vars:
branch_name: ((repo-branch.name))
file: bookit.yml
Step `across`
Step `set_pipeline`
Feature `Instanced Pipelines`
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Long term: Concourse “Projects”
● Day 2
CI for my complex application
1
4
0

name: booklit
plan:
- across: repo-branches
as: repo-branch
set_pipeline: branch
instance_vars:
branch_name: ((repo-branch.name))
file: bookit.yml
Step `across`
Step `set_pipeline`
Feature `Instanced Pipelines`
Feature `Archive Pipeline`
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Long term: Concourse “Projects”
● Day 2
CI for my complex application
1
4
1

name: booklit
plan:
- across: repo-branches
as: repo-branch
set_pipeline: branch
instance_vars:
branch_name: ((repo-branch.name))
file: bookit.yml
Step `across`
Step `set_pipeline`
Feature `Instanced Pipelines`
Feature `Archive Pipeline`
Feature `Resources v2`
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
That all sounds great!
How can I follow future updates?
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
How to get involved
● Projects page: project.concourse-ci.org
● “Core Roadmap Towards V10”, Concourse blog post:
blog.concourse-ci.org/core-roadmap-towards-v10
● Forums: discuss.concourse-ci.org
● RFCs: https://github.com/concourse/rfcs
● Real-time chatter on Discord:
1
4
3

Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Questions ?
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Breakout Sessions
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Breakout Sessions
● Platform Automation
○ DaShaun & Nadja
● Concourse for K8’s
○ Taylor & Scott
● Monitoring & Metrics
○ Sameer & Matthew
● Concourse At Scale
○ Denise & Lindsay
Concourse Sessions @S1P
PKS Automation Station...All Aboard: Enabling
Team Access to PKS with a Concourse Pipeline
(Dick’s Sporting Goods)
Tuesday, 11:30am–12:40pm, Ballroom E
Deploy on Friday!
Tuesday, 11:30am–12:40pm, Ballroom F
Square Pegs, Square Holes: CI/CD That Fits
Tuesday. 3:20pm–3:50pm, 15AB
The Continuous Platform (Cerner)
Tuesday, 5:40pm–6:10pm, 15AB
General Motors In-Vehicle App Store and
Personalization Case Study (General Motors)
Tuesday, 5:40pm–6:10pm, 17AB
Accelerating the Developers’ Road to the Cloud
at Enterprise Scale (Fidelity Investments)
Wednesday, 11:30am–12:40pm, 17AB
SDLC for Pivotal Platform, Powered by Spring
Initializr, Concourse, and Spinnaker (Fiserv)
Wednesday, 4:20pm–5:30pm, 15AB

Contenu connexe

Tendances

Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
Cloud-Native CI/CD on Kubernetes with Tekton PipelinesCloud-Native CI/CD on Kubernetes with Tekton Pipelines
Cloud-Native CI/CD on Kubernetes with Tekton PipelinesNikhil Thomas
 
Testing with Docker
Testing with DockerTesting with Docker
Testing with Dockertoffermann
 
Going FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at NetflixGoing FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at NetflixYunong Xiao
 
Use Docker to Enhance Your Testing
Use Docker to Enhance Your TestingUse Docker to Enhance Your Testing
Use Docker to Enhance Your TestingTechWell
 
Jenkins, pipeline and docker
Jenkins, pipeline and docker Jenkins, pipeline and docker
Jenkins, pipeline and docker AgileDenver
 
Building Jenkins Pipelines at Scale
Building Jenkins Pipelines at ScaleBuilding Jenkins Pipelines at Scale
Building Jenkins Pipelines at ScaleJulien Pivotto
 
7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins UsersJules Pierre-Louis
 
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems IntegrationJenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems IntegrationOleg Nenashev
 
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineDelivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineSlawa Giterman
 
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Docker, Inc.
 
Packaging perl (LPW2010)
Packaging perl (LPW2010)Packaging perl (LPW2010)
Packaging perl (LPW2010)p3castro
 
Inria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMP
Inria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMPInria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMP
Inria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMPStéphanie Roger
 
DCEU 18: Dockerfile Best Practices
DCEU 18: Dockerfile Best PracticesDCEU 18: Dockerfile Best Practices
DCEU 18: Dockerfile Best PracticesDocker, Inc.
 
Simply your Jenkins Projects with Docker Multi-Stage Builds
Simply your Jenkins Projects with Docker Multi-Stage BuildsSimply your Jenkins Projects with Docker Multi-Stage Builds
Simply your Jenkins Projects with Docker Multi-Stage BuildsEric Smalling
 
Joomla Continuous Delivery with Docker
Joomla Continuous Delivery with DockerJoomla Continuous Delivery with Docker
Joomla Continuous Delivery with DockerJirayut Nimsaeng
 
Rh developers fat jar smackdown
Rh developers   fat jar smackdownRh developers   fat jar smackdown
Rh developers fat jar smackdownRed Hat Developers
 
Fluentd meetup logging infrastructure in paa s
Fluentd meetup   logging infrastructure in paa sFluentd meetup   logging infrastructure in paa s
Fluentd meetup logging infrastructure in paa sRakuten Group, Inc.
 
MPL: modular pipeline library - Dynamic Talks Milwaukee 4/11/2019
MPL: modular pipeline library - Dynamic Talks Milwaukee 4/11/2019MPL: modular pipeline library - Dynamic Talks Milwaukee 4/11/2019
MPL: modular pipeline library - Dynamic Talks Milwaukee 4/11/2019Grid Dynamics
 
Simon Laws – Apache Flink Cluster Deployment on Docker and Docker-Compose
Simon Laws – Apache Flink Cluster Deployment on Docker and Docker-ComposeSimon Laws – Apache Flink Cluster Deployment on Docker and Docker-Compose
Simon Laws – Apache Flink Cluster Deployment on Docker and Docker-ComposeFlink Forward
 

Tendances (20)

Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
Cloud-Native CI/CD on Kubernetes with Tekton PipelinesCloud-Native CI/CD on Kubernetes with Tekton Pipelines
Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
 
Testing with Docker
Testing with DockerTesting with Docker
Testing with Docker
 
Going FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at NetflixGoing FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at Netflix
 
Use Docker to Enhance Your Testing
Use Docker to Enhance Your TestingUse Docker to Enhance Your Testing
Use Docker to Enhance Your Testing
 
Jenkins, pipeline and docker
Jenkins, pipeline and docker Jenkins, pipeline and docker
Jenkins, pipeline and docker
 
Building Jenkins Pipelines at Scale
Building Jenkins Pipelines at ScaleBuilding Jenkins Pipelines at Scale
Building Jenkins Pipelines at Scale
 
7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users
 
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems IntegrationJenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
 
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineDelivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
 
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
 
Packaging perl (LPW2010)
Packaging perl (LPW2010)Packaging perl (LPW2010)
Packaging perl (LPW2010)
 
Inria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMP
Inria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMPInria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMP
Inria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMP
 
DCEU 18: Dockerfile Best Practices
DCEU 18: Dockerfile Best PracticesDCEU 18: Dockerfile Best Practices
DCEU 18: Dockerfile Best Practices
 
Using Hg
Using HgUsing Hg
Using Hg
 
Simply your Jenkins Projects with Docker Multi-Stage Builds
Simply your Jenkins Projects with Docker Multi-Stage BuildsSimply your Jenkins Projects with Docker Multi-Stage Builds
Simply your Jenkins Projects with Docker Multi-Stage Builds
 
Joomla Continuous Delivery with Docker
Joomla Continuous Delivery with DockerJoomla Continuous Delivery with Docker
Joomla Continuous Delivery with Docker
 
Rh developers fat jar smackdown
Rh developers   fat jar smackdownRh developers   fat jar smackdown
Rh developers fat jar smackdown
 
Fluentd meetup logging infrastructure in paa s
Fluentd meetup   logging infrastructure in paa sFluentd meetup   logging infrastructure in paa s
Fluentd meetup logging infrastructure in paa s
 
MPL: modular pipeline library - Dynamic Talks Milwaukee 4/11/2019
MPL: modular pipeline library - Dynamic Talks Milwaukee 4/11/2019MPL: modular pipeline library - Dynamic Talks Milwaukee 4/11/2019
MPL: modular pipeline library - Dynamic Talks Milwaukee 4/11/2019
 
Simon Laws – Apache Flink Cluster Deployment on Docker and Docker-Compose
Simon Laws – Apache Flink Cluster Deployment on Docker and Docker-ComposeSimon Laws – Apache Flink Cluster Deployment on Docker and Docker-Compose
Simon Laws – Apache Flink Cluster Deployment on Docker and Docker-Compose
 

Similaire à Concourse Workshop

DevOPS training - Day 2/2
DevOPS training - Day 2/2DevOPS training - Day 2/2
DevOPS training - Day 2/2Vincent Mercier
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDocker, Inc.
 
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...Docker, Inc.
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017Patrick Chanezon
 
Dockercon EU 2014
Dockercon EU 2014Dockercon EU 2014
Dockercon EU 2014Rafe Colton
 
Atlanta Jenkins Area Meetup October 22nd 2015
Atlanta Jenkins Area Meetup October 22nd 2015Atlanta Jenkins Area Meetup October 22nd 2015
Atlanta Jenkins Area Meetup October 22nd 2015Kurt Madel
 
Testing applications with traffic control in containers / Alban Crequy (Kinvolk)
Testing applications with traffic control in containers / Alban Crequy (Kinvolk)Testing applications with traffic control in containers / Alban Crequy (Kinvolk)
Testing applications with traffic control in containers / Alban Crequy (Kinvolk)Ontico
 
Efficient Parallel Testing with Docker by Laura Frank
Efficient Parallel Testing with Docker by Laura FrankEfficient Parallel Testing with Docker by Laura Frank
Efficient Parallel Testing with Docker by Laura FrankDocker, Inc.
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Amazon Web Services
 
Making a small QA system with Docker
Making a small QA system with DockerMaking a small QA system with Docker
Making a small QA system with DockerNaoki AINOYA
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Lean IT Consulting
 
Kubecon seattle 2018 workshop slides
Kubecon seattle 2018 workshop slidesKubecon seattle 2018 workshop slides
Kubecon seattle 2018 workshop slidesWeaveworks
 
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with SpinnakerSpinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with SpinnakerAndrew Phillips
 
Server(less) Swift at SwiftCloudWorkshop 3
Server(less) Swift at SwiftCloudWorkshop 3Server(less) Swift at SwiftCloudWorkshop 3
Server(less) Swift at SwiftCloudWorkshop 3kognate
 
Load-testing 101 for Startups with Artillery.io
Load-testing 101 for Startups with Artillery.ioLoad-testing 101 for Startups with Artillery.io
Load-testing 101 for Startups with Artillery.ioHassy Veldstra
 
Oscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to ProductionOscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to ProductionPatrick Chanezon
 
Pyruvate, a reasonably fast, non-blocking, multithreaded WSGI server
Pyruvate, a reasonably fast, non-blocking, multithreaded WSGI serverPyruvate, a reasonably fast, non-blocking, multithreaded WSGI server
Pyruvate, a reasonably fast, non-blocking, multithreaded WSGI serverPloneFoundation
 
Running & Monitoring Docker at Scale
Running & Monitoring Docker at ScaleRunning & Monitoring Docker at Scale
Running & Monitoring Docker at ScaleDatadog
 

Similaire à Concourse Workshop (20)

DevOPS training - Day 2/2
DevOPS training - Day 2/2DevOPS training - Day 2/2
DevOPS training - Day 2/2
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development Pipeline
 
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017
 
Dockercon EU 2014
Dockercon EU 2014Dockercon EU 2014
Dockercon EU 2014
 
Atlanta Jenkins Area Meetup October 22nd 2015
Atlanta Jenkins Area Meetup October 22nd 2015Atlanta Jenkins Area Meetup October 22nd 2015
Atlanta Jenkins Area Meetup October 22nd 2015
 
Before & After Docker Init
Before & After Docker InitBefore & After Docker Init
Before & After Docker Init
 
R meetup 20161011v2
R meetup 20161011v2R meetup 20161011v2
R meetup 20161011v2
 
Testing applications with traffic control in containers / Alban Crequy (Kinvolk)
Testing applications with traffic control in containers / Alban Crequy (Kinvolk)Testing applications with traffic control in containers / Alban Crequy (Kinvolk)
Testing applications with traffic control in containers / Alban Crequy (Kinvolk)
 
Efficient Parallel Testing with Docker by Laura Frank
Efficient Parallel Testing with Docker by Laura FrankEfficient Parallel Testing with Docker by Laura Frank
Efficient Parallel Testing with Docker by Laura Frank
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration
 
Making a small QA system with Docker
Making a small QA system with DockerMaking a small QA system with Docker
Making a small QA system with Docker
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
 
Kubecon seattle 2018 workshop slides
Kubecon seattle 2018 workshop slidesKubecon seattle 2018 workshop slides
Kubecon seattle 2018 workshop slides
 
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with SpinnakerSpinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
Spinnaker Summit 2018: CI/CD Patterns for Kubernetes with Spinnaker
 
Server(less) Swift at SwiftCloudWorkshop 3
Server(less) Swift at SwiftCloudWorkshop 3Server(less) Swift at SwiftCloudWorkshop 3
Server(less) Swift at SwiftCloudWorkshop 3
 
Load-testing 101 for Startups with Artillery.io
Load-testing 101 for Startups with Artillery.ioLoad-testing 101 for Startups with Artillery.io
Load-testing 101 for Startups with Artillery.io
 
Oscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to ProductionOscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to Production
 
Pyruvate, a reasonably fast, non-blocking, multithreaded WSGI server
Pyruvate, a reasonably fast, non-blocking, multithreaded WSGI serverPyruvate, a reasonably fast, non-blocking, multithreaded WSGI server
Pyruvate, a reasonably fast, non-blocking, multithreaded WSGI server
 
Running & Monitoring Docker at Scale
Running & Monitoring Docker at ScaleRunning & Monitoring Docker at Scale
Running & Monitoring Docker at Scale
 

Plus de VMware Tanzu

What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItVMware Tanzu
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023VMware Tanzu
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleVMware Tanzu
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023VMware Tanzu
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductVMware Tanzu
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready AppsVMware Tanzu
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And BeyondVMware Tanzu
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfVMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023VMware Tanzu
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptxVMware Tanzu
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchVMware Tanzu
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishVMware Tanzu
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVMware Tanzu
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - FrenchVMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023VMware Tanzu
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootVMware Tanzu
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerVMware Tanzu
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeVMware Tanzu
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsVMware Tanzu
 

Plus de VMware Tanzu (20)

What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
 

Dernier

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...Nitya salvi
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedDelhi Call girls
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 

Dernier (20)

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 

Concourse Workshop

  • 2. Workshop agenda 1:00 - 1:10 | Welcome remarks 1:10 - 1:40 | Concourse 102 talk 1:40 - 2:00 | Concourse Roadmap 2:00 - 2:10 | Breakout intros & snack break 2:10 - 2:55 | Breakout discussion groups 2:55 - 3:00 | Wrap-up
  • 3. Concourse Sessions @S1P PKS Automation Station...All Aboard: Enabling Team Access to PKS with a Concourse Pipeline (Dick’s Sporting Goods) Tuesday, 11:30am–12:40pm, Ballroom E Deploy on Friday! Tuesday, 11:30am–12:40pm, Ballroom F Square Pegs, Square Holes: CI/CD That Fits Tuesday. 3:20pm–3:50pm, 15AB The Continuous Platform (Cerner) Tuesday, 5:40pm–6:10pm, 15AB General Motors In-Vehicle App Store and Personalization Case Study (General Motors) Tuesday, 5:40pm–6:10pm, 17AB Accelerating the Developers’ Road to the Cloud at Enterprise Scale (Fidelity Investments) Wednesday, 11:30am–12:40pm, 17AB SDLC for Pivotal Platform, Powered by Spring Initializr, Concourse, and Spinnaker (Fiserv) Wednesday, 4:20pm–5:30pm, 15AB
  • 4. Pivotal Concourse 5.5.3 GA + Helm Chart Support Supported Helm Deployment ● Pivotal Concourse team officially maintains and supports Concourse Helm Chart for our enterprise customers ● Deployment validated with “Hush House”—the environment for observing, maintaining, and operating Concourse on Pivotal Container Service at scale ● Available as download on PivNet Key Feature Updates for 5.5.3 ● Performance boost from improved volume streaming compression with Zstandard ● Better auditability with improved user session and event tracking ● UI refinements like sticky step headers that enables you to keep track of place ● New Super admin role: broader, more efficient access to permissions across teams ● Automated support for Let’sEncrypt SSL/TLS certificates ● Backup & recovery reliability and configuration improvements
  • 6. Agenda • What is Concourse • Web • Worker • Monitoring
  • 7. Can’t Talk About Everything
  • 17. What happens when you set a pipeline?
  • 19. What happens when you unpause your pipeline?
  • 22. Radar
  • 23. How many resource configurations are in my pipeline?
  • 24. Resource Configs resources: - name: app public: true type: git source: ... - name: app-pre-release public: true type: github-release source: ... - name: app-release public: true type: github-release source: ... - name: version public: true type: semver source: ... resource_types: - name: semver type: registry-image source: 1 2 3 4 5
  • 26. What does the scanner do?
  • 28. How does the scanner make check containers?
  • 31. Where did the volumes come from?
  • 32. Volumes Container Volumes ● The workers file system (e.g. mounting CA certs from the worker) Resource-type Volumes ● Bundled with the Concourse binary ● Downloaded from Docker Hub or another image registry
  • 33. Back to check containers!
  • 35. Check Containers check: 1 resource-type:1 container: 2
  • 36. Check Containers check: 5 resource-type:4 container: 10 x5
  • 37. How long do check containers exist? Check containers exist for one hour and are then recreated.
  • 38. How long do check containers exist? Check containers exist for one hour and are then recreated. Why?
  • 39. How long do check containers exist? Check containers exist for one hour and are then recreated. Why? 1. Resources are checked every 1min by default
  • 40. How long do check containers exist? Check containers exist for one hour and are then recreated. Why? 1. Resources are checked every 1min by default 2. Don’t want to overload one worker with too many check containers
  • 41. Check containers are your minimum workload
  • 42.
  • 43. Our check containers run and discover new versions
  • 45. Scheduler Routine check: 5 resource-type:4 container: 10
  • 46. Scheduler Routine check: 5 resource-type:4 container: 10
  • 47. Scheduler Routine check: 5 resource-type:4 container: 10
  • 48. Build Routine check: 5 resource-type:4 container: 10
  • 49. How does the build routine execute a job?
  • 50. Test Job - name: test public: true plan: - get: app trigger: true - task: test-app file: app/ci/tasks/test-app.yml
  • 51. Test Job - name: test public: true plan: - get: app trigger: true - task: test-app file: app/ci/tasks/test-app.yml
  • 52. Test Job - name: test public: true plan: - get: app trigger: true - task: test-app file: app/ci/tasks/test-app.yml
  • 53. Test Job - name: test public: true plan: - get: app trigger: true - task: test-app file: app/ci/tasks/test-app.yml
  • 54. Get Step check: 5 resource-type:4 container: 10
  • 55. Get Step check: 5 resource-type:4 container: 10 resource: 1
  • 56. Get Step check: 5 resource-type:4 container: 10 resource: 1
  • 57. Get Step check: 5 get: 1 resource-type:4 container: 10 resource: 1
  • 58. Get Step check: 5 get: 1 resource-type:4 container: 10 resource: 1
  • 59. Test Job - name: test public: true plan: - get: app trigger: true - task: test-app file: app/ci/tasks/test-app.yml
  • 60. How is a task step executed?
  • 61. Task Step platform: linux image_resource: type: registry-image source: {repository: golang} inputs: - name: app run: path: /bin/bash args: - -cex - | cd app/sample-app go test
  • 62. Task Step platform: linux image_resource: type: registry-image source: {repository: golang} inputs: - name: app run: path: /bin/bash args: - -cex - | cd app/sample-app go test
  • 63. Task Step platform: linux (can be linux/windows/darwin) image_resource: type: registry-image source: {repository: golang} inputs: - name: app run: path: /bin/bash args: - -cex - | cd app/sample-app go test
  • 64. Task Step platform: linux image_resource: type: registry-image source: {repository: golang} inputs: - name: app run: path: /bin/bash args: - -cex - | cd app/sample-app go test
  • 65. Task Step platform: linux image_resource: (download from docker hub) type: registry-image source: {repository: golang} inputs: - name: app run: path: /bin/bash args: - -cex - | cd app/sample-app go test
  • 66. Task Step platform: linux Image_resource: type: registry-image source: {repository: golang} (use small images!) inputs: - name: app run: path: /bin/bash args: - -cex - | cd app/sample-app go test
  • 67. What does our worker look like now?
  • 68. Task Step check: 5 get: 1 resource-type:4 container: 10 resource: 1
  • 69. Task Step check: 5 get: 1 resource-type:4 container: 10 resource: 2
  • 70. Task Step platform: linux Image_resource: type: registry-image source: {repository: golang} Inputs: (from previous steps in the job) - name: app run: path: /bin/bash args: - -cex - | cd app/sample-app go test
  • 71. Task Step check: 5 get: 1 resource-type:4 container: 10 resource: 2
  • 72. Task Step check: 5 get: 1 task: 1 resource-type:4 container: 10 resource: 2
  • 73. Task Step check: 5 get: 1 task: 1 resource-type:4 container: 10 resource: 2 go test
  • 74. Build routine has finished running the job!
  • 75. Successful Build check: 5 get: 1 task: 1 resource-type:4 container: 10 resource: 2
  • 76. Successful Build check: 5 get: 1 task: 1 resource-type:4 container: 10 resource: 2
  • 77. When Jobs Are Passing Jobs starting Jobs succeeding
  • 78. What If Your Job Failed?
  • 79. Failed Jobs ● Concourse keeps containers and volumes for the last failed build of a job
  • 80. Why keep containers & volumes from failed jobs?
  • 81. Why Concourse Keeps Containers From Failed Jobs ● We don’t know when people will be able to debug a failed job ● What if the job triggered on the weekend? The user will want to look at the containers on Monday
  • 83. Remaining Web Components ● Build Tracker ● Build Reaper ● Garbage Collector
  • 84. What does the build tracker do?
  • 86. Why do we need the build tracker?
  • 90. Build Tracker ● Networking issue ● Web node VM goes down
  • 96. Build Log Retention • Can set build log retention at the: • Web node level, affecting all pipelines • At the job level, set by users in their pipeline configuration
  • 97. When should you set a build log retention policy?
  • 98. When To Set Build Log Retention ● Job runs frequently ● Job generates a lot of logs from a single build ● Database has limited disk space
  • 99. What if you want to store the logs somewhere else?
  • 100. Syslog Endpoint Concourse can be configured to drain build logs to a syslog endpoint.
  • 103. Garbage Collector Two-step process: 1. Web node figures out what containers and volumes can be deleted based on ownership
  • 104. Who owns volumes and containers?
  • 105. Container & Volume Owners ● Running builds ● Failed builds ● Resource caches ● Check containers
  • 106. Garbage Collector Two-step asynchronous process: 1. Web node figures out what containers and volumes can be deleted based on ownership 2. Worker deletes what the web node tells it to
  • 107. What does this look like?
  • 108. Garbage Collector 1 1) These are the volumes and containers I currently have
  • 109. Garbage Collector 1 1) These are the volumes and containers I currently have
  • 110. Garbage Collector 1 1) These are the volumes and containers I currently have
  • 111. Garbage Collector 1 1) These are the volumes and containers I currently have
  • 112. Garbage Collector 1 1) These are the volumes and containers I currently have 2) These are the volumes and containers you can delete 2
  • 115. Monitoring View our metrics at: https://metrics.concourse-ci.org/
  • 118. Concourse CI Roadmap October 7–10, 2019 Austin Convention Center
  • 119. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Safe Harbor Statement The following is intended to outline the general direction of Pivotal's offerings. It is intended for information purposes only and may not be incorporated into any contract. Any information regarding pre-release of Pivotal offerings, future updates or other planned modifications is subject to ongoing evaluation by Pivotal and is subject to change. This information is provided without warranty or any kind, express or implied, and is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions regarding Pivotal's offerings. These purchasing decisions should only be based on features currently available. The development, release, and timing of any features or functionality described for Pivotal's offerings in this presentation remain at the sole discretion of Pivotal. Pivotal has no obligation to update forward looking information in this presentation.
  • 120. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ The Concourse Team! 1 2 0  Alex Suraci (Product) Lindsay Auchinachie (Design) James Thomson (Eng/UX) Jamie Klassen (Eng/UX) Clara Fu (Eng/Core) Josh Winters (Eng/Core) Rui Yang (Eng/Core) Julia Pu (Eng/Core) Divya Dadlani (Eng/Runtime) Krishna Mannem (Eng/Runtime) Sameer Vohra (Eng/Runtime) Denise Yu (Eng/Runtime) Scott Foerster (Product) Matthew Pereira (Design) Ciro Costa (Pivotal Concourse) Taylor Silva (Pivotal Concourse) Bishoy Youssef (Pivotal Concourse) Zoe Tian (Pivotal Concourse) Bin Ju (Pivotal Concourse) Mike Hoskins (Pivotal Concourse)
  • 121. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ The Concourse Team! 1 2 1  Alex Suraci (Product) Lindsay Auchinachie (Design) James Thomson (Eng/UX) Jamie Klassen (Eng/UX) Clara Fu (Eng/Core) Josh Winters (Eng/Core) Rui Yang (Eng/Core) Julia Pu (Eng/Core) Divya Dadlani (Eng/Runtime) Krishna Mannem (Eng/Runtime) Sameer Vohra (Eng/Runtime) Denise Yu (Eng/Runtime) Scott Foerster (Product) Matthew Pereira (Design) Ciro Costa (Pivotal Concourse) Taylor Silva (Pivotal Concourse) Bishoy Youssef (Pivotal Concourse) Zoe Tian (Pivotal Concourse) Bin Ju (Pivotal Concourse) Mike Hoskins (Pivotal Concourse)
  • 122. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ The Concourse Team! 1 2 2  Alex Suraci (Product) Lindsay Auchinachie (Design) James Thomson (Eng/UX) Jamie Klassen (Eng/UX) Clara Fu (Eng/Core) Josh Winters (Eng/Core) Rui Yang (Eng/Core) Julia Pu (Eng/Core) Divya Dadlani (Eng/Runtime) Krishna Mannem (Eng/Runtime) Sameer Vohra (Eng/Runtime) Denise Yu (Eng/Runtime) Scott Foerster (Product) Matthew Pereira (Design) Ciro Costa (Pivotal Concourse) Taylor Silva (Pivotal Concourse) Bishoy Youssef (Pivotal Concourse) Zoe Tian (Pivotal Concourse) Bin Ju (Pivotal Concourse) Mike Hoskins (Pivotal Concourse)
  • 123. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ The Concourse Team! 1 2 3  Alex Suraci (Product) Lindsay Auchinachie (Design) James Thomson (Eng/UX) Jamie Klassen (Eng/UX) Clara Fu (Eng/Core) Josh Winters (Eng/Core) Rui Yang (Eng/Core) Julia Pu (Eng/Core) Divya Dadlani (Eng/Runtime) Krishna Mannem (Eng/Runtime) Sameer Vohra (Eng/Runtime) Denise Yu (Eng/Runtime) Scott Foerster (Product) Matthew Pereira (Design) Ciro Costa (Pivotal Concourse) Taylor Silva (Pivotal Concourse) Bishoy Youssef (Pivotal Concourse) Zoe Tian (Pivotal Concourse) Bin Ju (Pivotal Concourse) Mike Hoskins (Pivotal Concourse)
  • 124. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ The Concourse Team! 1 2 4  Alex Suraci (Product) Lindsay Auchinachie (Design) James Thomson (Eng/UX) Jamie Klassen (Eng/UX) Clara Fu (Eng/Core) Josh Winters (Eng/Core) Rui Yang (Eng/Core) Julia Pu (Eng/Core) Divya Dadlani (Eng/Runtime) Krishna Mannem (Eng/Runtime) Sameer Vohra (Eng/Runtime) Denise Yu (Eng/Runtime) Scott Foerster (Product) Matthew Pereira (Design) Ciro Costa (Pivotal Concourse) Taylor Silva (Pivotal Concourse) Bishoy Youssef (Pivotal Concourse) Zoe Tian (Pivotal Concourse) Bin Ju (Pivotal Concourse) Mike Hoskins (Pivotal Concourse)
  • 125. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ The Concourse Team! 1 2 5  Alex Suraci (Product) Lindsay Auchinachie (Design) James Thomson (Eng/UX) Jamie Klassen (Eng/UX) Clara Fu (Eng/Core) Josh Winters (Eng/Core) Rui Yang (Eng/Core) Julia Pu (Eng/Core) Divya Dadlani (Eng/Runtime) Krishna Mannem (Eng/Runtime) Sameer Vohra (Eng/Runtime) Denise Yu (Eng/Runtime) Scott Foerster (Product) Matthew Pereira (Design) Ciro Costa (Pivotal Concourse) Taylor Silva (Pivotal Concourse) Bishoy Youssef (Pivotal Concourse) Zoe Tian (Pivotal Concourse) Bin Ju (Pivotal Concourse) Mike Hoskins (Pivotal Concourse)
  • 126. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Our roadmap is public! project.concourse-ci.org
  • 127. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Short-term: Algorithm improvements ● What was the problem before? As more builds and resource versions accumulated, it took Concourse longer to figure out the correct version of every resource to use in every task that required a passed constraint. 1 2 7 
  • 128. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Short-term: Algorithm improvements ● What was the problem before? As more builds and resource versions accumulated, it took Concourse longer to figure out the correct version of every resource to use in every task that required a passed constraint. ● What changed? The new algorithm computes passed versions in a faster, less memory-intensive way, in constant time rather than linear. Details in blog post: blog.concourse-ci.org/core-roadmap-towards-v10/#issue-3602-a-new-algorithm 1 2 8 
  • 129. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Short-term: Algorithm improvements ● What was the problem before? As more builds and resource versions accumulated, it took Concourse longer to figure out the correct version of every resource to use in every task that required a passed constraint. ● What changed? The new algorithm computes passed versions in a faster, less memory-intensive way, in constant time rather than linear. Details in blog post: blog.concourse-ci.org/core-roadmap-towards-v10/#issue-3602-a-new-algorithm ● End user impact Lower CPU usage on web nodes, faster step initialization. 1 2 9 
  • 130. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Medium term: Moving runtime beyond Garden ● Current world: Concourse steps are executed by Garden & runC containers only. 1 3 0 
  • 131. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Medium term: Moving runtime beyond Garden ● Current world: Concourse steps are executed by Garden & runC containers only. ● How are we getting there? Rework Concourse internals to support stronger separation between user-facing abstractions (steps, resources, build plans, resources) and internal execution details (containers and volumes), to enable support for alternative runtime engines like containerd and Kubernetes. 1 3 1 
  • 132. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Medium term: Moving runtime beyond Garden ● Current world: Concourse steps are executed by Garden & runC containers only. ● How are we getting there? Rework Concourse internals to support stronger separation between user-facing abstractions (steps, resources, build plans, resources) and internal execution details (containers and volumes), to enable support for alternative runtime engines like containerd and Kubernetes. ● Why? When we started, Garden was the best option for Concourse’s use case. Today, there are viable alternatives to Garden that enable more flexibility and collaboration. 1 3 2 
  • 133. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Long term: Concourse “Projects” ● Motivation ○ Improve Onboarding: CI for my standalone application ○ Improve Day 2: Spaces CI for my complex application Multiple release versions ( eg. git branches ) Multiple contributors ( eg. PR workflow ) 1 3 3 
  • 134. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Long term: Concourse “Projects” ● Onboarding CI for my standalone application 1 3 4  name: ci plan: - get: booklit trigger: true - task: unit Top level job config
  • 135. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Long term: Concourse “Projects” ● Onboarding CI for my standalone application 1 3 5  name: ci plan: - get: booklit trigger: true - task: unit ci/project.yml ci/tasks/unit.yml ci/resources/booklit.yml ci/pipelines/booklit.yml Top level job config “Projects” directory convention
  • 136. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Long term: Concourse “Projects” ● Day 2 CI for my complex application - multiple branches 1 3 6  name: booklit plan: - across: repo-branches as: repo-branch set_pipeline: branch instance_vars: branch_name: ((repo-branch.name)) file: bookit.yml Step `across` Step `set_pipeline` Feature `Instanced Pipelines` Feature `Archive Pipeline` Feature `Resources v2`
  • 137. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Long term: Concourse “Projects” ● Day 2 CI for my complex application 1 3 7  name: booklit plan: - across: repo-branches as: repo-branch set_pipeline: branch instance_vars: branch_name: ((repo-branch.name)) file: bookit.yml Step `across`
  • 138. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Long term: Concourse “Projects” ● Day 2 CI for my complex application 1 3 8  name: booklit plan: - across: repo-branches as: repo-branch set_pipeline: branch instance_vars: branch_name: ((repo-branch.name)) file: bookit.yml Step `across` Step `set_pipeline`
  • 139. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Long term: Concourse “Projects” ● Day 2 CI for my complex application 1 3 9  name: booklit plan: - across: repo-branches as: repo-branch set_pipeline: branch instance_vars: branch_name: ((repo-branch.name)) file: bookit.yml Step `across` Step `set_pipeline` Feature `Instanced Pipelines`
  • 140. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Long term: Concourse “Projects” ● Day 2 CI for my complex application 1 4 0  name: booklit plan: - across: repo-branches as: repo-branch set_pipeline: branch instance_vars: branch_name: ((repo-branch.name)) file: bookit.yml Step `across` Step `set_pipeline` Feature `Instanced Pipelines` Feature `Archive Pipeline`
  • 141. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Long term: Concourse “Projects” ● Day 2 CI for my complex application 1 4 1  name: booklit plan: - across: repo-branches as: repo-branch set_pipeline: branch instance_vars: branch_name: ((repo-branch.name)) file: bookit.yml Step `across` Step `set_pipeline` Feature `Instanced Pipelines` Feature `Archive Pipeline` Feature `Resources v2`
  • 142. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ That all sounds great! How can I follow future updates?
  • 143. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ How to get involved ● Projects page: project.concourse-ci.org ● “Core Roadmap Towards V10”, Concourse blog post: blog.concourse-ci.org/core-roadmap-towards-v10 ● Forums: discuss.concourse-ci.org ● RFCs: https://github.com/concourse/rfcs ● Real-time chatter on Discord: 1 4 3 
  • 144. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Questions ?
  • 145. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Breakout Sessions
  • 146. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Breakout Sessions ● Platform Automation ○ DaShaun & Nadja ● Concourse for K8’s ○ Taylor & Scott ● Monitoring & Metrics ○ Sameer & Matthew ● Concourse At Scale ○ Denise & Lindsay
  • 147. Concourse Sessions @S1P PKS Automation Station...All Aboard: Enabling Team Access to PKS with a Concourse Pipeline (Dick’s Sporting Goods) Tuesday, 11:30am–12:40pm, Ballroom E Deploy on Friday! Tuesday, 11:30am–12:40pm, Ballroom F Square Pegs, Square Holes: CI/CD That Fits Tuesday. 3:20pm–3:50pm, 15AB The Continuous Platform (Cerner) Tuesday, 5:40pm–6:10pm, 15AB General Motors In-Vehicle App Store and Personalization Case Study (General Motors) Tuesday, 5:40pm–6:10pm, 17AB Accelerating the Developers’ Road to the Cloud at Enterprise Scale (Fidelity Investments) Wednesday, 11:30am–12:40pm, 17AB SDLC for Pivotal Platform, Powered by Spring Initializr, Concourse, and Spinnaker (Fiserv) Wednesday, 4:20pm–5:30pm, 15AB