agile+devops - do we understand it?
TRANSCRIPT
Traditional
bank
Digital
natives1
Leading
banks
Release
frequency1-4 releases
per year
10-50 releases
per day
1-4 releases
per month
Time to
market
9 months -
2 years2 weeks -
3 months
2-6
months
ADM
productivity3-10Function
Points/
man month
20-40Function Points/ man
month
10-20 Function Points/
man month
1 PayPal, Apple, Alibaba, Facebook, Safaricom, NTT DOCOMO
Customers
Design Develop
Test
Concept Business
case
Provision
infrastructure
Deploy to
Production
ApproveE2E test
Development Sprints
2 weeks / sprint
Deploy to
UAT
~1 week 3-5 weeks <1 week
Manual process – that is error-prone and time-
taking, and not conducive to rapid experimentation
Improved developer
productivity
Agile only
development
cycle
Agile with
DevOps
development
cycle
Customers
Design Develop
Test
Concept Business
case
Provision
infrastructure Deploy to
Production
ApproveE2E test
Path to live
~Best case – 2 weeks
Development Sprints
2 weeks / sprint
Deploy to
UAT
Key step where heavy automation and
monitoring is introduced via DevOps
DOES DEVOPS MEAN ALL OF THESE TOOLS & TECHNOLOGIES?Can I say I am DevOps, if I have all of these in my organization?
Unit Test Automation
Functional Test Automation
Security Test Automation
Performance Test Automation
Deployment Automation
…
1. >= 1 time a daily
2. >= 3 times a week
3. End of each sprint
4. Once a month
5. > 3 months
How many times do
you deploy to
production?
Even with the
best tools &
process, DevOps
is just another
buzzword if you
don't have the
right culture.
Code
check-in
Merge,
integrat
e code
Unit,
Func-
tional
Tests
Deploy
to QA &
Staging
Deploy
to
Produc-
tion
Smoke
tests on
Produc-
tion
Auto Auto Auto Auto Auto
Code
check-in
Merge,
integrat
e code
Unit,
Func-
tional
Tests
Deploy
to QA &
Staging
Deploy
to
Produc-
tion
Smoke
tests on
Produc-
tion
Auto Auto Auto Manual Auto
Continuous Delivery
Rapidly and safely
deployed to
production-like
environment
Continuous Deployment
Rapidly and safely
deployed to production
environment
StagingLive/ Production
Environment
Developer machine Continuous Integration
SIT/ UAT
Continuous Delivery
(Jenkins)
Master (Linux)
Slave
(Linux)
Slave
(buddybuild)
NodeJS/ Java Job Mobile Job
Version Control
(Gitlab)
Developer
machine
Develop-Build-Test Cycle
Publishes
for both
Android
& iOS
NexusSonarqube
Time
duration
▪ Build once and deploy the artifact
across all environment. Strict quality
checks during build process, reports
published via Sonarqube
▪ CI process setup for both API
development as well as mobile code.
▪ Artifacts are published to both Nexus
and Docker Registry
▪ Docker Images are deployed to
OpenShift with zero-downtime
▪ Fully automated way to build and
distribute mobile artifacts
▪ Deployment to staging and production
requires manual promotion of the
versioned artifact for better quality
control and check. Overall process takes
~10mins to reach production servers
▪ Embed security testing into DevOps –
DevSecOps
< 10mins from code commit to production deployment
Docker Registry
OpenShift
Platform
DEVSECOPS
Everyone is responsible for security – embed security into each aspect of software building
Agile with
DevOps
development
cycle
Customers
Design Develop
Test
Concept Business
case
Provision
infrastructure Deploy to
Production
ApproveE2E test
Path to live
~Best case – 2 weeks
Development Sprints
2 weeks / sprint
Deploy to
UAT