0% found this document useful (0 votes)
3 views

Module-05 Anatomy CICD

The document outlines the principles and practices of Continuous Delivery (CD) and Continuous Testing, emphasizing the importance of automation, quality, and collaboration among teams. It discusses the deployment process, rollback strategies, and the benefits of continuous testing, such as early defect detection and improved code quality. Additionally, it presents a case study on Compuware's DevOps transformation, highlighting the challenges faced and the metrics achieved post-transformation.

Uploaded by

Jatin Fulra
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Module-05 Anatomy CICD

The document outlines the principles and practices of Continuous Delivery (CD) and Continuous Testing, emphasizing the importance of automation, quality, and collaboration among teams. It discusses the deployment process, rollback strategies, and the benefits of continuous testing, such as early defect detection and improved code quality. Additionally, it presents a case study on Compuware's DevOps transformation, highlighting the challenges faced and the metrics achieved post-transformation.

Uploaded by

Jatin Fulra
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 32

Module-05

CD-Continuous Delivery

• It involves more than just doing automation work.


• It involves different teams involved in delivery,
support and on people on the ground willingness
make change.
• Build quality not compromised
• It enable deploy code to certain environment
Simple delivery pipeline
Production(manual
)

Capacity
Acceptance stage testing(automated
Commit
)
stage(automate
d)

Exploratory
testing UAT(manual)
Continuous
deployment
pipeline
Releasing application to production
Releasing application to production
Production deployment is the final stage for
any product

Two pillars of production release is preparation


and planning

Production set up should be documented


properly

Production environment should be similar to


testing/staging environment

There should be proper rollback strategy if


increase roll back is need
Releasing application to production
Zero downtime releases
Traditional deployment Zero downtime deployment

Customers are notified about No notification to customer all system up


maintenance in advance and system are &running during deployment
shut down few hrs

Releases are planned usually they happen Release on need basis


once in few months

Test team validates and run regression Test team only check impact components
suite before change are pushed

Development team does not provide Each component is released


backward compatibility for each independently
component
Rolling back deployments
Rollback for blue/green
deployment Canary release

Load balancer

Blue Green
1.0 2.0
Active standby
Blue green deployments
Canary
Releasing
Emergency fixes
Continuous delivery engineering practices
Principles continuous delivery
1. Repeatable reliable process
2. Automate everything
3. Version control everything
4. Bring pain forward
5. Built in quality
6. Done mean release
7. Everyone is responsible
8. Commit early.commit often
9. Make pipeline fast
10.Write an extensive test suite
11.Always run smoke tests after deploy
12.Provide easy way rollback
Continuous development/integration
Continuous testing
• It refers to the execution of automated tests at every stage of the CI/CD pipeline.
• It aims to provide real-time feedback on the quality of the software, ensuring that any
issues are identified and resolved as early as possible.
Continuous testing

Types of continuous testing are:


1.Unit testing
2.Integration testing
3.Load testing
4. Static code analysis
5.Performance testing

Remember: they are executed in automatically pipeline


Continuous
testing
Continuous testing Benefits
1.Early Detection of Defects:
• It allows for the identification of bugs and defects at early stages of development.
• The early exposure to risks prevents issues from escalating and becoming more costly to fix later
in the cycle.
2.Improved Code Quality:
• By integrating testing throughout the development lifecycle, continuous testing significantly
enhances code quality.
• It ensures that code is constantly evaluated, lead to few defects in production and higher overall
software quality.
3.Faster Feedback Loops:
• Automated tests provide immediate feedback to developers, enabling them to address issues
quickly.
• The rapid feedback cycle accelerates the development process and reduces the time taken to
deliver new features or fixes.
4.Cost Efficiency:
• Fix defects early in the development process is generally less expensive than addressing them
after deployment.
• it minimizes the costs associated with late-stage bug fixes and improves the return on investment
in testing
Continuous testing tools

Cucumber.jv
m

Appium java ngWebDriver

java
REST
seleniumHQ
Assured
Continuous testing tools

Robot
framewo
rk

Pytho
n
PyUnit Pytest
Continuous testing pipeline
Run
perfor
mance
Compile
Create test
Load Deplo
SCM test perf
y Product
test Run
code ion
Create ST Env Deploy code env securit
Static Run deploye
analysis y test
test d
harness
Run
ops
Unit test Static Dynamic test
Deploying &promoting your application

• Automating deployment should start with


first deployment to testing environment
• Manually pulling piece of software into
shape write simple script does job
Modeling release process and promoting
builds
INTEGARTIO
INTEGRATI N TESTING ACCEPTANC QA
ON SIGNOFF E TESTING SIGNOF
GATE F GATE
TESTING

USER CUSTOMER OPERATIO


STAGIN
ACCEPTANC SIGNOFF N SIGN
G
E TESTING GATE OFF GATE
PRODUCT
ION
Modeling release and promoting builds
Production(manual
)

Capacity
Acceptance stage testing(automated
Commit )
stage(automate
d)

UAT(manual) Productio
n
Exploratory
testing
Continuous Monitoring
• Complete operation monitoring
--eg up time ,jobs etc
• Pre &post deployment baselines and comparisons
• Establish key performance metrics
--KPI
Continuous feedback
1.Fast and early
2.Visible and accessible
3.Actionable
Continuous Feedback
Should not
• Too little
• Too much
• Too late
Continuous Feedback Rules
Teams should develop rules for handling various types of feedback and
be held accountable to those rules.

Broken Drop in Failed


build code smoke
coverage test in
productio
n
Continuous Feedback Rules

Broken builds:
• If any build are failed do not merge code
• Fix code and then merge code
• Quality code will be check in

Drop in code:
• Code coverage important metrics for product.
• Most companies set 80% coverage standard new code

Failed smoke test:


• If smoke test fail
• Stop build immediately
• Rollback to previous working version
Compuware DevOps Transformation Case
Study

CHALLENGES

• Model follows waterfall over 40 yrs.


• Slow moving development organization
• Software vendor need to maintain quality
Compuware DevOps Transformation
solutions
•Agility: We knew we wanted to be fully agile so that we could have continuous code
drops and fulfill business needs in a timely basis.
•Confidence: We wanted to have the confidence to know that when we made changes,
what we were delivering was going to work and was good, so we had to know that we
could move at a fast pace to be able to deliver what we wanted.
•Efficiency: We had to be efficient and move across the entire enterprise.
•Ease of use: Our tools had to be easy to empower our developers to be able to move at
that pace, and to make updates and enhancements that would be valuable, provide
business needs, and meet the business objectives.
•Integrations: Being in our enterprise companies, the mainframe integrates across the
entire enterprise, through the cloud, and all the way back to your mainframe system of
record. So, we had to make sure that those integrations would be available.
Compuware
DevOps
Transformation
Compuware
DevOps Metrics
• Reduced deployment time: The organization has cut its deployment time
by two-thirds with a streamlined toolchain, allow for more rapid software
releases.
• Increased code delivery: The company estimates that it delivers
approximately twice as much code per developer per year, measured by
the completion of user stories, tasks, and enhancements rather than just
lines of code. This focus on delivering value to end users is a key metric.
• Improved code quality: One of the organization's biggest accomplishments
is the enhancement of code quality. Through automated testing and
continuous integration, the company has reduced defects reported by
customers and end users by 7% year over year. The improvement in code
quality leads to a more positive experience for end users.

You might also like