Wayfair Tech Blog

Continuous Improvement

The Wayfair Engineering team isn't really on the continuous integration bandwagon, but our deployment model comes pretty close naturally because of our desire for continuous improvement.

In the block to the right of the homepage we are displaying the number of code deployments that engineers at Wayfair have done over the last 7 business days. This is a count of deployments to our new environment running our customer facing websites. This represents only a small portion of our total code base, but is a good display of how often we are improving the storefront for our customers. Internally we track a lot of other statistics about our deployments as well, like who did the deployment, the internal ticket number that the deployment was for, the SVN revision that was deployed, and who reviewed the code.

Our deployment system handles all code pushes to our internal applications as well. Below you can see a breakdown of which applications are deployed most frequently.

Application Deployment Distribution

You can see from this graph that we were doing a lot of storefront changes during this time period. This data was generated during our re-branding and we needed to make a lot of small changes to prepare for it, hence the large number of deployments to that application.

One neat thing we have done recently is expand our deployment tool to not only deploy code, but also MSSQL changes for stored procedures, and functions. This makes the lives of our DBAs much easier, since they don't have to spend time getting changes that software engineers have made into production. The tool also allows us to run some automated checks on deploy and roll back if there are issues.

Below you can see a snap shot of the Database Code Deployments.

Database Deployments

Since we have a fair amount of logic in the database layer, some days we do more database deployments than code deployments. With almost 60 software engineers, having a quick and easy way to get changes into production and roll them back if necessary is essential to maintaining system stability while delivering new features at a high rate of speed.

If you want to know more about the technology behind this system, check out our post on Code Deployment at Wayfair.