The advantages of continuous integration and delivery for catching errors while they're still easy to fix and speeding up your time to market are well documented, but even if you're sold on CI/CD, it can be tricky to take the next step. How do you choose the solution that's right for your team?
The factors to consider when choosing a CI/CD tool are similar to those of choosing a Git management solution: hosted vs. on-premise, open source vs. commercial, and integrations. You'll also want to look at how easily the tool allows your team to visualize the release process and nip potential issues in the bud.
Whether you prefer SaaS or to host yourself, you have options. Integrations with third-party services are sometimes easier with a cloud-based service, but some organizations prefer the peace of mind that comes with everything being housed within their walls. Ultimately you need to weigh up what resources you have at your disposal for hosting, and how you want to use them.
Open source vs. commercial
Using an open source solution has its advantages: it's free, and you can look under the hood and make alterations if needed. Make sure you do your research before committing though: do you need priority access to support? How will you manage if the vendor decides to abandon the product? Are there any features specific to a product that would make things easier for your team? Ask these questions first.
Support for integrations
It's fairly common for an organization's software development lifecycle to rely on several integrated tools (such as issue boards and other discussion features). Find out what your teams are already using and if the CI/CD solution you're considering is supported. There's been growing interest in built-in CI/CD, which means developers can spend less time stringing together their tooling and more on new features and improvements. Bringing all your tools under one product with one interface and datastore is also useful for things like cycle analytics, which can help to reduce the time between coming up with an idea and deploying it.
Visualizing the release process
One of the advantages of leveraging CI/CD is being able to see changes and new additions from the moment they're created. Does your chosen solution offer Review Apps, so you can automatically check out a live preview of new code? You might also benefit from Deploy Boards, where you can watch a deploy roll out across pods and monitor the health and deployment status of each environment, all in one place. This makes it easier to spot problems and stop or roll back with one click. These are just a couple of features that can make a significant difference to your team's efficiency.
So how does GitLab CI/CD stack up?
We have a free and open source offering, GitLab Community Edition, and two enterprise offerings,
Enterprise Edition Starter and Enterprise Edition Premium, with advanced features such as GitLab Geo, High Availability via our Reference Architectures) and Disaster Recovery, File Locking and Service Desk.
You can visualize your release process in all versions of GitLab with GitLab CI/CD Pipelines, Review Apps and Prometheus monitoring.
GitLab Enterprise Premium comes with Deploy Boards and
Canary Deployments for even more advanced control over deployments.
To learn more about CI/CD and how it can help you release earlier and more often, watch our webcast, "From Continuous Integration to Continuous Everything" on demand.
“spiral” by Vadim Timoshkin is licensed under CC BY 2.0