DevOps, Source Control, CI/CD, and API Automation
Over the last decade, enterprise organizations have heavily invested in there being a source of truth when it comes to the software development lifecycle—with the adoption of GitHub, GitLab, and Bitbucket introducing a Git-based workflow across teams. Having to manually scale and manage the deployment of source code, deal with the lack of repeatability by teams, and always respond to fires had left enterprise organizations desperately in need of a source of truth to guide ever-changing and rapidly expanding code bases. Source control along with continuous integration and deployment pipelines have been key for enterprise development teams to get on the same page when it comes to software development. Now, they have that source of truth and repeatable workflows needed to progress together in the same direction.
Source control has a long history, but more modern approaches building upon Git by GitHub have enabled software development teams to manage changes to code, access contributions from multiple sources, and resolve conflicts when they arise in new and creative ways. GitHub invested in a much-needed social and collaboration layer on top of Git, helping reduce not just technical friction with the release process, but also much of the human conflict that emerges along the way. Modern source control has shifted how we deliver software today and is something that lends itself to defining and moving forward the API lifecycle in the same way it has for the existing software development lifecycle. This encourages teams to not just manage the code behind APIs they produce, or the APIs they consume using source control, but also the artifacts necessary to design, develop, document, test, and monitor APIs in a consistent way across teams. Source control has become the truth for not just the enterprise code base but also for each individual API contract that is powering our businesses today.
Alongside the evolution of source control to become more social and collaborative in the last decade, CI/CD pipelines have emerged and are now baked into source control to help us ensure the building and deployment of code is repeatable and meets internal guidelines through testing. While source control has shaped modern software development, APIs have shaped source control by introducing a continuous integration and deployment mindset, which we simply call CI/CD. Modern CI/CD reflects the API producer and consumer reality of always being able to reliably deploy code to support the deployment of APIs, as well as the integration with APIs. This continuously meets the needs of the business by providing repeatable pipelines for deploying all or portions of our codebase, while testing our interfaces and integrations as they move from development to staging to production.We can now deploy and iterate in a way that allows us to fail safely with contract, integration, performance, security, and other governance tests running as part of each CI/CD pipeline run across the entire monolithic or distributed code base of an organization.
The continuous mindset set in motion through the marriage of source control and CI/CD pipelines has changed the pace of development, allowing teams to release with confidence and more frequently. The modularization of CI/CD pipeline tests in the form of machine-readable collections has allowed this automation to spread beyond the pipeline in a standardized way; the same tests scripts can be used not just to automate testing, but they can also automate any API call at the pipeline level scheduled via a monitor, or executed by client, script, or CLI during development. Collections were born out of the need to automate testing, daisy-chaining multiple API calls into a single meaningful workflow, but once developers realized these same artifacts and scripts could be used to automate any API-driven workflow, test automation blossomed into an infinite world of automation and orchestration. This has made automation accessible to developers and even non-developers, with these workflows discoverable via public or private search, repeatable using a variety of environments, and more observable by piping in automation results in existing APM solutions. With a mindset that prioritizes automation for deployment and integration, teams can do more each day with fewer resources.
Source control combined with a modular, artifact-driven approach to CI/CD opens the lid on an entire automation toolbox for developers. Developers can begin by deploying and integrating with microservices, but then they have more agency in automating how they deliver and put APIs to work. They can automate away mundane tasks during the development, deployment, and sustainment of APIs. In an API-first world, a developer’s work is defined by the number of API calls needed to make the world go round each day, and API artifacts aren’t just for defining the APIs we produce or the APIs we consume, but also the APIs beneath the infrastructure, systems, and tooling we use to produce and consume those APIs. API automation via a platform in a collaborative environment enables individual and team velocity that collectively has the potential to take us in entirely new directions.
Collectively moving in the right direction
The aggregate evolution of source control, CI/CD, test automation, and wider automation across an increasingly well-defined software, but also API development lifecycle, has given birth to a new philosophy called DevOps. This combination of philosophy, practices, and tools have allowed teams to deliver microservices and APIs at a higher velocity while also realizing higher levels of quality. Teams embrace change when it comes to deploying and integrating with resources and capabilities needed to meet the increasing demands on our businesses. By adding an automation mindset to the source control foundation, teams are doing things faster, better, and more reliably. Ultimately, productivity increases without compromising quality. This formula is powering enterprise organizations to collectively move in the right direction and effectively respond to changes and competitive influences within our fast-paced industries.