Continuous integration and Continuous Delivery are the processes, where your development team involves frequent code changes that are pushed in the main branch while ensuring that it does not impact any changes made by developers working parallelly. The aim of it is to reduce the chance of defects and conflicts during the integration of the complete project. Let’s take a deep dive and learn more about the fundamentals of Continuous Integration and Continuous Delivery.
3. What Is Continuous
Integration?
Continuous Integration is a
development methodology that
involves frequent integration of code
into a shared repository. The
integration may occur several times a
day, verified by automated test cases
and a build sequence. It should be kept
in mind that automated testing is not
mandatory for CI. It is only practiced
typically for ensuring a bug-free code.
4. Early Bug Detection
If there is an error in the
local version of the code
that has not been
checked previously, a
build failure occurs at an
early stage. Before
proceeding further, the
developer will be
required to fix the error.
BENEFITS OF CONTINUOUS INTEGRATION
Reduces Bug Count
In any application
development lifecycle,
bugs are likely to occur.
However, with
Continuous Integration
and Continuous Delivery
being used, the number of
bugs is reduced a lot.
Automated Process
The Manual effort is
reduced a lot since CI
automates build, sanity
and a few other tests.
This makes sure that the
path is clear for a
successful continuous
delivery process.
5. What is Continuous
Delivery?
Continuous delivery is the process of
getting all kinds of changes to
production. Changes may include
configuration changes, new features,
error fixes etc. They are delivered to
the user in a safe, quick and
sustainable manner.
6. Reducing the Risk
The main goal of
Continuous Delivery is to
make deployment easier
and faster. Patterns like
blue-green deployment
make it possible to deploy
the code at very low risk
and almost no downtime,
making deployment
totally undetectable to
the users.
BENEFITS OF CONTINUOUS DELIVERY
High-Quality
Application
Most of the process is
automated, testers now
have a lot of time to focus
on important testing
phases like exploratory,
usability, security and
performance testing.
Reduced Cost
When an investment is
made on testing, build
and deployment, the
product evolves quite a
lot throughout its
lifetime.
7. Continuous integration is usually the
process when code changes made by
different developers are integrated into the
main code branch as soon as possible. It is
usually done several times a day. The
process ensures that code changes
committed by individual developers do not
divert or impact the main code branch.
HOW IS CONTINUOUS DELIVERY DIFFERENT
FROM CONTINUOUS DEPLOYMENT?
8. ● Developer builds their code on the local
system that has all the new changes or
new requirements.
● Once coding is completed, the developer
needs to write automated unit testing
scripts that will test the code. This process
is optional, however, and can be done by
the testing team as well.
● A local build is executed which ensures
that no breakage is occurring in the
application because of the code.
How To Perform
Continuous Delivery?
9. LogoMakr is another free
tool for creating logos.
Provides a variety of 100+
fonts and icons to choose
from! You can create your
desired logo with real pace
and can conveniently
download it in your
computer, once it is
complete!
LogoMakr
FIVE.ONE
10. ● Before any changes are submitted, ensure
that the current build is successful. If
there are some issues, fix the build before
any new code is submitted.
● If the build is in the successful state,
rebase your workspace to the
configuration in which the build was
successful.
Continuous Delivery
Checklist
11. Jenkins, Team City,
Travis CI, Gitlab,
Circle CI, Codeship
TOOLS OF TRADE FOR CONTINUOUS
INTEGRATION & CONTINUOUS DELIVERY
12. BEST PRACTICES OF CONTINUOUS INTEGRATION
AND CONTINUOUS DELIVERY
Keep a Central
Repository
A large project involves
multiple developers
constantly pulling and
pushing codes that are
organized together to
build the application.
Automated
Deployment & Build
Automated build ensures
that the team only gets
the latest source code
available in the repository
and it is compiled every
time before the final
product is built.
Automated
Unit Testing
This will help the team to
detect bugs before the
code is pushed in the
repository. Unit testing,
as well as interface
testing, have greater
clarity on the product’s
state before it is released.
13. Although the continuous integration and continuous delivery fundamentals
discussed above may look simple, they are a bit complicated to implement. You will
need to start a bit slower and buy-in some extra time from the stakeholders to
ensure that the team gets sufficient time to complete all the required procedures
and deploy a quality product that has passed all the required test cases.
CONCLUSION