BT

New Early adopter or innovator? InfoQ has been working on some new features for you. Learn more

Continuous Deployment Variables and Solutions

| by Aslan Brooke on Jul 14, 2013. Estimated reading time: 1 minute |

Paul Biggar, co-founder of CircleCI, presented on "the many ways to deploy continuously" at RubyConf 2013 in April of this year. The frequency at which deployments happen qualifies the term "continuous" and directly influences the deployment problem space. The presentation aggregates solution information gathered from CircleCI's own customer base, Facebook, IMVU, Etsy, Heroku, and Google. They found that every company does deployment slightly differently and that there isn't just one solution for deploying continuously. 

Paul shared details about how deployment solutions are going to have processes involving code, databases changes, units of deployment, deployment speed, testing, and monitoring. He said the variables affecting the development of these deployment solutions include speed of new features, code complexity, software architecture, software design, number of engineers, and the state of monitoring.

Paul explained that the most common solution to managing the transition state during deployment to production, the "Race", was to deploy code that supports new and old functionality. This requires engineers to program functionality so that new code can safely run side by side with old code. Databases present an additional challenge of stored state. At first it seems like updating everything else in the application first and allowing the app to handle both versions of a database would be enough, before ultimately changing the version of the database. However In some cases changing SQL databases causes so much locking that the only reasonable choice is to create a new database table for each version and migrate the data out of band. The application would be coded to check for the new table and fall back to the old table if the data is not present. NoSQL has become popular in part because it can avoid the locking scenario. 

The presentation covers additional aspects of deployment including unit of deployment, speed, validation through testing, and verification through monitoring. While these are non-functional requirements of deployment, the level of these capabilities determine to what degree deployment is continuous.

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and dont miss out on content that matters to you

BT