The Mozilla Reps web development team is starting to move toward continuous delivery so that we can deliver features faster while maintaining or increasing the quality of code deployed to reps.mozilla.org.

Continuous deployment is the holy grail of application development. It reduces bottlenecks between stages of the development process, allowing the team to move faster and be pretty confident in the quality of the code. Once in place, it can also reduce the work to test and release new functionality. We think it’s a win for everyone.

It also means pushing every code change to a production environment (that’s the deployment part). Our team is interested in a variation of this called continuous delivery, which means that we have the ability to push to production at any time. This will give us more flexibility, since we’ll be able to separately make code changes and update the site when it is most convenient for the team.

What do we need to build to move to continuous delivery?

Continuous integration server

Source control commit check

Simple deployment script

Real-time alerting

Root cause analysis

Dark Launch and Feature Flipping

Redefine relationship between QA and WebDev

Re-evaluate branch management and staging environments

Higher standards for code reviews

Giorgos has provided more information about each of these, and I will publish another post that goes into detail about each one.

This is a big undertaking, and it will take us several months to fully implement continuous delivery. If you’d like to give feedback or ask questions about this project, please post in the discussion forum or stop by #remo-dev on IRC. You can also follow along with the project by watching our tracking bug.