BlogsShopifyProduction Engineering Model

Production Engineering Model

Production Engineering Model

6
posts
2016–2022

Shopify has evolved its engineering organization towards a Production Engineering model, inspired by industry practices like SRE and Facebook's Production Engineering. The goal is to unify development and operations responsibilities, reduce manual toil through automation and tooling, and improve self-service capabilities for feature teams. This involves building common infrastructure, shared operational responsibility, and world-class developer tools. The model aims to balance management support, system and domain expertise, and high-level roadmaps through strategies like temporary team assignments, whole-team contributions to other teams' goals, and the formation of tiger teams for specific projects. The model aims to balance management support, system and domain expertise, and high-level roadmaps through strategies like temporary team assignments, whole-team contributions to other teams' goals, and the formation of tiger teams for specific projects.

2022

The Management Poles of Developer Infrastructure Teams - Shopify

10/28/2022

This post introduces a management model for developer infrastructure teams that balances three poles: management support, system and domain expertise, and roadmaps. It discusses the unique challenges of Dev Infra teams, such as the lack of dedicated product managers and the need for deep system expertise. Three strategies for managing these tensions are proposed: temporarily assigning people from one team to a project on another, having a whole team contribute to another team's goals, and forming tiger teams for specific projects. The post emphasizes that there are no perfect solutions and trade-offs must be made deliberately.

Spin Cycle: Shopify’s SFN Team Overcomes a Cloud-Development Spiral - Shopify

8/4/2022

This post details the challenges and strategies employed by the Shopify Fulfillment Network (SFN) team to migrate their monolithic Rails application to Spin, Shopify's cloud-based development tool. It describes the technical complexities of handling numerous external dependencies by either running them in the same container, mocking them, or using shared environments. The post also highlights the human systems aspect, detailing the 'Spiral of Struggle' feedback loop where development friction discourages Spin adoption, leading to regressions. The SFN team's solution involved focusing on core functionality, prioritizing bug fixes that impacted common flows, and encouraging other developers to use and contribute to Spin's development, aiming to transition to a 'Loop of Happy Equilibrium'.

Cloud, Load, and Modular Code: What 2022 Looks Like for Shopify - Shopify

1/20/2022

This post outlines Shopify's strategic focus for 2022, emphasizing the evolution towards a Production Engineering model. Key initiatives include building more modular code by further deconstructing the Rails monolith, exemplified by splitting out storefront rendering for performance gains. It also highlights the adoption of cloud development environments like Spin to accelerate developer productivity and the integration of load testing as a natural part of the development process to handle massive traffic surges. The post also mentions the impact of YJIT on Ruby performance and reaffirms the commitment to Rails and React Native.

2021

Modelling Developer Infrastructure Teams - Shopify

8/13/2021

This post introduces a model for organizing Developer Infrastructure teams by categorizing them into horizontally integrated teams (supporting the entire develop-validate-deploy cycle) and vertically integrated teams (specializing in specific technology stacks across multiple workflow phases). It analyzes the implications of these structures on scale, scope, and collaboration, and proposes avenues for future development (Concentration, Expansion, Interfacing) to inform organizational strategy.

2018

Shopify’s Infrastructure Collaboration with Google - Shopify

3/26/2018

This post details Shopify's strategic decision to build its cloud infrastructure with Google Cloud Platform (GCP), specifically leveraging Google Kubernetes Engine (GKE). It outlines the company's journey from its early days as a cloud company, through pragmatic infrastructure evolution including database and application sharding, to the adoption of Docker and then Kubernetes for container orchestration. The post highlights the migration of over 50% of data center workloads to GCP, the development of a Shop Mover tool for database shard rebalancing, and contributions to Grafeas for container governance. It also mentions the growth to over 400 production services and the development of a Platform as a Service (PaaS) on Kubernetes.

2016

Why Shopify Moved to The Production Engineering Model - Shopify

10/30/2016

This post details the rationale and initial implementation of Shopify's Production Engineering model. It describes the shift from a traditional Development/Operations split to a unified model, inspired by SRE and Facebook's Production Engineering. Key aspects include focusing on automation, reducing disconnected operational teams, and providing ready-to-use tools for developers. The post outlines the shared responsibility for operations, the Production Engineering team's focus on common infrastructure and developer tools, and the initial positive impacts on deploy speed and release frequency.