A microservice architecture enables organizations to carry out continuous delivery/deployment of large, complex applications to further evolve their technology stack. Netflix, a popular name for video-streaming, started off by selling and renting DVDs and gained popularity post its migration to a microservice architecture on AWS.
The adoption of public cloud and a microservice architecture were the main drivers of this growth. The elasticity of the cloud allowed them to scale easily without any additional work required.
Why did Netflix decide to use microservices?
Way back in August 2008, Netflix had a major outage because of a major database corruption which prevented them from shipping DVDs to customers for three days. Following this, they decided to move away from a single point of failure–that could only scale vertically–and move to components that could scale horizontally and are highly available.
Netflix decided to abandon their private data centers and migrate to a public cloud– AWS to be specific, which provides horizontal scalability. In order to eliminate all the existing single points of failure, they decided to re-architect their systems instead of just moving them as is to the cloud.
The Simian Army
A basic technique Netflix uses to make their systems more reliable and highly available is, ‘The Simian army’. These are a set of tools used to increase the resiliency of your services. The most widely used is Chaos monkey, which allows one to introduce random failures in a system to see how it reacts.
At Netflix, they randomly kill servers from their production fleets every once in a while and make sure there is no difference in customer experience, as the system was able to handle these failures gracefully. Chaos monkey can also be used to introduce network latency.
Watch the video above by Dimos Raptis to dive deeper into Netflix’s actual transition including details about the specific techniques and methodologies they used. The video also features the lessons they learned from this transition.
About Dimos Raptis
Dimos Raptis is a professional Software Engineer at Alexa, Amazon with several years of experience, designing and developing software systems for various companies, ranging from small software shops to big tech companies. His technical expertise lies in the Java and Linux ecosystems; he has some hands-on experience with emergent open-source technologies. You can follow Dimos on Twitter @dimosr7.
To learn more about where to use microservices and to understand the aspects you should take into account when building your architecture, head over to our course titled, ‘Microservices Architecture’.