Netflix’s tech team revealed their success building and evolving microservice architecture in Amazon Web Services (AWS), on their recent tech blog.
For the past 8 years Netflix has been part of AWS, a building, testing and deploying service, which allows the online streaming service to expand delivery pace as frequent as they wish.
Consumers and service owners have been equipped with microservices that supply all IP logic, offering a range of benefits, with most microservices compromising internal and open source libraries.
“While service teams have the flexibility to release as they please, their velocity can often be hampered by updates to any of the libraries they depend on. An upcoming product feature may require a number of microservices to pick up the latest version of a shared library or client library,” said Netflix’s tech team.
Expanding and cultivating capabilities
According to the team, updating project’s dependencies could cause potential issues, including breaking API changes, transitive dependency updates and breaking functional changes.
They observed companies moving towards two approaches and took into consideration the benefits. The first approach was the share little approach, which states that no code should be shared between microservices; secondly, the monorepo approach, which dictates that all organisation source codes live in a single source repository.
“The monorepo approach favours consistency and risk reduction, while sacrificing freedom by requiring gates to deploying changes. Adopting either approach would entail significant changes to our development infrastructure and runtime architecture. Additionally, both solutions would challenge our culture of freedom and responsibility,” added the tech team.
The team also announced that they use three different approaches, which are still being experimented with – publisher feedback, managed source and distributed refactoring. “We are just starting our journey. Our publisher feedback service is currently being alpha tested by a number of service teams and we plan to broaden adoption soon, with managed source not far behind. Our initial experiments with distributed refactoring have helped us understand how best to rapidly change code globally.”
Expanding and cultivating capabilities should allow the Netflix team to achieve true organisation and eliminate the pain of managing dependencies.
Written from blog post by Leah Alger