CI and CD for CF
By Amit Kumar Gupta
@amitkgupta84
CI
2
CD(eliverability)
3
CF
4
Goal
5
ship CF with SPEED and CONFIDENCE
Confidence is a Human Problem
6
Good CI is Necessary
7
Automated
Comprehensive
Comprehensible
Tests
Reproducible
Reusable
Stateless
CI Pipelines
… but not Sufficient
8
Pairing
Small StoriesPM Acceptance
Product+Eng
Collaboration
Unique Challenges
9
PaaS-as-a-Product
Pivotal
Elastic Runtime
Pivotal
Web Services
Distributed System
Distributed Team
CF CI: Overview
10
Key Tool: BOSH
11
“COMPILER”
CONSISTENC
Y
DECLARATIVE
for distributed systems
between environments
configuration
Key Tool: Concourse CI
12
BOSH
INTUITIVE
DECLARATIVE
deployed
read-only web UI
configuration
Key Tool: CATS
13
COMPREHENSIV
E
COMPREHENSIBL
E
SHARED
feature coverage
BDD framework
among dev teams
CF CI: Component Pipeline
14
CF CI: Integration Pipeline
15
Example: CVE + Major Regression
16
48:00
Pivotal
Web Services
Pivotal
Web Services
Example: Delete CI
17

How Cloud Foundry is CI'd

Editor's Notes

  • #8 • So that we can: ◦ reduce chance of doing something wrong ◦ reduce the risk when something is done wrong ◦ make it easy to do things right ◦ make it easy to ask questions and understand why our CI is right
  • #10 • Distributed System: ◦ complex setup and config ◦ no one understands all pieces • Distributed Team: ◦ 40+ teams, 7+ timezones, 8+ companies ◦ ~15% contributed by non-Pivotal
  • #11 Each pipeline progresses from fast-feedback unit tests to slower, full-deploy-and-acceptance-tests, before promoting
  • #16 • Pull components • Deploy, smoke-test, and acceptance-test in multiple configurations • Promote release candidate • manual approval by many PMs • cut final release