Is your service architecture and engineering velocity constrained by organizational concerns? Does it seem impossible to give priority to key initiatives regardless of intent? Are engineers switching tasks so often that they are just treading water? Are critical projects endlessly backlogged? Has staffing up pushed the limits of your team structure? Navigating through challenges like these can be daunting and solutions fraught with uncertainty. How do you know what, where, when to change. And whatever the answer is today it will most certainly vary over time. Effective organizations evolve, at key inflection points, to support critical business and technical goals. There is not only a strong relationship between organizations and the software they produce (Conway’s Law) but many organizational solutions can be derived from analogs in the technical realm. In other words, we can treat organizational improvement as a refactoring exercise. Over the last 20 years Netflix engineering has proven time and again an ability to adapt and grow, resulting in undisputed dominance over the global internet tv market. In this talk we’ll use Netflix as a case study to illustrate how specific strategies, framed as technical analogs, have been employed to maximize engineering agility, velocity, and impact. These powerful, yet simple strategies and solutions provide a useful blueprint for organizational success.
18. If you have four teams working on a compiler you will end
up with a four pass compiler
19. Today’s Premise
Conway’s Law describes dysfunction
We must embrace architecture before organization
Technical analogs drive better organizational solutions
24. Global leader in subscription internet TV
Growing slate of original content
100 million members
190 countries, 10s of languages
1000s of device types
Microservices on AWS
Unique company culture
28. The ability to enhance a system by adding new functionality at
minimal effort
Functional Scalability
The ease with which a system or component can be modified,
added, or removed, to accommodate changing load
Load Scalability
29. The ability for an organization to easily add people and domain
responsibilities in response to increased work and complexity
The ease with which an organization or team can adapt to shifts
in business strategy
Organizational Scalability
30. Common tasks are difficult
Strategic efforts are impractical or impossible
When do we refactor?
34. With the right people
Instead of a culture process adherence
We have a culture of creativity and self discipline,
freedom and responsibility
Netflix Culture
57. Context Switching
Process 1 Process 2
OS
Interrupt or system call
Save state - pcb1
..
Get state – pcb2
Interrupt or system call
Save state – pcb2
Get state – pcb1
..
Executing
Executing
Idle Executing
Idle
Idle
88. Raising the Stakes
Playback start in 500ms
More UI/Playback scenarios
Faster rate of innovation
Better service reliability
89. Common tasks are difficult
Strategic efforts are impractical or impossible
When do we refactor?
90. If you have four teams working on a compiler you will end
up with a four pass compiler
Conway’s Revenge!
We had two teams and a two-service edge architecture
91. Mature API team
Robust API platform
Strong operational focus
Trust & respect
A Better Foundation
Daniel Jacobson
92. Josh: what’s the right architectural solution?
Peter: do you care about the organizational implications?
Moment of Truth
94. Josh: what’s the right architectural solution?
Peter: do you care about the organizational implications?
Moment of Truth
Josh: no – we’ll figure that out later
98. Edge Services
Zuul API Server
Playback
Services
Features Security Data Systems
Platform Insight/Tools
Edge Services
Shared services
Organized around microservices, functionality, shared services