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

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

Made with Slides.com