Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Enabling DevOps culture with a Platform Enginee...

Adarsh Shah
August 01, 2017

Enabling DevOps culture with a Platform Engineering team (TW)

DevOps is about creating a culture of shared responsibility in delivery teams. It is recommended to embed operations skills into delivery teams to reduce friction and enable them to deliver products to customers faster but whenever there is a need for significant investment in tooling and automation and teams lack the skills to self-manage a full application and operations stack, having a separate Platform engineering team can help. Organizations that consider establishing such a platform engineering team should be very cautious not to accidentally create a separate DevOps team.

In this presentation Adarsh Shah will talk about when and why Platform engineering team can be helpful. The team’s chief responsibility is to operate a platform which enables delivery teams to self-service deploy and operate systems with reduced lead time and complexity. The emphasis here is on self-service infrastructure and supporting tools, with delivery teams still responsible for supporting what they deploy onto the platform. He will also talk about challenges and lessons learned leading and being part of such teams. He will explain “The Three Ways: The Principles Underpinning DevOps” as mentioned in “DevOps Handbook” & “The Phoenix Project” and how it can be used to resolve some of these challenges faced by the team.

Adarsh Shah

August 01, 2017
Tweet

More Decks by Adarsh Shah

Other Decks in Technology

Transcript

  1. Adarsh Shah Lead Consultant @ ThoughtWorks @shahadarsh [email protected] Enabling DevOps

    culture with a Platform Engineering team Challenges & Lessons Learned
  2. Dev Ops Software Development IT buying Monitoring servers Respond to

    Outages Change Control Backup & DR planning Software Deployment Application monitoring & support Server provisioning & configuration
  3. Dev Ops Software Development IT buying Monitoring servers Respond to

    Outages Change Control Backup & DR planning Software Deployment Application monitoring & support Server provisioning & configuration
  4. IT buying Monitoring servers Respond to Outages Change Control Backup

    & DR planning Software Deployment Application monitoring & support Server provisioning & configuration Software Development Dev Ops
  5. Collaboration Software Deployment Application monitoring & support Server provisioning &

    configuration Dev Ops Software Development IT buying Respond to Outages Change Control Backup & DR planning Monitoring servers
  6. Dev Ops Software Development Software Deployment Application monitoring & support

    Server provisioning & configuration IT buying Respond to Outages Change Control Backup & DR planning Monitoring servers
  7. Advantages of this model • Improved communication & collaboration •

    Reduced feature lead time • Innovation • Agility • Software stability and quality
  8. For this model to work • Dev and Ops -

    Shared vision • Organizational maturity • Need skills to self-manage operations stack
  9. Team Structures for DevOps Dev Cross-functional team Platform Engineering team

    Platform <platform> Api driven monitoring tools analytics App Dev 1 Ops App Dev 2 server provisioning self service pipelines container platform Dev Ops Collaboration Dev & Ops collaboration Dev SRE HandOff - Meets Standards? Site Reliability Engineering (Google)
  10. Platform Engineering Team is responsible for operating a platform which

    enables delivery teams to self-service deploy and operate systems with reduced lead time and complexity. Platform Engineering team
  11. Example responsibilities Platform <platform> Api driven monitoring tools analytics App

    Dev 1 Ops App Dev 2 server provisioning self service pipelines container platform
  12. Example Workflow new microservice api call Platform Dockerfile <platform> Dev

    my-service.yml pipeline containers monitoring analytics server provisioning
  13. Platform maturity Compute Data Network Containers Service Discovery Fault Tolerance

    Monitoring Build Pipelines Regression Testing Smoke Testing API Gateway Serverless Document Store Analytics Platform Maturity
  14. App Dev 1 App Dev 3 Ops App Dev 2

    App Dev 4 Platform Engg.
  15. App Dev 1 App Dev 3 Ops App Dev 2

    App Dev 4 Platform Engg.
  16. App Dev 1 App Dev 3 Ops App Dev 2

    App Dev 4 Platform Engg.
  17. App Dev 1 App Dev 3 Ops App Dev 2

    App Dev 4 Platform Engg.
  18. The Principles Underpinning DevOps The Three Ways Systems Thinking Amplify

    Feedback Loops Culture of Continual Experimentation & Learning
  19. • Enablers not just Doer’s • Cross-team internships • Constant

    pairing with App dev teams • Lunch and learn sessions • Not a service center
  20. • Story pair rotation • Support pair rotation • Glossary

    of terms • Postmortem • Skills matrix exercise
  21. Skills Matrix exercise Python Pipeline Kubernetes AWS Vault Consul Terraform

    David 3 2 1 2 2 1 1 Katie 1 1 2 3 2 3 1 Mark 3 3 2 1 3 2 2 Martha 3 3 2 2 1 3 3 Martin 3 3 2 3 3 2 3
  22. Next sprint Python Pipeline Kubernetes AWS Vault Consul Terraform David

    3 2 1 2 2 1 1 Katie 1 1 2 3 2 2 1 Mark 3 3 2 1 3 2 2 Martha 3 3 1 2 1 3 3 Martin 3 2 2 3 3 1 3
  23. • Promote Product thinking • Delivery infrastructure as product •

    Observe and talk to customers • Key Performance Indicator driven • Product Owner Prioritization
  24. Path to Production exercise Logging Monitoring Business Continuity Disaster Recovery

    Security Delivery Infrastructure Support Now Format AD integration Pipelines Soon Aggregation SLAs, KPIs Secrets mgmt Container platform Later Retention, Masking API for infra provisioning Near Release BCP test Failover test Pen testing Post Release
  25. • Story Writing • Analysis is required but its technical

    analysis • Not Ticket based • Standup, Retros & other agile practices • Product Owner Prioritization
  26. Summary • Different team structures for DevOps • Platform Engineering

    • Challenges • Avoid creating another silo • Building the right features • Being Agile • Embracing rapid adoption • Tackling knowledge silos within the team • Temporary vs Permanent