In the last few years, agility and speed have become the most critical aspect in product development. In today’s fast-paced market, time isn’t just money; it’s the key to growth. Any company involved with software development in the gaming, finance, or automotive industries is in a never-ending race to release to market faster.
No wonder, then, that DevOps is so popular. Organizations today are embracing DevOps to enable them to deliver quality software faster. As the name implies, it’s also about collaborating between development and operations. This is also where CI/CD fits in. For the purpose of this article, I’ll treat DevOps and CI/CD as the same entity (although they are obviously different), since they belong to the same conceptual group. But where does cloud computing kick in? Why are so many organizations moving their DevOps and CI/CD to the cloud?
Cloud technology has been around for a while now. Introduced in 2006 (although the concept was born back in the mid-1960s) and embraced by major tech players in 2010 (Google, Amazon and Microsoft), many call 2010s as the Cloud Decade. While in 2018 predictions said cloud computing is still not at its peak and just moving past its “self-centered teenage years”, predictions for 2020 are more dramatic with 83% of enterprise workloads expected to be in the cloud.
Some suggest that one of the drivers to that growth is DevOps, while others claim it’s the other way around. Make sense, if you think about it, as both share the same goal: providing organizations with capabilities such as agility and speed. Whether DevOps drives cloud adoption or the cloud drives DevOps adoption, it is clear that the two (CI/CD included) complement each other, so much so that the term “cloudops” has become widely used. A report by Freeform Dynamics (2017) that relies on surveying 900 IT professionals found that organizations that combine DevOps with cloud computing present the best results (81% increase in performance) than organizations that use only cloud computing or DevOps (around 52% increase in performance).
In this article, I hope to take a closer look at the benefits of the relationship between DevOps/CI/CD and Cloud computing, while trying to understand why they are so intertwined. Here are my reasons to move your CI/CD to the cloud.
1. Scalability: ‘capacity for all’
In recent Jfrog deep look for reasons to take your DevOps to the cloud (relying on RightScale 2019 State of the Cloud Report Flexera and Deloitte insights for CIO state of cloud adoption survey reports, increased scalability was on the top of the list with 75% listing this as their primary reason for cloud technology adoption:
Why, of all reasons, is scalability the king of the cloud jungle?
The cloud is all about freedom. Increased scalability might be supporting this value more than any other reason. In some cases (we call them ‘pure cloud’). It completely releases organizations from the burden and limitations of their physical hardware, allowing them to shape their entire software development as a scalable operation. In other cases (“Hybrid’), it provides organisations with the ability to optimise their usage. Once their hardware is exhausted, they can scale their capacity on-demand, automatically. Having that freedom is critical for DevOps. While DevOps goal to achieve fast delivery of quality software was once limited by capacity, it is now a non-issue.
Hardware means maintenance. There is no way around it. Well… there is a way around it – Cloud computing. To really focus on your CI/CD, you need to free yourself from infrastructure maintenance issues. The purpose is to focus on which task to run and how to do so, and not on the infrastructure that allows it. Even software maintenance is much easier with cloud computing. Take Jenkins for example. While Jenkins is a blessing, no doubt about it, it requires a whole bunch of configurations (e.g. groovy) that cloud-managed tools, such as Azure DevOps do not.
3. Centralized: Collaboration without interaction
As I previously mentioned, DevOps relies heavily on collaboration. However, that aspect of DevOps is quite challenging, as it involves collaborating across different teams, some remote, that often use different tools and environments. Access to shared resources is often limited as one team waits until the other team finishes working with these resources.
However, in the era of social media, where the majority of social interactions take place in a single platform, and resources are shared by everyone in real-time, it is only fitting that even the most complex, hard to orchestrate interactions will adopt the same mentality.
Cloud computing provides real-time access to a centralized platform for these teams, without them having to interact or prioritize resources utilization. Teams across the globe can run entire CI pipelines in the cloud, without constantly fighting over resources. This saves a lot of time (as well as resources), not to mention the hardhack.
4. Optimized automation
One of the key principles of continuous integration is automation. While zero-touch automation is not yet a reality, using cloud computing allows organizations to get pretty darn close. True, automation exists even without cloud computing, but cloud computing makes it a whole lot better. Automating processes, by utilizing the cloud, upgrades the pace of automation and makes the procedure more reliable, mistake-free, powerful, and useful.
Just think of running a pipeline in Jenkins using a local infrastructure. Automation gets you through all the known stages, such as dependencies and syntax errors, but it fails since your Jenkins node machine is down. Now you have to talk to your IT, open a ticket, possibly redeploy the machine and all that hassle. Then you think to yourself, “What good is automation if I still need to deal with this?” And you are right. The cloud takes care of that. Removing hardware dependencies removes all that mess along with it. That’s why Jenkins ec2 exists.
Additionally, if you choose to go the extra mile and use hosted cloud solutions for your CI, such as Azure DevOps and AWS pipeline, you will reduce the configuration efforts as well.
5. O.k, o.k, it’s also about money
Cloud computing brings a “pay-as-you-go” model to the table, allowing organizations to pay only for what is used, and lower hardware costs. Additionally, Cloud providers go the extra mile and offer all sorts of deals to organisations willing to commit for cloud usage. But, and it’s a big ‘but’, you can save money only if you use it with caution. A lot of organizations don’t have any idea about how much money they spend on their cloud services until the bill comes. Others spend more than they should. It’s your responsibility to make sure you have the appropriate visibility into the cloud services and tools you’re using, as well as making sure you’re not buying more than you actually need (idle). You can minimize these issues by utilizing Spotinst in conjunction with our cloud solution.
6. Boost computing power
I was very pleased to see this reason listed in Jfrog’s infographics. At IncrediBuild, I’m the cloud product owner. I’m constantly concerned with offering our new and existing customers with the most convenient, cost-effective way to accelerate their software development. Since I’ve been working for quite some time now on a solution for software development acceleration that has a cloud offering, it’s not surprising this reason is my favorite one. Our cloud offering allows me (well, me and IncrediBuild, that is) to provide companies, big and small, with the ability to gain extra compute power for their software development acceleration. If your a superhero genre kind of guy/ girl, this is like having the combined power of two superheroes (just an analogy, I’m not that cocky): IncrediBuild’s power to accelerate development by utilizing all available computing power in your network + the public cloud for even more computing power.
Don’t mind if we do
Realizing that the cloud is the missing piece in DevOps, CI/CD and software development, and understanding the importance of the above benefits, has led IncrediBuild to launch our cloud offering. Providing the speed and agility needed for delivering software in today’s competitive landscape is not only what DevOps and cloud computing are all about, it is also the core essence of IncrediBuild.
Yes, the cloud and DevOps (or CI/CD) are a match made in heaven, but with IncrediBuild it’s an unbeatable threesome.