DevOps – CI, CD and Actual Scenarios
HCL Technologies
1
Continuous Integration
2
Continuous Integration
• …is a software development practice
where engineers integrate frequently,
leading to multiple integrations per
day. Each integration is verified by an
automated build and test to detect
integration errors as quickly as
possible.
3
Principles of CI
• Maintain a Single Source Code Repository
• Everyone commits every day
• Every Commit should build the code on
integration machine
• Keep the Build fast and short
• Everyone can see what's happening
4
Continuous Delivery
5
A Service/Software contains
• Code
• Configuration
• Data
• Infrastructure
Every change will requires to re-validate
the entire service.
How can ship fast with low risk and high
confidence?
6
The answer is “Continuous Delivery”
is a set of practices and principles aimed at
Building, Testing, and Releasing software faster
and more frequently.
7
Principles of Continuous Delivery
• The process for releasing/deploying software MUST
be repeatable and reliable.
• Automate everything!
• Done means “released”.
• If something difficult or painful, do it more often.
• Keep everything in source control
• Pushing in quality Builds.
• Improve continuously.
• Everybody is responsible for release process.
8
Benefits of Continuous Delivery
• Remove waste, risk and bottlenecks in the process
to deliver changes faster and safer.
• Improved release quality.
• More collaboration. Test, Support and Dev. as one
delivery team.
• Predictable and faster turnaround for business
requests.
• Improved Risk Management. Releases to production
are reliable, routine “non-events”.
• This improves confidence, and avoids potentially
embarrassing customer impacts.
9
10
CI and CD Tools Landscape
11
DevOps Engineering Themes
Test In Production
• Continuously and extensively Monitoring and experimental our service in production
Continuous Deployment
• Frequent deployments of small changes to production environment (starting with weekly releases)
Continuous Integration
• Minimize the gap between code development and deployment readiness
Pushing Quality Upstream
• Efficient processes to reduce the cost and gaps between product and quality development
Continuous Improvement
• Constant observation, measurement and feedback on processes ,systems and cost
12
DevOps Core Practices
13
Deployment Pipeline
14
Deployment Pipeline models the part of feedback driven
project’s value stream that goes from commit to release,
and then will be automated.
15
Benefits of Deployment Pipeline
• Formalize and Visualize release process
• Remove waste, risk and bottlenecks in the
process to deliver changes faster and safer.
• More collaboration. Test, Support and Dev. as
one delivery team.
• Predictable and faster turnaround for business
requests.
• Improved Risk Management. Releases to
production are reliable, routine “non-events”.
16
Delivery Tools Integration
and Custom DevOps
Pipeline (Actual Scenario)
…
17
18
Are the All the versions
Are all SVN versions containing the closed
status of all JIRA sub tasks id in
STORY extracted in extracted closed their commit logs will
child tasks child tasks be extracted
closed? reviewed?
YES
YES
Graphical view of all
types of
Commit/Checkout
A custom query will be
triggered in JIRA to
Reports
This custom
framework using
Custom
extract all child tasks of a
STORY
scripting will be
prepared to build the
Framework
SVN extracted SVN
revisions
Reports
Historical build Custom Framework
results & SVN will be triggered
reports will then be using Bamboo
transferred to Stable/unstable
SharePoint for deployment results will
Analytics purpose be published here Deployment will
be done using
urbanDeploy
19
The Transformation
(Actual Scenario)…
20
The Journey So Far
Repetitive Artifact generation
Scheduled/Manual Regression with Release Team’s Cross dependency during
Version Control Deployment Dependency build
On the fly artifact generation for
non prod uncontrolled environment Manual pre and post
Complex SVN Structure No Code quality check Manual artifact generation for UAT step
Executes after deployment
Commit issues Scheduled nightly deployment and PROD deployment Dependency on
Used to complete in 5 to 6
Merging Issues Issues surfaces only next day of hours
Lots of manual intervention in case various teams
commit of deployment failures
Build Process Then!!!
Build Process Now!!!
Artifact
generated for
Ensure high quality
Automated
QA1 itself will be
code
Deployment triggers as Automatically mainstream
promoted till
Deployment will be soon as code is executes after release build
Simple & Modular SVN production
proceeded only if code committed deployment including pre and
structure
No manual
passes quality checks
Notify developers in Segregated post steps
Ease and issue free code artifact
In case of failures case of failures Regression& Zero dependency Achieved Continuous
commit using IDE generation
code will not be
Easy to track issues as Progression pack on other teams Delivery for data
Simplified merging
Less manual
promoted for soon as developer Take few minutes except for interface
intervention in
deployment commits code. to complete incidents Delivery in 1 week
case of failures
On commit Integrated Regression
Version Control using deployment/Single click Suite and Progression Single time Artifact Self Service Build & Continuous Delivery
IDE Code Quality check build Pack generation zero dependency Cycle to Prod in 1 week
`
21
22