Contributed by Tracy Miranda
originally posted on CloudOps.com
Continuous delivery is a software engineering approach where teams produce software in short cycles, ensuring it can be reliably released at any time. It relates to continuous integration, which is the practice of merging all developer working copies to a shared mainline several times a day. With the rise of microservices and cloud-native architectures, continuous delivery is increasingly becoming a necessity and open source communities are coming together to drive its adoption.
“Software delivery is an exercise in continuous improvement, and our research shows that year over year the best keep getting better, and those who fail to improve fall further and further behind.”Nicole Forsgren, ‘Accelerate: The Science of Lean Software and DevOps
Even though continuous delivery is a critical part of modern software delivery, a couple challenges are preventing its widespread adoption.
The cloud-native landscape is constantly changing. With microservices and cloud-native technologies, there’s a proliferation of environments, software, tools, and approaches that can be difficult to navigate. The landscape is fragmented, and it’s not always clear which tool performs which job. With so many terms overlapping and being used inconsistently, it’s easy to get confused.
Change can also be challenging. It’s easy to become set in the ways your team operates. Especially as people are involved, it’s not always obvious how to simply embrace all sorts of changes. With COVID-19, companies are having to adapt. Both enterprises and SMBs are looking to significantly increase their cloud usage. The pandemic is accelerating the adoption and automation of technology.
The Continuous Delivery Foundation (CDF) was set up to help address these challenges. It was launched in March 2019 with four initial projects. We’re establishing best practices of software delivery automation, from the standpoints of people, processes, and technology. We’re helping propel the education and adoption of continuous delivery tools throughout industries across the globe for both traditional and modern architectures. By facilitating cross-pollination across emerging technologies, we hope to improve the world’s capacity to deliver software with security and speed.
We at the CDF have a set of initial projects, each of which is at a different point of adoption. Projects like Jenkins and Spinnaker are well known already and being used widely. At the other end of the spectrum are cloud-native technologies, projects like Jenkins X and Tekton that live within this world of containers. They focus on providing you with building blocks to deliver microservices and work across teams to constantly deliver.
One of the initiatives we’ve kicked off recently is the CI/CD landscape, which is derived from the CNCF landscape that is sometimes affectionately called the hellscape. We wanted to dive more into the CI/CD, what it means, and how people can make sense of that space. So we set up categories. It is an early version, and we will be working in the community to flush it out and add more projects to be more fully representative of the open-source space where anyone can make a contribution. Additionally, we have a big meetup community which we use to disseminate best practices and talk about the technologies.
A key component of the CDF is the importance for the industry of having standardized building blocks for CI/CD tools. It promotes innovation as it means not everyone has to reinvent the wheel over and over again.
Within the CDF, there’s an emphasis to aim for common APIs and metadata. This is done through a working group called the Interoperability Special Interest Group, which is open for anyone to participate in. By looking at their minutes and agenda items, you can see an evolution in our focus. At the beginning, we were talking about what things we could identify and how we could push for different tools to share code. We noticed that people were using different terms which meant slightly different things. That led us to appreciate a wider problem, not just within the foundation tools but across all CI/CD tools. We created a document that we refer to as the Rosetta Stone for CI/CD, which maps the different terminologies across tools.
At the CDF we also have a Machine Learning Operations or MLOps special interest group. By MLOps we mean an extension of the DevOps methodology that includes machine learning and data science assets as first-class citizens. Can we have version controls? Can we deploy ML code, data, and models strongly and with all the supporting toolings and processes? These are some questions the MLOps special interest group is trying to answer.
You can be involved by signing up for the CDF newsletter, which will let you know about upcoming events and working groups. You can also follow us on Twitter or take one of the many CD courses on offer. Please feel free to reach out to me if you’re interested but perhaps don’t know where to get started. I encourage you all to join the community building the future of continuous delivery.