DevOps is a process of managing software development that combines development and operations into one integrated process, and CI/CD is a step of that process. Learn how CI/CD and DevOps are different but related ideas.
DevOps (short for development/operations) is a process of organizing a development project, including managing the workflow of the development and operations team to eliminate departmental silos and encourage communication and collaboration. CI/CD (continuous integration/continuous delivery) is a principle of DevOps that focuses on frequently delivering small code integrations to a central repository in a repeatable, efficient process with built-in feedback loops. While CI/CD points to integrating, delivering, and deploying code, DevOps is a bigger category of software development that considers the entire development life cycle.
Learn more about DevOps software development and how CI/CD contributes to a more efficient software development life cycle.
While CI/CD and DevOps are software development methods, the two ideas are different. DevOps is the overall system of best practices you can use to manage software development projects; it merges developmental and operational teams into one cohesive process. CI/CD (continuous integration/continuous delivery) is a principle of DevOps that encourages teams to continuously implement new code and deliver project components on a cycle of testing, implementing, receiving feedback, making changes, and testing again. First, explore DevOps and how it can impact the software development life cycle; then learn more about the principles of continuous integration/continuous delivery.
DevOps is a system for organizing your software development process and team to remove organizational silos and merge software development and operations into one streamlined process. The development process is creating the software: writing code, testing, and building the infrastructure and components needed to make the software work. On the other hand, the operations team focuses on creating the infrastructure required to generate a productive application for a business to offer a product to customers. Consolidating these departments can help you develop software faster, respond flexibly to customer feedback, and lower development costs.
DevOps offers a structure and framework for approaching software development, integrating principles like CI/CD, version control, Agile project management, infrastructure as code, configuration management, and active monitoring to streamline software development and plan work in cycles of development.
Version control: A system for managing and tracking changes in a development project, version control is especially important for allowing multiple teams to work on code simultaneously while always retaining a stable (working) version of the program.
Agile methodology: Agile is a method of breaking down workflow into sections of defined work called sprints. You don’t have to adopt an Agile methodology in DevOps, but the two ideas work well together because they operate on the same core principles of collaboration, feedback integration, and continuous improvement.
Infrastructure as code: Infrastructure as code is a method of developing the infrastructure you need for software development in a way similar to code development. This helps you implement DevOps's efficiencies, such as version control and scalability, within the project's infrastructure.
Configuration management: You can also apply structured DevOps principles to managing the tools you’ll need to configure your software, such as servers and databases. Configuration management in DevOps helps you create standardized, repeatable processes that you can sometimes automate for even greater efficiency.
Active monitoring: Actively monitoring your code after you deploy it allows you to draw rich insights from the data and metrics you collect. This helps drive continuous improvement efforts while ensuring your software continues to function properly.
DevOps organizes software development tasks into repeatable cycles to help teams organize workflow, reduce inefficiencies, and stay flexible to changes and pivots as the software comes together. The main steps of the DevOps cycle are:
Planning: In the first step, you will plan the workflow for the development project by listing what you will need to do to create the app and how you will organize that work into cycles. This includes thinking about the features of your software, identifying the technology you will use, and determining project management tools and metrics to measure success.
Developing: In the developing stage, you will begin creating your program, which includes writing code, testing code, and integrating code snippets into the code repository using version control.
Delivering: Next, you will package the code for deployment, making sure you’ve addressed security concerns and created the infrastructure needed to support users.
Monitoring: After your code is delivered, you will enter an ongoing phase of monitoring, maintaining, and managing the operations necessary to keep the application functional.
Improving: You can analyze the metrics you collected in the last step (user or client feedback, time to market, adoption rates) to determine where you can improve as you prepare to repeat the cycle and plan your next development phase.
Continuous integration and continuous delivery (CI/CD) is a principle of software development that, similar to DevOps, helps development teams organize and think about how they approach the software development life cycle. CI/CD is complementary to Agile for software development because it organizes work into cycles of continuous integration of new work into the main branch of code, delivering it to its intended environment, and implementing feedback to improve before starting the cycle over. CI/CD helps development teams get code out of production faster. As a result, they can focus on improving the code once it’s out in the world based on feedback and enjoy increased team collaboration.
CI/CD is a single process, but continuous integration and continuous delivery are two distinct stages of CI/CD. Continuous integration is integrating new code into a central repository, while continuous delivery refers to packaging and releasing those new integrations.
CI/CD workflows contain several elements that can help you organize and support software development, including a single source repository; frequent code integration into the main branch; continuous and automated testing; and predictable, repeatable processes for deploying code.
Single source code repository: A code repository is a project within your code management system where you can store all of the code, documentation, libraries, and other components necessary to operate your program. A single source of code increases transparency and encourages collaboration.
Frequent code integration: When you integrate code frequently, you integrate smaller code batches. This reduces the time it takes to test, deliver, and deploy new code integrations and makes it easier to find bugs and errors if something doesn’t work as expected.
Continuous and automated testing: CI/CD emphasizes continuous testing, starting in the pre-build stages. Because your workflow has repeatable cycles, you can automate some of the components of the testing process in the CI/CD pipeline to make your work more efficient.
Iterative processes: Repeatable processes encourage automation and communication and make it easier to integrate feedback quickly.
Another way to think about the CI/CD pipeline is to separate it into four stages: the building stage, the testing stage, the delivering stage, and the deploying stage.
CI/CD is a principle of DevOps that focuses on continuously integrating new changes into a main code repository, then packaging and delivering those integrations in a repeatable cycle. DevOps is a broader set of best practices for software development organized around integrating the development and operations of the task into a cohesive team.
CI/CD is an important part of the DevOps pipeline, a set of software development best practices that integrates development and operations into one team. You can learn more about DevOps versus CI/CD through courses on Coursera. For example, in the IBM DevOps and Software Engineering Professional Certificate, you can develop a DevOps mindset; practice Agile philosophy and Scrum methodology; create applications using Python language andvarious programming constructs and logic, including functions, REST APIs, and libraries; build applications composed of microservices; deploy using containers and serverless technologies; and employ tools for automation, continuous integration (CI) and continuous deployment (CD), including Chef, Puppet, GitHub Actions, Tekton and Travis.
Editorial Team
Coursera’s editorial team is comprised of highly experienced professional editors, writers, and fact...
This content has been made available for informational purposes only. Learners are advised to conduct additional research to ensure that courses and other credentials pursued meet their personal, professional, and financial goals.