Jenkins CI/CD Concept

Jenkins is a great tool for continuous integration and continuous delivery.The CI/CD and their responsibilities:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
            +-----------------------+           +----------------------+           +------------------------+
| | | | | |
| continuous | | continuous | | continuous |
| integration +-----------> delivery +-----------+ deployment |
| | | | | |
+---------+-------------+ +--------------+-------+ +---------------------+--+
^ ^ ^
| | |
| | |
+---------------------+----------+ +--------------+----------------------+ +-----------+--------------------+
| kick off depends on commits | | platform specific testings: | | ready to be used by customers |
| or schedule | | security, performance, API... | | |
+-----------+--------------------+------+ | | +--------------------------------+
| code version control | +-------------------------------------+
| branching strategy |
+-----------+-------------+-------------+
| regression testings |
| |
+-------------------------+

Regression testing: re-running functional and non-functional tests to ensure that previously developed and tested software still performs after a change. If not, that would be called a regression. Changes that may require regression testing include bug fixes, software enhancements, configuration changes, etc.

Git branching (tag): Branching strategy: feature branch and primary development branch

Devops practice: Blue-green deploy, blue live and green idle. Smoke/Sanity test TDD test-driven development A/B testing, user experience research methodology.

Resource

What is CI/CD? Continuous integration and continuous delivery explained Continuous integration is a coding philosophy and set of practices that drive development teams to implement small changes and check in code to version control repositories frequently.

Continuous delivery automates the delivery of applications to selected infrastructure environments.

A mature CI/CD practice has the option of implementing continuous deployment where application changes run through the CI/CD pipeline and passing builds are deployed directly to production environments.

A best practice is to enable and require developers to run all or a subset of regressions tests in their local environments (or use Travis). This step ensures that developers only commit code to version control after regression tests pass on the code changes.

Test that require a full delivery environment such as performance and security testing are often integrated into CD and performed after builds are delivered to target environments.

To recap, CI packages and tests software builds and alerts developers if their changes failed any unit tests. CD is the automation that delivers changes to infrastructure and executes additional tests.

CI/CD is a devops best practice because it addresses the misalignment between developers who want to push changes frequently, with operations that want stable applications.

0%