Continuous Deployment

Can anyone explain the DevOps picture and it’s position in this chart?

I had trouble interpreting this at first. But I think I get it now. Its about continuous deployment. Its a very common term in web services — not so much with product deliveries.

With continuous deployment you let developers push code to production whenever they are ready. You read that right. Github does it.

The picture is a little out of context — the devops box is not in the same class of change to agile as agile is to waterfall. And I think devops is the wrong word here. Continuous Deployment feels better.

Continuous Deployment relies on huge amounts of automation as well as build and deployment tools, scripts and architecture. How could we apply this to the Product World?

Lets think about some of the ways software updates to devices or VM’s need to be deployed.

  1. Manufacturing. They will need an image that can be loaded in to their imaging systems.
  2. Configuration Management will need a reference to the shipping version.
  3. Support will need a patch or version that customers can download to upgrade their device.
  4. An automated upgrade server.

Is it realistic to push updates this frequently from developers? Perhaps not. Should it be deployable on a daily basis? why not? Just because customer A won’t upgrade daily, nor will customer B — the fact is customer B will most likely upgrade on a different day that customer A — and you can not predict when a customer will upgrade… so lets always have the latest on hand.