Building a software may or may not be easy , But transporting it was always difficult, Now you may wonder What does transporting the software mean,Before I go on into giving you an idea, I will take up and example and explain how does it exactly work. Imagine there are 2 developers working on a project, one is working on a little feature and another is on an Big Feature. By developing them in branches, it’s not only possible to work on both of them in parallel, but it also keeps the main master branch free from bugs.

Branching is a feature available in most modern version control systems. Developers work on branch, it may or may not depend that every developer will work on individual branches , Branching is a feature available in most modern version control systems. In Git, branches are a part of your everyday development process. Git branches are effectively a pointer to a snapshot of your changes. When you want to add a new feature or fix a bug—no matter how big or how small—you spawn a new branch to encapsulate your changes.
A branch represents an independent line of development. Branches serve as an abstraction for the edit/stage/commit process……. You can think of them as a way to request a brand new working directory, staging area, and project history.
After this you will be having an vague idea where developers work on,so let us see how the work done by them is deployed .
CONTINUOUS INTEGRATION
Continuous Integration (CI) is a development practice where developers integrate code into a shared repository frequently, preferably several times a day. Each integration can then be verified by an automated build and automated tests. , the term build is similar to that of any other field. That is, the construction of something that has an observable and tangible result.
CONTINUOUS DEPLOYMENT
Continuous deployment can be thought of as an extension of continuous integration, aiming at minimizing lead time, the time elapsed between development writing one new line of code and this new code being used by live users, in production.
To achieve continuous deployment, the team relies on infrastructure that automates and instruments the various steps leading up to deployment, so that after each integration successfully meeting these release criteria, the live application is updated with new code.
Now fancy term Release criteria are objective measurements of the critical attributes of the product or project. Listing and referring to the criteria allow you to know whether the product is ready to release. They can help you make rational decisions about when to ship the software.
Expected Benefits
The main benefits claimed for continuous deployment arise as a result of reducing lead time, with two main effects:
- earlier return on investment for each feature after it is developed, which reduces the need for large capital investments
- earlier feedback from users on each new feature as it is released to production, which affords techniques such as parallel (or A/B) testing to determine which of two possible implementation is preferred by users

Now that I have given you a ball park idea on how these things work, let me quickly jump on to the Core idea
What Is CICD?
A growing number of companies are shipping software in minutes.
Yeah, you read that right. Minutes. Not hours, not weeks, months, or longer. Minutes.
In today’s post, I’ll introduce these concepts, show you how to get it right, and identify what’s important. Then, I’ll include a list of tools commonly used to implement CICD. When you finish reading, you’ll have a better understanding of all the benefits that these practices bring,
CI/CD contains two separate but complementary parts. Since I have explained both parts above detailed this must be a cake walk to you
Continuous Integration is the process of automatically testing and building software after new bits of application code are integrated into a shared repository. This yields “builds” of the application that are in a working state at all times. Unit tests are included as part of the continuous integration process, thereby validating the functionality of the software. This identifies bugs up-front, and prevents wasted cycles further down the feedback loop.
Continuous Delivery is the process of delivering applications created in the CI process to a production-like environment, where it is put through additional automated tests to ensure the application functions as expected when pushed to production environments and put in the hands of real users. It also ensures the latest build interacts with other software and applications as intended.
Why CI/CD Matters
Deploy software on-demand based on business requirements
Teams that practice CI/CD can release new application code to production in minutes, when it makes the most business sense to do so rather than based on predetermined release windows.
Reduce the risk of software not functioning properly in production
With CI/CD, code is put through rigorous automated testing before it can be shipped, significantly reducing the risk of introducing bugs or broken code to production environments.
Make rapid iteration based on customer feedback a reality
CI/CD compliments Agile methodology and DevOps by providing the functionality required to put continuous learning from users into practice, allowing teams to iterate and ship software in small, rapid batches.
Recover faster when failures do occur
In the rare instances when failures do occur in production, CI/CD enables teams to reduce their mean time to recovery (MTTR) by quickly pinpointing bad code and pushing fixes to production to minimize the impact on end-users
To conclude with
CI/CD helps teams to be more productive when shipping software with quality built in. But the road to having one-click deployments that you can produce on demand is not an easy one. That’s mainly because even though there are powerful tools that will help you to achieve CI/CD more effectively, CI/CD requires a cultural change: a mindset that every person in the team needs to understand very well.
The top 8 Continuous Integration tools:
- Buddy.
- Team-city.
- Jenkins.
- Travis CI.
- Bamboo.
- GitLab CI.
- CircleCI.
- Codeship.
