Paul Hammant's Blog: All you can eat software licenses when doing Continuous Delivery
As more established enterprises push into Continous Delivery (CD), they are inevitably going to encounter challenges around the commercial licensing of software or commercial support for open source pieces. The TL;DR is only use commercial software where your charge is a variant of “all you can eat”.
Continuous Integration (CI) servers should attempt to keep up with the commits the developers are making, without batching them up as was common in the early CruiseControl era, ten years ago. If the build, start to finish, is longer than say one minute, then there is a need to run CI builds in parallel. You could imagine a CI server kicking off a build from a commit, and ten following builds before the first one has finished. For a busy team I mean, but it could also be that way for longer build times (15 mins or more). You still momentarily stop the line, if a build fails. Presumably everyone by now, has a automatic roll-back strategy, if they are not doing a pull-request model.
Anyway, how many separate installations of a piece of software are allowed in the license is now a factor. Enterprises find it a challenge to create a greater number of separate environments for the Continuous Integration (CI) server to own, without tripping over license costs that result from their best practice.
Stylized, and gratuitous, environments diagram:
All you can eat licenses
You use commercial software where the fee is for the whole company or division or department regardless of the number of installs. Sometimes this isn’t apparently available, but if your corporation is sufficiently large you have a chance to negotiate your own terms.
Price it for prod instances only (derivation)
You pay for production installs only, and get an agreement that UAT, staging, “perf”, QA and even dev (shared or not) are free. This seems to be offered by vendors that really get Continuous Delivery, and don’t want to gouge enterprises going there.
Paid support for prod only
Say you’re using open source, but for some of the critical pieces your execs want to know there’s a phone number to call: You want to install the app/service for free and pay for support based on some sizing criteria that focuses on production usage only (not UAT, QA, etc). Again, why would modern companies (vendors) doing CD gouge other companies for doing CD?