Here’s a little story about something that has happened over the last couple of days. Let’s start with some background.
Building blocks
Deployment pipelines and automations are made up of a number of building blocks including the following.
- Git repositories
- Automation servers
- Build artifact repositories
- Container registries
- Software catalogues
- Terraform state files
The specific tools are not important
I’ve said a number of times, the choice of the specific tools is far less important than just getting off your backside and doing something with what you’ve got. You can always replace specific tools later if you need to.
Over time people at our company have bought tools or subscriptions for a specific piece of functionality, and those happen to include other features. This means we have a lot of overlap between tools and subscriptions. Just to emphasise this point, here is a quick list of tools we have available at our company that fulfil the role of these building blocks.
Git repositories.
- BitBucket
- GitHub
- Local Server (for backups of cloud repos)
Automation servers.
- Teamcity
- GitHub Actions
- Jenkins
Build artifact repositories.
- Artifactory
- GitHub Packages
Container registries.
- Artifactory
- GitHub Packages
- Azure Container Registry
On-prem software catalogues.
- Artifactory
- HTTP server
- File stores
Terraform state files.
- Azure storage
- Artifactory
Switching to save money
A couple of days ago my boss said company X had hit us with a 23% increase in the price of one of our subscriptions. Day 1 we moved our container registry off their service. Day 2 we moved our artifact repository off their service. We no longer need that subscription, so instead of company X getting an extra 23% from us, they are now going to get nothing…
Conclusion
Not all moves are effortless, but you should really try and engineer pipelines so you can switch tooling at any time. You never know when an external pressure, such as a pricing change, might make you want to change things up quickly. 🙂
Cheers
Tim…