This talk was part of Developer Growth Summit 2022. Go to the DGS2022 page to view recordings of all sessions.
About the talk
Netflix is a global leader and has always been known for its culture document. In this talk, we'll explore how Netflix approaches DevOps and how the company culture permeates thought on Agile practices, DevOps, and development.
This talk will cover
- DevOps culture at Netflix
- How Netflix handles scale
- Hiring for culture
About the speaker
Tejas is a tech leader, TedX and international keynote speaker, with considerable experience in cloud computing, microservices and software development.
Highlights of the talk
How do you design DevOps in an organization?
When we think about the computer and storage side of things at Netflix’s scale, they completely use AWS for that. This is not how Netflix started. They used their own data centers and then moved to cloud for the streaming side, which is something they’re trying to replicate with the studio side as well. Netflix currently uses Akamai for UI & small assets, and Netflix open connect for all video bits. The open connect is their CDN software that is open source and it is used to stream all the video bits to the cloud to the users.
How do you do DevOps with such a humongous collection of microservices? The short answer is Netflix doesn’t. They do not do DevOps in the traditional sense.
How does Netflix think about DevOps and permeate their culture?
They do not have systems that say no to their engineers. Everyone has full access to production. They don’t take time to build systems or have procedures or policies that prevent people from pushing their code. What Netflix does instead is that they believe in freedom and responsibility. One of their goals at Netflix is to hire smart people and get out of their way. If you hire someone who’s good at what they do, and is intelligent, then they need to have the freedom to solve problems in the way they see best. Netflix also looks for people that take responsibility and do not wait to be given responsibilities.
Netflix also doesn’t focus on uptime at all costs, and this is a very controversial topic because there are some companies for which uptime at all costs is very important. These are typically organizations in health care, in finance. There the repercussions of downtime are very different. At Netflix, they drive the velocity of innovation. They want the smart engineers they hire to find new ways of delighting their customers. And as an organization they know they have to trade some of the uptime for this. It is not that uptime of a service is not important, it is just that it is not Netflix’s first priority. The top priority at Netflix is to make sure their engineers are doing fun, interesting, and exciting things for their millions of customers.
They do not focus on process and procedures because it is difficult to have a fast moving organization with people solving interesting problems to have someone build guard rails. This is a bureaucratic way of thinking. One of the functions of bureaucracies is to take the bureaucratic machine and plug in any cog and get the output that the bureaucracy desires. That is not what we do at netflix. So there are almost no processes and procedures. Sometimes engineers come together to make a process and a procedure but this is driven by the community rather than forced upon the engineers.
What Netflix really believes in is trust. They work very hard to find people that are not from the bureaucratic machine world. They want new engineers to challenge Netflix and suggest newer ways of doing things. They trust the people they hire, which is why they do not have issues giving everyone access to production. They do not force people to adhere to standards, they do not force people to use any language or IDE for implementation. Today, Netflix has a lot of JVM languages, microservices that are written in Springboard, Kotlin, Python, C++, and in some amount of go. They also have a lot of Rust, Scala, and Node as well. So the best tool to take the application forward depends on the application that you’re building.