Technologies | April 3, 2023

What is CI/CD? Continuous Integration and Continuous Delivery explained

Continuous Integration, Continuous Delivery, and Continuous Deployment – software development practices that have been present in many IT projects for several years. Very often described as good DevOps practices. Many people say they do it in their projects – are you sure? Let’s check what is hidden under these names.

What is CI/CD

Automate pipeline. That is: What is Continuous Integration (CI)? 

What is CI/CD? As the simplest definition, I could give:

It is the practice of frequently merging our work with the work of others into a central repository along with automatic building and testing process of the application.

The main goal is to avoid conflicts throughout the development lifecycle like integrating our work with the work of others. It also allows us to find problems and errors much faster, the later found, the more expensive to fix.

The first rule of thumb is to post our code changes to the repository frequently, we should do this at least once a day. If we put our code every week or every 2 weeks – we are not doing workflow continuously and we shouldn’t call our process continuous integration.

The second basic principle is the automation of repetitive tasks performed in the development process when our code is placed in the main repository. This includes both the automation of building and testing applications, preparation of the artifact, and automation related to e.g. Pull Request.

An automated process is key. Without automation in this area, we should also not call our process continuous integration.

Automation and its role in modern software development

As you can see, CI assumes the preparation of a tested application that contains all the latest functionalities automatically for implementation. The next steps, closely related to the implementation, are carried out in the software delivery process.

The very first thoughts may lead to the conclusion that this is not what we do or what we would like to do in our project. Despite the great popularity of continuous integration and delivery, a well-implemented practice of CI is not always a standard, it sometimes happens that the basic rules are not followed or, knowing these rules well, the team consciously does not decide on such practices.

  • If the processes of building and testing applications in your project are not automated – it’s a pity… but it’s ok, they don’t have to be.
  • If your code is not often placed in the main repository – a pity… but it’s ok, it doesn’t have to be. What about version control?
  • If you say you do CI, but without test automation and frequent integration – that’s not ok, what about software quality?
nearshore 2021.08.26 cover SDLC 1024x459 1

EXPERT KNOWLEDGE

Software Development Life Cycles Models

Find out what the Software Development Life Cycle is! Go to article!

What is Continuous Delivery (CD) really? Good DevOps practices 

You can often come across the description of CI / CD processes as if they were separate or even independent processes.

However, this is not a good description. You cannot put a continuous delivery pipeline into effect without a continuous integration process because CD is some kind of CI extension. In other words, we could say that to carry out CD we have to do everything we do in CI + something else. It is the remainder of the application lifecycle.

The place where software development teams start the CD process is exactly the same as with the CI. It is common to post new code to the main repository among others for integration tests.

The end of this process is a ready-to-release application that waits for manual confirmation of its implementation to production environments. It should come down to a business decision when deployed by launching the appropriate deployment with one click or one command. Unlike the CI process, we do not stop at preparing the code for implementation, but we carry out the entire implementation process by the operations team.

Read also: DevOps monitoring systems

What is the difference between Continuous Delivery and Continuous Deployment?

Technically speaking, the difference between Continuous Delivery and Continuous Deployment is marginal or absent. The difference is the business decision when the application is deployed to the production environment. This is completely automated in the Continuous Deployment process and continuous testing.

After the code is placed in the repository, the new version of the application is deployed to the production environment without any manual intervention.

The words of truth of CI and CD automation deployment

As you can see, “Continuous” is one word that repeats over and over again.

It is important to remember that proper implementation of continuous practices requires activities described in another word, the word “frequent”. If you and your team do not put your code in the repository frequently (once a day), you do not really follow the practices of both CI and CD.

Many development teams do not know the definition of CI / CD. Many teams know them and practice them successfully.

Have you ever wondered how it is with you?

Senior Cloud DevOps / Tech Lead in the DevOps team at Inetum Polska. Connected with cloud technologies from the first public accesses to Azure and AWS. Building the second largest Azure Landing Zone in EMEA, building MVP for the third largest AWS Landing Zone in EMEA.

Exclusive Content Awaits!

Dive deep into our special resources and insights. Subscribe to our newsletter now and stay ahead of the curve.

Information on the processing of personal data

Exclusive Content Awaits!

Dive deep into our special resources and insights. Subscribe to our newsletter now and stay ahead of the curve.

Information on the processing of personal data

Subscribe to our newsletter to unlock this file

Dive deep into our special resources and insights. Subscribe now and stay ahead of the curve – Exclusive Content Awaits

Information on the processing of personal data

Almost There!

We’ve sent a verification email to your address. Please click on the confirmation link inside to enjoy our latest updates.

If there is no message in your inbox within 5 minutes then also check your *spam* folder.

Already Part of the Crew!

Looks like you’re already subscribed to our newsletter. Stay tuned for the latest updates!

Oops, Something Went Wrong!

We encountered an unexpected error while processing your request. Please try again later or contact our support team for assistance.

    Get notified about new articles

    Be a part of something more than just newsletter

    I hereby agree that Inetum Polska Sp. z o.o. shall process my personal data (hereinafter ‘personal data’), such as: my full name, e-mail address, telephone number and Skype ID/name for commercial purposes.

    I hereby agree that Inetum Polska Sp. z o.o. shall process my personal data (hereinafter ‘personal data’), such as: my full name, e-mail address and telephone number for marketing purposes.

    Read more

    Just one click away!

    We've sent you an email containing a confirmation link. Please open your inbox and finalize your subscription there to receive your e-book copy.

    Note: If you don't see that email in your inbox shortly, check your spam folder.