Netflix, the world's most popular movie streaming platform, deploys 100 pieces of code per day with only 70 engineers. So how do they do it? The DevOps lifecycle method that Netflix claims helps them squeeze “canaries into hours instead of days,” partly because it helps their engineers “quickly research issues and make changes rather than bouncing the responsibilities across teams.”
Software methodologies: Waterfall, Agile, and DevOps
Certain companies use the Agile and Waterfall methodologies to deploy software. Each, in its way, produces faster and more disciplined project delivery than before. But Waterfall, with its siloed groups, usually creates months-long delays that sometimes kill projects, while the more efficient Agile is pocked by miscommunication.
New kid on the block, DevOps, augments Agile by:
Merging the development and operations teams. (Some companies also blend Development, Operations, and Security into DevSecOps)
Automating each part of their DevOps lifecycle
Practicing continuous improvement using feedback from the blended team
DevOps through the Netflix lens
By 2018, a frustrated Netflix had experimented with various software methodologies before it adopted the DevOps method of Belgian consultant Patrick DeBois, which gave shared ownership to developers and operators over the entire software lifecycle. Essentially, Netflix lets the developers test what they create while allowing the operators to fix what they operate. But, of course, DevOps engineers need to know the tools of both specialties.
Here’s how the DevOps lifecycle works
Netflix trots its DevOps software life cycle through seven phases. Each is called “continuous” because the team regurgitates each step before moving on to the next.
1 - Continuous planning and development
Here, continuous project planning and development or coding take place. But, first, the team sets out the idea and discusses which coding to use.
2 - Continuous code integration/ building
The team builds the code for unit testing, integration testing, code review, and packaging. It also commits to evaluate this code once a week and to integrate revisions and add-ons as needed. Most DevOps teams use Jenkins to execute their code.
3 - Continuous testing
DevOps engineers test their developments in artificial environments created through Docker containers. They use automated testing tools like TestNG, JUnit, and Selenium, to root out bugs and malware deficiencies.
4 - Continuous feedback
The team assesses how the code “behaves” in its simulated environment, then they incorporate improvements as needed before repeating the piloted tests.
5 - Continuous deployment
The final application code is uploaded and deployed on the various production servers through tools like Vagrant, Docker, Ansible, and Kubernetes. Other devices, notably Chef, Puppet, Ansible, and SaltStack, automate the code.
6 - Continuous monitoring
DevOps engineers assess how the code runs, checking for security and functionality issues. As a result, engineers use Nagios as one of their favorite tools.
7 - Continuous operations
This is the shortest, most thrilling stage of all. The DevOps team automates the product release and subsequent updates.
What Netflix does for the DevOps life cycle to work
Engineers on the DevOps team have to be uniquely motivated and well-rounded. Each needs to have the skills of their specialized skill-set and the skill-set of SWE, SDET, and SREs. With their focus on automation, questions that DevOps engineers need to ask include “how can I automate what is needed to operate this system?”
Netflix augments its DevOps lifecycle by investing in high-quality personnel, tools, and training. Then, when a product or service fails, Netflix spins it through five whys iteratively, probing to uncover the “how” and “why” the issue occurred and how to improve before returning the code to the DevOps lifecycle and optimizing as needed.
The DevOps lifecycle helps Netflix deliver regular deployments through its continuous improvement and automation practices and blending development with operations.
Netflix admits that the trade-off means sacrificing specialization for generalization. Still, grouping different specialists in one team reduce silos, eliminates bottlenecks, improves product accuracy and speed, and drastically cuts production costs. In 2018, Netflix testified that DevOps helped them grow to 125M global members who enjoy 140M+ hours of viewing per day.
Leah Zitter, Ph.D., has a Masters in Philosophy, Epistemology, and Logic and a Ph.D. in Research Psychology.