Enterprise-Scale DevOps
with a Startup-Sized Team
using GitLab, AWS, and Friends
MICHAEL IRWIN and CARL HARRIS
NOVEMBER 7, 2019
Who are we?
Summit
Summit Team Composition
Developers
QA/Acceptance Testing
Product Team
Supporting Agile Development
master
CREST-7373
other feature branches
2.21.0
post-merge fixes
end of sprint +
time for pprd testing
start of sprint
subsequent features will
get next build version
acceptance testing and
final code reviews performed
GitLab is the Nexus for Summit Development
Container Images are the Lingua Franca of CI
Every CI build produces at least one container image and pushes to at least one registry.
Summit in a Box™
Summit Build Pipeline
Component Repository
pushes
code to a branch
starts build pipeline
Local Registry
config now uses image from component build
push component image
webhook
notification
Developer
Manifest Repository
starts build pipeline
build component image
build app image
push app image
Manifest Updates
version: "3.7"�services:� api:� image: summit/api:abcdef
...
desktop:� image: summit/desktop:123456
...� mobile:
image: summit/mobile:abc123
...� docs:
image: summit/docs:123abc
...
version: "3.7"�services:� api:� image: summit/api:234567
...
desktop:� image: summit/desktop:123456
...� mobile:
image: summit/mobile:abc123
...� docs:
image: summit/docs:123abc
...
Pre-push to component repository
Post-push to component repository
Developer Experience
The Naive/Simple QA
Simply follow these simple steps:
Goals for QA 2.0
Feature Branch Isolation
Scale to Many Deployments
Dynamic, yet Persistent
$
Keep Costs Down
QA State Machine - per Feature Branch
The QA Infrastructure
Summit QA Pipeline
Manifest Repository
pushes
code
ECR on AWS
Serverless QA Manager
launch notification
Developer
QA Tester
Component Repository
What’s it cost?
Lessons Learned
Sharing what we learned
Thanks! Questions?