Silicon Valley Code Camp : October 1 & 2, 2016session
Modularizing Features for Rapid Independent Deployment
This talk focuses on modularizing features for large scale web applications. The intent is to write applications in such a way that you can easily develop and deploy to production. Yahoo Mail, currently using this architecture, has daily deployments.
About This Session
With the varied range of products, every engineer is developing a feature that gets rolled into a large-scale web application. The way we tend to achieve this is by creating a common codebase touched by dozens of engineers, with multiple features getting rolled together to form a single set of web application run by the specific property for which the feature was written. This approach delays the release of specific functionality until there is a stable build that can be released with all the modules working coherently with each other. Every day of production delay, is another customer lost, and given the competition no one can afford this.
When developing features for large properties it is imperative that there is a stretch between the advancement cycle of one module versus the other. In such circumstances, it becomes very important that each feature is developed as a separate module and can be released independently. This talk discusses an architecture that allows us to develop, test and release them independent of not only each other but also the base module. This allows each module to be developed at its own pace and be released by testing over the modules that are already active in production, thereby making the release almost instantaneous once the testing of the feature is complete.
It is also the architectural backbone of the Yahoo Mail application currently running in production.