Continuous integration and continuous delivery (CI/CD)
The continuous integration and continuous deployment (CI/CD) pipeline is a best practice for DevOps teams. It enables developers to deliver code changes frequently and reliably without error. Building a CI/CD pipeline is an important aspect of modern software development across the full API lifecycle, from design to management to deployment.
What is continuous integration (CI)?
Continuous integration is a practice and coding philosophy that makes it easier for development teams to prepare, implement, and run quality control on a release. The goal of continuous integration is to automate and ensure consistency in the way development teams build, test, and package applications. Many of today’s applications are built on code that has been developed in various different tools and platforms. Because of this, development teams need a way to integrate and validate their changes. CI provides wide benefits such as reducing error-prone deployment work to providing early visibility into bugs.
What is continuous delivery (CD)?
Continuous delivery (CD) is the other end of the CI/CD pipeline. CD automates the delivery of applications and code changes, often to multiple infrastructure environments such as testing and development. Then, CD automation performs calls to databases, web servers, and additional services that must be updated or restarted once an application is deployed. Teams can set then deploy productions on a daily, hourly, or continuous deployment schedule.
CI/CD in action
When IT teams deploy an application development model with automated multi-faceted testing and reporting ingrained in their software development life cycle (SDLC) and completely continuous integration and delivery, it enables their organization to quickly test and launch new features and applications. These successful organizations tightly couple SDLC metrics with project funding to measure and prioritize projects with the highest business impact.
For example, Mule developers use CI/CD to automate Mule deployments with GitHub and Jenkins Pipelines. Most developers are familiar with the build stage; work done in Anypoint Studio can be easily plugged in to your continuous integration pipeline, leveraging some of the technologies that were mentioned earlier: GitHub for version control, Maven for dependencies management and build automation, JUnit and MUnit for test automation, and JIRA or ServiceNow for issue and service management. Customers with Microsoft investments building Mule apps often leverage Team Foundation and Visual Studio.
When the code is ready to be shipped, MuleSoft customers often leverage Jenkins, Puppet, Chef, or HP ALM for both deployment automation and the orchestration of release processes across a number of different environments: dev, test, stage, and production. Puppet and Chef can also be used to automate the installation and configuration of Mule runtimes. Docker is rapidly gaining popularity to reduce the complexities of continuous deployment, and the Mule runtime can be shipped in a Docker container. And through the management agent, Anypoint Platform for APIs and Anypoint Platform CLI, users can further automate processes using configuration automation and management tools such as Puppet, Chef, Ansible, and Salt instead of the Anypoint Platform user interface.
Download this APIs and DevOps whitepaper to discover the right way to create a DevOps model in your organization.