One year ago, in May 2022, the CD Foundation announced the CDEvents project, a vendor-neutral specification for defining the format of event data to provide interoperability across services, platforms, and systems. Since then, CDEvents garnered a lot of attention from open source projects, various industries as well as from end users, and its adoption is gaining speed.
The CDEvents specification extends the CloudEvents specification, intending to provide an open framework in which the desired Continuous Delivery processes can be described, in line with best practices and expressed in a familiar form that is aligned with other cloud-based event-driven processes. The CDEvents specification introduces a set of common abstractions to aid in this process such as events related to Source Code Control, Continuous Integration, Continuous Deployment, Continuous Operations, and Pipeline Orchestration. These abstractions are designed so that they may be used in all Continuous Delivery scenarios, cloud-based or not.
“Continuous, fast, and secure delivery of software is powered by the fantastic and varied ecosystem of tools in the CDF and CNCF landscapes and beyond. The abundance of options can be a challenge to users though, which is why the CDF TOC promotes collaboration between the various open source projects and fosters interoperability between them,” said Andrea Frittoli, Open Source Developer Advocate at IBM and the chair of the CDF Technical Oversight Committee. “I’m really thrilled about the progress made by the CDEvents community, as the specification is adopted by more and more tools and its development continues empowered by the collaboration and feedback of end users.”
In October 2022, CDEvents project announced its first release, v0.1.0, which covers events spanning from configuration management systems, through CI and CD, enough to calculate DevOps metrics like the lead time for changes and deployment frequency. The first release includes a CloudEvents binding, so it supports out-of-the-box transport over several different messaging systems. The current release of the CDEvents specification is available here. Additionally Go, Python, and Java SDKs are available as well to allow communities to use CDEvents to achieve interoperability of their projects with the other projects within the CD ecosystem.
Availability of the release and the SDKs allowed communities and organizations to start adopting CDEvents in the projects they develop and use, allowing them to utilize CDEvents out of the box, achieving interoperability and enabling scalability and observability for their CI/CD pipelines.
One of the projects that adopted CDEvents is Jenkins, the leading automation server. The efforts led by the contributors from Fidelity Investments and the broader Jenkins Community rushed in to help make this new technology available to their users. Thanks to a collaborative and collective spirit, the new Jenkins CDEvents Plugin was developed and is now available to Jenkins users, making it possible for other tools that support CDEvents to interoperate with Jenkins.
“There is an increasing level of complexity and responsibility placed on developers and enterprises to create and manage the Software Delivery Lifecycle (SDL) processes and ecosystem,” said Ger McMahon, Product Area Leader for ALM Tools and Platforms at Fidelity Investments. “From the code created on keyboards to the code running in production, a wealth of digital events and data are being generated. The CDEvents project is key to enabling interoperability which, in turn, simplifies the process of safely and securely delivering value to customers. The results for the enterprise are an improved developer experience, a reduced risk to the firm, and an increased feature velocity which drives greater end-to-end quality and efficiency through the events, data and DevOps Intelligence.”
Similarly, Spinnaker, an open source, multi-cloud CD platform, is also working on adopting CDEvents, enabling organizations that have multiple CI/CD tools such as Jenkins and Spinnaker as part of their CI/CD systems to use them seamlessly without relying on expensive integrations that are time-consuming to maintain. The contributors from Ericsson worked closely with the Spinnaker community and created a Request for Comment (RFC), proposing to bring CDEvents support to Spinnaker. The RFC has recently been accepted by the community and the implementation is going on in full steam.
“At Ericsson we believe that innovation and simplification are key to unlocking the full potential of telecommunication networks. With the continuous introduction of new technologies and methodologies the telecommunications industry is undergoing significant transformation. The need for innovative and simplified software and service deployment which is underpinned by the principle of interoperability has never been more critical. To that end, Ericsson co-founded CDEvents,” said Frank Kelly, Head of Network Automation, Ericsson Software Technology. “We are excited to further collaborate with the community and shape our industry in a positive way.”
Read Ericsson’s case study featuring CDEvents, Jenkins and Spinnaker called: Developing Complete End-to-End CI/CD Pipelines at Ericsson.
Tekton, a powerful and flexible open source framework for creating CI/CD systems, can parse incoming CDEvents and has an experimental controller that can produce CDEvents associated with its pipeline orchestration. Tekton community members are actively involved in the development of CDEvents and its adoption in Tekton.
Additionally, test events are introduced to CDEvents and projects that are not part of the CD Foundation such as Testkube, a Kubernetes-native testing framework, also started adopting CDEvents, broadening support for CDEvents within typical CI/CD pipelines. The effort to introduce the test events to CDEvents is led by the members of Testkube who joined the CD Foundation as a new member recently.
“Testing is key to delivering high-quality solutions with any CD pipeline, and the new CDEvents for testing-related activities allow for much-improved feedback loops and quality gated workflows in complex build environments,” said Bruno Lopes, Product Manager at Testkube. “The Testkube team is proud to be part of this effort together with the CDF, both in crafting the specification and providing an initial implementation.”
CDEvents project is looking forward to collaborating with other projects and communities to continue making interoperability a first-class citizen within the ecosystem and evolve CD!
You can find us on CDF Slack #cdevents channel, take a look at our website to learn more about CDEvents, and start contributing CDEvents by forking our repos on GitHub.