Skip to content

Instantly share code, notes, and snippets.

@danieluhl
Last active November 22, 2021 17:36
Show Gist options
  • Save danieluhl/dabaf05adb4b87b444e1daba2e91600b to your computer and use it in GitHub Desktop.
Save danieluhl/dabaf05adb4b87b444e1daba2e91600b to your computer and use it in GitHub Desktop.
Notes from a great goto conf video about building a great eng platform

https://www.youtube.com/watch?v=4N2ywun-wTE

Successful platform experience

1. Clear boundaries & responsibilities (what's platform vs feature team)

  • Minimize friction for engineers
  • Promotes better collaboration & flow
  • Use a "platform contract" (more below)

2. Self Service & Automation

  • Docs and interfaces
  • Empowers independent Teams
  • Promotes innovation and experimentation
  • Without this: death by 1000 jira tickets

3. Flexible & Evolvable

  • Not one-size-fits-all
  • Fit for purpose tech & processes
  • Provide guard rails and guides (paved path with options)
  • Without this: the platform becomes a white elephant that nobody wants (work arounds, shadow platforms)

4. Reliable & Caters for Day 2 Operations

  • Confidence for Engineers and Management
  • All fundamental capabilities are rock solid
  • Provide tooling and dashboards for folks to use for troubleshooting
  • Without this: engineers build their own "coping mechanisms" which spawns tons of micro eco-systems for each team

Practical Steps to Get There

  1. Executive buy-in
  2. Technical experience & expertise of folks who have done this before (modern experience of cloud technologies)

Ensure org changes and technical changes can happen.

Adjust your Thinking Aim not just to provide a service, but rather to be a service

Community Driven Principles (more on each of these below)

  • Make teams independent, not dependent on you
  • Promote Freedom, not Autonomy
  • Be a Role Model & Walk the talk
  • Respect & Recognize community differences

Make teams independent, not dependent on you

Define a platform contract (clear boundary)

  • Security & Compliance
  • Infrastrucutre Provisioning

e.g. "the platform will take responsibility for patching k8s nodes, the team will take responsibility for scanning their own containers for vulnerabilities (using tooling provided by the platform)"

Favor Automation & API Interactions

  • Onboarding, Infra Provisioning
  • Terraform Modules, K8S Operators

Documentation

  • Includes in-tool help and reference examples

Promote Freedom, not Autonomy

auto: self tonomy: law/rule autonomy: self-rule

Freedom is more about liberty/boundaries

Establish the ground rules

  • single cloud vs multi-cloud
  • Support for "stable" vs "latest"

Choice over "anything goes"

  • Tech stacks
  • Ecosystems (terraform, k8s)
  • Templated pipelines

Be a Role Model & Walk the talk

Eat your own dogfood

  • Tooling (using your own stuff)
  • Test against reference implementations (reliability)

Offer "professional services"

  • Workshops, pairing, embedding
  • Requires high executive buy-in

Platform Evangelists / Advocates

  • Promote good practices
  • Brown bags, lunch & learns, visit teams to share

Respect & Recognize community differences

Adapt ways of working for different communities

  • Team structures and interaction modes (team topologies matthew skelton and manuel pais)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment