In general, there are two ways to set up CI/CD (Continuous Integration and Delivery): managed CI/CD services accessed through a provider (cloud-based) or self-hosted services that you set up and maintain yourself.
Over time, we've been asked questions like:
- What are the benefits of cloud-based CI/CD?
- Why should I choose a cloud-based tool over self-hosted CI/CD?
- What does using a cloud-based CI/CD tool offer my organization as opposed to a self-hosted option?
Well, if you've ever pondered on a similar question, then you're in luck. This post will compare cloud-based CI/CD versus self-hosted CI/CD to help you understand how using a cloud-based tool can help you and your team save time and money. We'll also dispel some popular misconceptions regarding cloud-based CI/CD and explain how Bitrise handles them.
Cloud-based vs. self-hosted CI/CD: what are they?
Cloud-based CI/CD can be described as CI/CD-as-a-service (CI/CDaaS). In essence, the CI/CD tool is developed, maintained, and hosted by a dedicated organization that offers customers access to the tool via the internet.
The cloud-based CI/CD provider manages the hardware, software, and other utilities required to keep the CI/CD service running and provides automatic software updates and security patches. This presents customers with the opportunity to save time and focus on building and maintaining software specific to their business. In addition, customers get to lower costs and can deploy, scale, and upgrade business solutions faster while also being able to predict the total cost of ownership with greater accuracy.
Setting up a cloud-based CI/CD for your organization is easy and intuitive. You just choose any preferred CI/CD platform that meets the needs of your team, select a subscription plan, connect your version control system (GitHub, Bitbucket, etc.), and then ease into customizing the CI/CD pipeline to fit your team's workflow.
On the other hand, self-hosted CI/CD means that you either build the CI/CD tool or use a third-party CI/CD tool (usually open-source like Jenkins, GoCD, etc.) hosted on your own infrastructure. The infrastructure can either be on-premise servers or infrastructure as a service (IaaS) platforms like AWS, GCP, or Azure.
One of the primary reasons organizations decide to host CI/CD is due to company security and control requirements that state their code can’t leave their internal network. However, going this route is not a walk in the park. First, you have to set up, manage, and maintain your own infrastructure from scratch.
For example, if you’re setting up a CI/CD tool for mobile development, you’ll have to handle everything from:
- Purchasing Hardware
- Updating the Operating System
- Updating Xcode/Android
- Updating the Mobile Toolchain
- Applying security patches, and
- Managing authentication and authorization
In the end, you’ll find that your best developers are spending more time — perhaps too much time — maintaining the CI/CD setup than they are building features for your customers.
Why you should consider cloud-based CI/CD
In more detail, here are some additional reasons why cloud-based CI/CD is a better choice over self-hosted, on-premise solutions for you and your team.
It costs less time and money to set up
All you have to pay for a cloud-based CI/CD is the monthly or yearly subscription fee, and you're good to go. For example, Bitrise offers subscription plans starting at $31.50 per month. And with minimal configuration time, your developers will have a solid CI/CD pipeline in place.
On the contrary, for self-hosted on-premise solutions, you not only have to buy hardware, but you'll also be paying for electricity and cooling, as well as maintenance and other operational costs.
It offers reliable and robust security
When you choose self-hosted CI/CD, you are responsible for the whole system's security. You and your team must set up secure, isolated environments, respond quickly to zero-day disclosure, and implement robust access control mechanisms.
You will also need to understand the full scope of the system's security footprint, all of which you may not be adequately equipped to handle in terms of knowledge and expertise and may end up with critical security issues.
However, with cloud-based CI/CD you can offload all of these to a company that's specialized in providing the service in a secure way, and who are work 24/7 to provide a secure service.
You won't need to make extra or dedicated hires
A self-hosted CI/CD solution needs to be secure, regularly updated with the latest software patches, and serviced, among other requirements, to keep services healthy. Consequently, you will have to recruit skilled, dedicated staff to handle the increased responsibility that may fall beyond the competencies of your team, increasing the total cost of ownership.
In contrast, with cloud CI/CD, there’ll be no need for any dedicated hire because the CI/CD provider will take care of everything that pertains to the CI/CD. So, you can save the money that would have been used to recruit and pay a new hire.
It demands minimal configurations
To set up a self-hosted on-premise solution, you will have to configure the server, install the necessary base software like an operating system, configure the network and access control, and then install the CI/CD software before you can even begin to think of configuring the CI/CD tool to suit your workflow needs.
However, using a cloud-based CI/CD solution, the only configurations you need are those required explicitly for your CI/CD pipeline(s).
Three major concerns for cloud-based CI/CD and how Bitrise addresses them
Despite all of the advantages that cloud-based CI/CD offers, some people still have doubts. No need to worry — Bitrise has you covered. Here's how we address these major concerns:
1. Privacy and control over network
Most organizations worry that cloud-based CI/CD is not private, and, sometimes, due to security restrictions, their code can’t leave the internal network. Bitrise takes this into consideration, and that's why we have the Bitrise Enterprise Build Platform (Bitrise EBP).
The Bitrise EBP is your own private cloud where you have complete control over how and when your builds run. Your builds will run behind your firewall on virtual machines (VM) that are dedicated and specifically configured to your needs. So, you don't have to spend any time maintaining infrastructure. With Bitrise EBP, you get all the benefits of a fully managed cloud solution combined with the control that on-premise solutions provide — which gives you the best of both worlds.
Larger teams sometimes worry that a cloud-based solution won't be fast enough for the resulting extensive build process when their project increases in size and complexity. This is where parallelism shines. On Bitrise, you can split your builds into multiple workflows and run them simultaneously to speed up build time significantly (read our guides on fanning out tests on iOS and Android). This is something that would be complex and complicated to achieve using self-hosted CI/CD.
Also, we understand how important it is for larger teams to work faster and produce higher-quality applications, and that's why we've rolled out the Gen2 Bitrise Build Infrastructure to offer our customers more speed. As much as the previous generation of build infrastructure was fast, Gen2 is even faster.
Gen2 offers much faster virtual machine boot-up times and higher vCPUs and memory allocation, resulting in additional performance gains and shorter wait times to start builds. On average, Gen2 has resulted in 50% faster build times and saved an average of 1,000 hours in build time per month for an aggregate of customers in different industries — finance, social networking, and news apps, to name a few. (See the benchmark report for more details.)
Another concern some have is that cloud-based CI/CD systems cannot be modified using plugins/extensions to add functionality that isn't available out of the box. Well, you don't have to worry about that with Bitrise.
With Bitrise, you can integrate whatever you want into your build process using Steps. A Step is code that performs a particular build task. At Bitrise, we have over 330+ integration Steps available for nearly every use case. You can add any existing service to your build and in case what you're looking for doesn't exist in the Step Libary, you can use the Script Step or develop your own Steps.
Choose the stress-free, time-saving form of CI/CD
Sure, you can create your own CI/CD tool, host, manage and control it. But is that your core business? Is that where you want your dev hours spent?
You shouldn't have to spend months going through the stress of tinkering with hardware or dealing with hectic configurations and downtimes. A cloud-based CI/CD handles all that, so you and your team can focus on building and shipping the product that puts money into your pockets.
And of course, if you're building for mobile, there's no better cloud-based CI/CD tool than Bitrise. Try it today!