0% found this document useful (0 votes)
2 views

CI CD Explained

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

CI CD Explained

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

codewithmukesh

CI/CD
EXPLAINED
FOR BEGINNERS!

Explained with a
Pizza Shop Analogy! 🚀

mukesh murugan
@iammukeshm
codewithmukesh

Imagine..
You're running a pizza delivery service, and you want to ensure
that the pizzas you deliver are always top-notch and arrive at your
customers' doors as quickly as possible!

mukesh murugan
@iammukeshm
codewithmukesh

Continuous Integration (CI)


Think of your pizza kitchen as a software development team.
Each chef (developer) is working on a specific part of the pizza
(code).

With CI, as soon as a chef finishes preparing their part, it's


immediately integrated into the overall pizza (codebase). Just like
how you regularly check that each ingredient is fresh and every
chef is following the recipe, CI ensures that each code change is
regularly and automatically tested to maintain the quality of your
overall pizza.

mukesh murugan
@iammukeshm
codewithmukesh

CI - In Short!
Continuous Integration
CI focuses on preparing code for release (build/test)
Developers have to regularly push their feature changes back
into the main branch.
These changes are validated by creating a build release and
running automated tests against this build.
High importance to Automated Testing and Code Coverage.
This ensures that the application doesn't break after new
changes are merged.

mukesh murugan
@iammukeshm
codewithmukesh

Continuous Delivery (CD)


Now, let's focus on the delivery process.

Imagine your pizza kitchen has a magical conveyor belt. With


Continuous Delivery, as soon as a pizza is ready, it gets placed on
this conveyor belt, ready for delivery.

The pizza is fully cooked, tested, and ready to go, but it's just
waiting for someone to assign a delivery boy to this order. Similarly,
in software development, Continuous Delivery means that every
change that passes the automated tests is ready to be deployed to
a production environment whenever the team decides it's the
right time.

mukesh murugan
@iammukeshm
codewithmukesh

CD(Delivery) - In Short!
Continuous Delivery
CD focuses on the deliverables.
Extension to Continous Integration.
In Continuous Delivery, the deployment to the production
environment is not automatic.
The software is always in a deployable state, and it's up to the
development or operations team to decide when to push those
changes to the live environment.
This needs a manual intervention.

mukesh murugan
@iammukeshm
codewithmukesh

Continuous Deployment (CD)


If you want to take it a step further and eliminate the need for
someone to manually assign a delivery boy, you can imagine a
pizza kitchen with an automatic delivery mechanism.

As soon as a pizza is ready and passes all quality checks, it


automatically gets delivered to the customer's door. Similarly, in
software development, Continuous Deployment means that every
change that passes the tests is automatically deployed to the
production environment without manual intervention.

mukesh murugan
@iammukeshm
codewithmukesh

CD(Deployment) - In Short!
Continuous Deployment.
The CD focuses on automating deliveries.
No Human Intervention is needed.
Every time a code is pushed, built, tested, and merged, an
automated deployment happens in your environments.
Possibly the ideal state you want your team to be in, as there
will be no more release days to be scared of!

mukesh murugan
@iammukeshm
codewithmukesh

CI/CD Services (Tools)


There are several excellent tools available for setting up
Continuous Integration and Continuous Deployment (CI/CD)
pipelines. The choice of tools often depends on your specific needs,
preferences, and the technologies you're working with.

Azure DevOps
AWS CodePipeline
GitHub Actions
Jenkins

GitHub Actions is the easiest and FREE way to get started with
CI/CD.

For Automated Deployments to Cloud, you can use:


Terraform
AWS CDK
Pulumi

mukesh murugan
@iammukeshm
codewithmukesh

Summary
Planning / Feature Intake.
The developer delivers the changes to his Feature Branch.
Once tested and reviewed, the feature branch is merged into
the master branch. (CI)
Release is generated via the build pipelines, after running the
automated tests. (CI)
The team decides when the feature goes into production. (CD)
Or, Deployment into Production is automated. (CD)

mukesh murugan
@iammukeshm
codewithmukesh

FREE .NET Zero to Hero Advanced Course


I have started a FREE .NET Zero to Hero Advanced Course on my blog.
YouTube Playlist Coming Soon.

Enroll for free by Subscribing to my YouTube Channel.

Link in the Description!

mukesh murugan
@iammukeshm
codewithmukesh

Share with a friend who needs it!

HELPFUL?
REPOST
mukesh murugan
@iammukeshm

Follow me for more!

You might also like