Sei sulla pagina 1di 2

In a nutshell, a well-structured CI/CD implementation is an essential part of the software

delivery process. It enables teams to move faster and focus on delivering features without
worrying about breaking something. It doesn’t matter if your team is working on a mobile app,
firmware, or cloud project, the CI/CD system will greatly improve workflow and quality of
deliverable. With this information, you can go ahead and implement CI/CD system for your
organization.

Questions Answers
What is Continuous Continuous Integration is the process of running a series of steps on
Integration (CI)? your project to make sure that it compiles without error, passes all test
cases, and generates a working package without any issues. Each
change in software generally goes through a CI pipeline.

CI systems like Jenkins, Travis-CI, and CircleCI


What is Continuous This process takes CI a step further. Once the build is generated, it has
Delivery (CD)? to be deployed on servers, or published on a mobile store. Continuous
Delivery pipeline allows you to define steps to deploy build artifacts on
servers such as staging or production. Once the build is generated and
has passed all test cases, it is deployed on development or testing
environment where it can be tested further to ensure that the build is as
expected.
How Does it Work? The CI /CD process can be customized based on the type of project
you’re setting it up for. Let’s understand each step:

Sanity check (linting): This should be the first step. It will ensure that
changes in source code conform to predefined coding rules and that
there are no syntactical errors.
Compile: The compilation step sees to it that all libraries and
dependencies are in place and that there are no issues in generating
binaries.
Packaging: This step will create a bundle with all binaries along with
static resources and dependencies so that we can deploy the
application to the server. In case of mobile apps, it can also sign
packages with developer keys to ensure integrity.
Unit test: This step will execute all unit tests on the build. Application
will be ready for deployment pipeline once all tests are passed.
Backup: This is a very crucial step that involves backing up existing
database, configurations, and data files before deploying any build.
Deployment: Once a backup is completed successfully, the application
will be deployed, replacing the existing one on the server. This step can
also take care of any process you might want to set up to ensure zero
downtime deployment.
Smoke test: After the application is deployed, it’s ideal to have a series
of automated sets of basic functionality tests to ensure that system is up
and functional.
Additional things to Protecting data and configuration related files is very important. Having
consider during an effective backup strategy is the key to implementing the CD pipeline
implementation: which keeps maintaining a reliable set of backups.
Here are a few things to consider when implementing the backup stage:
As our objective is to iterate faster, there can be multiple builds daily.
This results in huge storage requirements for backups. However, as
changes between these builds won’t be major, we can save significant
amount of storage by backing up only delta between builds.
Having backup is great. However, a backup you cannot restore is
pointless. It’s essential to have periodic verification of backups, which
again can be made a part of a backup pipeline.
Tools Sanity tools: cppcheck for C/C++, checkstyle for Java, and JSLint for
JavaScript, SonarQube, Gradle for Android project, Maven for
Java-based project, npm, and pip for NodeJS/Python projects

Unit testing tools:JUnit, Selenium, and Mockito

AUTOMATED BACKUP: N2WS Backup & Recovery (CPM), AWS cloud


backup and Amazon EC2 and provide flexible and scalable snapshot
management, automation and monitoring

Deployment tools: Jenkins offers plugins to deploy code via SSH, FTP,
etc. AWS also offers a service called AWS CodeDeploy which allows
you to deploy builds on Amazon EC2 instances. AWS offers AWS
CodePipeline this is one integrated tool for CI/CD need.

Benefits of 1) EASIER ROLLBACK THAN PREVIOUS VERSION


Automated Build 2) REFER OLDER BUILD LOGS
Backups 3) COMPARE PERFORMANCE WITH OLDER BUILDS
4) KEEPING TRACK AND REFERRING CONFIGURATIONS USED

Potrebbero piacerti anche