Why Shopify Moved to The Production Engineering Model

6 minute read The traditional model of running large-scale computer systems divides work into Development and Operations as distinct and separate teams. This split works reasonably well for computer systems that are changed or updated very rarely, and organizations sometimes require this if they’re deploying and operating software built by a different company or organization. However, this rigid divide fails for large-scale web applications that are undergoing frequent or even continuous change. DevOps is the term for a movement that’s gathered steam in the past decade to bring together these disciplines.

John Arthorne
6 min readbeginner
--
View Original

Overview

The article discusses Shopify's transition from a traditional Development and Operations model to a Production Engineering model, aimed at improving operational efficiency and developer autonomy. It highlights the benefits of this shift, including increased deployment speed and reduced burnout among team members.

What You'll Learn

1

How to implement a Production Engineering model in your organization

2

Why reducing the number of disconnected teams improves operational efficiency

3

How to enhance deployment speed and release frequency in software development

Prerequisites & Requirements

  • Understanding of DevOps principles and practices
  • Experience in managing large-scale web applications(optional)

Key Questions Answered

What operational changes occurred after Shopify implemented the Production Engineering model?
After implementing the Production Engineering model, feature development teams gained self-service access to build and monitor their applications, leading to a threefold increase in deployment speed and release frequency. Developers now release software changes into production about 150 times a day, significantly improving operational efficiency.
How did the Production Engineering model affect team responsibilities at Shopify?
The Production Engineering model consolidated operational responsibilities, allowing feature development teams to take control of deployment and monitoring. This shared responsibility fostered a sense of ownership and pride among developers, resulting in higher quality and stability of applications.
What are the key goals of Shopify's Production Engineering model?
The key goals of the Production Engineering model include focusing on automation over manual toil, reducing the number of disconnected teams with operational responsibilities, and providing ready-to-use tools and infrastructure for developers. These goals aim to streamline operations and enhance innovation.
What improvements were observed after one year of the Production Engineering model?
One year after the launch of the Production Engineering model, Shopify observed a threefold improvement in deploy speed and release frequency without impacting reliability. Developers now deploy core applications 30-40 times daily, reflecting significant operational enhancements.

Key Statistics & Figures

Average daily software releases by developers
150 times
This reflects the deployment frequency after implementing the Production Engineering model.
Daily deployments of core backend Shopify commerce platform
30-40 times
This is the frequency of deployments achieved post-reorganization.
Improvement in deploy speed and release frequency
threefold
This improvement was observed one year after the shift to the Production Engineering model.

Key Actionable Insights

1
Implementing a Production Engineering model can significantly enhance deployment speed and operational efficiency.
By consolidating operational responsibilities and empowering development teams, organizations can streamline their processes and foster a culture of ownership, leading to improved software quality.
2
Focusing on automation can reduce manual toil and improve developer experience.
Investing in tools and infrastructure that automate repetitive tasks allows developers to focus on innovation rather than maintenance, which is crucial for scaling operations effectively.
3
Shared ownership of production systems can lead to higher quality and stability in applications.
When all technical roles participate in monitoring and incident response, it creates a more resilient system and enhances team collaboration.

Common Pitfalls

1
Failing to provide adequate tools and infrastructure for development teams can lead to operational inefficiencies.
Without the right tools, asking development teams to take on operational responsibilities may result in increased workload without solving underlying issues.

Related Concepts

Devops Practices
Site Reliability Engineering (sre)
Automation In Software Development