SwashBuckling the Enterprise with 3Musketeers.io
Sydney Docker Meetup July 2018

Why
What
Results
About Us

WHY
Should You Care?
Need to Ship that (Good) Sh*t!
And Fast... and Reliable... and Secure!

Building a High Performance Team is Hard

The Mythical Full Stack Developer?

T Shaped Engineer is more likely

2010 Web App
2018 Web App


Knowledge Broadening
We also have this Cloud Thing
T Shape Engineer is must-have for Cross-Functional Team
- But it's hard
- Tools are getting broader
- Barriers of entry is getting higher
- True cross functional teams do rotations
- DevOps goes across everything
Typical New Joiner
- Day 1 - Orientation, install local dev environment
- Day 2 - finishes installing local dev environment
- Day 3 - Show great initiative and try to compile code
- Day 4 - The README is out of date
- Day 5 - Gets a buddy, both figuring out why the code isn't compiling. Either due to local environmental issues or using Windows
- Week 2 - Fixes first bugs, all working locally. But CI/CD fails. Repeat previous step
Application Onboarding
- Microservices are meant to take two weeks
- Polygot framework and languages are inevitable
- Dedicated teams to support CD pipelines
- Debates on what agents to bake and what versions to support
Onboarding is Costly
- To onboard a new employee costs $4000* - $7000**
- A technology contractor is typical $700-$900 per day
- Humans want to do good work and be productive
- Product Owners wants predictable velocity
- End customers want product features on time
* Bersin by Deloitte & HR Onboard
WHAT
Is the Solution?
10X Engineer
Serum
Make It Easier (Dumber)


Developer Evolution





Building with Docker

Text
- Is quite a common practice
- But can get messy, especially with multiple containers

Standardised Approach
Standard Pipeline as Code
- Same commands everywhere
- No need to bake agents
- Shift left responsibility
- Dumb Pipeline + Smart Endpoint
- DIND!
image: flemay/musketeers
services:
- docker:dind
test:
stage: test
script:
- make test
build:
stage: build
artifacts:
paths:
- bin/awesome-service
script:
- make build
deploy_dev:
stage: deploy_dev
dependencies:
- build
script:
- make deploy
variables:
ENV: dev
deploy_prod:
stage: deploy_prod
when: manual
dependencies:
- build
when: manual
script:
- make deploy
variables:
ENV: prod
DIND (Docker in Docker)

RESULTS
What we achieved in Productivity
- Newcomers guaranteed productivity on day 1
- Average fully functional CD pipeline on day 2
- 2 week Microservices with a brand new team
- Everyone can be a T-shaped Engineer! Learn by doing!
What we've achieved in Tech
- Dockerised selenium tests using xvfb, chrome headless
- Dockerised build of Container and Serverless
- Dockerised Packer, Terraform, Cloudformation
- Successfully rolled out in Australian and UK, across government, startups and enterprises
- Works on Windows!
Some Links
DEMO
Swashbuckling the Enterprise with 3Musketeers.io
By Yun Zhi Lin
Swashbuckling the Enterprise with 3Musketeers.io
Fully Dockerised DX across frontend, backend and infrastructure
- 2,070