Lilaram Anjane CI/CD Pipeline High Level Overview
Lilaram Anjane CI/CD Pipeline High Level Overview
We can use CI server (Jenkins, Team City) for application deployment as application release
automation platform. But it is not standard way to use CI server for enterprise applications
for application deployment in data centre.
This document is high level overview of CI/CD pipeline for non cloud platform.
Tools logo are registered trademark of respective organization, I just used for education
purpose.
We can add more tools in pipeline to perform zero touch CI/CD pipeline.
DevOps Task
Artifact is archieve files in jar, war, dll, pkg, docker images, as per the project source.
Artifact Repository used to store project artifact so that other resource/tool used it for further task.
E.g Sontype Nexus, Jfrog, Artifactry
Continous Testing
To perform testing of application we required testing tool.
Testing tool like Selenium,UFT, Test Complete ,Rest Assured, Jmeter as per the testing we perform
on application.
Monitoring tool
For monitoring application & System log we can used monitoring tool.
For Eg. Splunk, ELK, nagios.
1-> Whenever there is a commit on Source code Repository(Github or bitbucket) CI tool keeps tracks
on the same.
2-> CI tool create new build branch as per the branch organization policy. & assign branch unique
build id & if required then it will also tag branch.(as per the branch policy)
3-> after that it will build the project using build tool.(build tool configured in CI server)(E.g maven
,Ant Nant, Npm, Nuget).
4-> if the build creation successful it will run the unit test cases.
5-> if all the unit test cases passed it will start execution of integration test cases.(if integration test
suite exist).
6-> CI server perform static code analysis as per the configured code analyzer & publish the report to
code analyzer server & team as well.
7-> CI server deploy build to artifact Repository For eg. Nexus.
Build can either be type snapshot or Release.
All above steps from 1 to 7 are part of continuous Integration.
Now to deploy our build to low level to High Level Environment (SIT to Production Enviroment) and
to do system configuration & application configuration & application testing we required
tool/platform that integrate with configuration tool & testing tool.
There are different tool available in market for release application automation platform
E.g Nolio, CA Automation Release, Atomic.
Nolio tool can easily integrate with Team city , Jenkins server and also with configuration
management tool & Testing tool also perform artifact build deployment to different environment.
In our steps we consider Nolio tool.
8-> Now Nolio will trigger ansible playbook script for SIT ENV & perform system configuration as per
the playbook scripts.
9-> once all the system configuration completed nolio tool will take build/artifact from nexus and
deployed it to SIT ENV (Suppose tomcat webapps folder)
10->Nolio tool will run test suite in SIT ENV & publish the report via email to all project team.
11-> If the entire test cases passed (100%) in SIT ENV, now SIT ENV Cycle Completed.
12-> Now Nolio will trigger ansible playbook script for UAT ENV & perform system configuration as
per the playbook scripts.
13-> once all the system configuration completed nolio tool will take build/artifact from nexus and
deployed it to UAT ENV (Suppose tomcat webapps folder)
14-> Nolio tool will run test suite in UAT ENV & publish the report via email to all project team.
15-> If the entire test cases passed (100%) in UAT ENV, now UAT ENV Cycle Completed.
For Production ENV there will be a different configuration that might not be same as SIT or UAT.
But for DevOps process our aim is to make all environments identical.
16-> Now Nolio will trigger ansible playbook script for production ENV & perform system
configuration as per the playbook scripts.
17-> once all the system configuration completed nolio tool will take build/artifact from nexus and
deployed it to Production ENV (Suppose tomcat webapps folder)
Here artifact/build for Production ENV is Release type.