With the rise of the cloud in IT operations, it’s become extremely important that those operations, and the tools you use for them, be “cloud native.”
At the same time, as enterprises adopt DevOps as part of their digital transformation, CI/CD is now the powering engine of their Software Development Life Cycle. How efficiently your CI/CD runs in your operations environment — which is increasingly reliant on the cloud — can make the difference between success and failure.
So it’s no surprise that many CI/CD solutions seek to claim the mantle of cloud native. But are they?
WHAT IS CI/CD?
The software development practices of continuous integration/continuous deployment (CI/CD) mean developing and releasings with smaller, incremental changes, leading to much more frequent builds. Instead of major annual, semi-annual, or quarterly releases, CI/CD may produce a new minor release every day — or even several each day.
This greater frequency is enabled by a CI server tool, whose job is to use the power of the network to automate and distribute the work of building, testing, releasing, and deployment.
WHAT IS CLOUD NATIVE?
Here’s how the Cloud Native Computing Foundation defines cloud native:
“Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.”
That’s a very broad definition. Here’s how we like to think of it:
Cloud native solutions make use of methodologies that effectively utilize cloud technology infrastructure, and enable the inherent best characteristics of the cloud:
Elasticity – Leveraging the power of the network to expand and release resources as needed.
Global Scalability – Using the reach of worldwide networks to provide concurrent service to and from anywhere.
Always Available – Ensuring uninterrupted 24/7 performance, regardless of load.
Resilience – Composed of loosely coupled services that can either self-correct or isolate failure while the remaining services continue to operate.
Observability – Making operations transparent to administrators or users through standard or custom tools.
Now that we’re clear on what CI/CD and cloud native means, how does this shape our expectations of a cloud native CI/CD solution?
What should a cloud native CI/CD solution look like?