Advanced Dependency Management & Library Promotion at Netflix
After years of evolving our build, to deal with our growth to the cloud and our loosely coupled teams, we’ve developed a few conceptual models of dependency management. In all cases there are compromises, and you the build owner should be conscious of which choices you’re making. By exploring a spectrum of trade-offs, you’ll leave the session understanding that there is no one right build for everyone.
As background, we’ll explain Netflix’s build evolution from a monolithic web application to a distributed SOA system in the cloud. Then we’ll contrast the build methodologies from a few other well known companies. In the remaining time, we’ll discuss a few techniques and solutions Netflix uses to attempt to have a consistent build while maintaining the freedom of our developers.
About Carl Quinn
Carl Quinn has been developing software professionally for 35 years, starting with BASIC on an Apple II, slogging through C/C++ on DOS, Windows and embedded, and finally landing in the Java-on-Linux world. The one thread through his career has been an inexplicable attraction to developer tools, spending time building them at Borland (C++ & Java IDEs), Sun (Java RAD), Google (Java & C++ build system), Netflix (Java build and cloud deployment automation) and currently Riot Games (cloud platform). Carl also co-hosts the Java Posse podcast, the #1 ranked Java technology podcast.
More About Carl »About Justin Ryan
Justin Ryan is a Senior Software Engineer in the Engineering Tools team at Netflix, where he applies his years of experience as a developer to the problems of build automation and dependency management, raising the bar for the quality of build tools and build analysis. He is tasked with finding patterns and best practices between builds and applying them back to the hundreds of projects at Netflix. Justin has worked on Web UIs to Server development to Embedded programming.
More About Justin »