dev ops in agile - 1st conference melbourne
TRANSCRIPT
IT organizations typically spend more time testing, deploying and releasing software than designing and building it
A high proportion of production incidents are a result of human errors in the manual release of software
IT Development and IT Operations have different values and ways of working that are often not in alignment
“IT Speed: The Crisis and the Savior of the Enterprise,” A Forrester Consulting study commissioned by Chef, December 2013
3Copyright © 2016 Accenture All rights reserved.
Challenges . . .
Only 17% of IT teams can deliver fast enough*
ANZ Testing
Symposium 2015
Both digital and enterprise applications must move faster to keep pace
Multi-Modal IT – A new reality (at least for a while)
3Copyright © 2015 Accenture All rights reserved.
• Digital and mobile applications require fast
changes to respond to short feedback cycles.
• Legacy systems need to be streamlined
through automated deployment approaches.
• IT must adopt fundamentally new ways to
build software including innovative
engineering practices to compete with agility
and speed.
ANZ Testing
Symposium 2015
While companies are flocking in ever-increasing numbers to cloud’s “everything-as-a-service” promise, a reliance on traditional, in-house IT systems and applications still exists.
The Legacy Complication…and need for multi-modal IT
6
Channels & Customer Experience
“High Speed Agility”
DECOUPLING
Core Services
“Low Speed Stability”Partners
Channels & Customer Experience
Core Services
Typical
project
Front
Back
- Today -Cost & Pace of change led by front & backend changes
- Tomorrow -Pace of change led by front end changes only; backend work is separate.
• High flexibility to customer needs
• Short-time to market
• Differentiation from competition
• Back-end for internal process
• High level of standardization
• Efficiency and low cost
ANZ Testing
Symposium 2015
Difference between Agile and DevOps
6
Wall of
Conflict
Wanting
Change
Development
• Create effective change
• Add/Modify features
Wanting
Stability
Operations
• Create stability
• Enhance services
Wall of
Conflict
Wanting
Flexibility
Customers
• Create flexibility
• Improve time to market
Agile
DevelopmentDevOps
Benefits:
Alignment between Business & IT
Flexibility
More effective solutions
Reduction in Risk
(Speed to market – through smaller
batches)
Benefits:
Speed to Market
Increased Throughput
Reduction in Risk
Faster Feedback
(Reduced Cost)
ANZ Testing
Symposium 2015
Adopting DevOps principles compliments Agile delivery to enable faster delivery and speed to market
Why DevOps – example in an Agile delivery context
7Copyright © 2015 Accenture All rights reserved.
Team B
Backlog
Rele
ase
Itera
tion
Pla
nn
ing
Itera
tion
Pla
nn
ing
Iteration 1
Iteration 3
Iteration 2
Team A
Backlog
Iteration 1
Iteration 3
Iteration 2
Working software
Working software
Working software
Working software
Working software
Working software
! Wait
! Wait
! Wait
! Wait
Wall o
f confu
sio
n
Developers Ops
Month 1
Month 2
Month 3
Month 4
Month 5
Month 6
Release 1
Release 2
Want Change Want Stability
ANZ Testing
Symposium 2015
Benefits Dependency Network for Continuous Delivery
Vision Objectives Benefits
Implement a
DevOps enabled
optimised IT
delivery
organisation
Increase Business
Agility
Reduced requirement creep (largely a function of development schedule)
Reduced cost of experimentation - in turn reducing the investment hurdle challenge (not rate)
Reduce Time to
Market
Increased velocity and faster time to market
Reduced risk of building the wrong thing (and not finding out until too late)
Reduced WIP
Reduce Running
Costs
Reduced deployment effort (cost)/Reduced deployment duration (time)
Reduced risk of deployment failureIncrease Delivery
Productivity
Reduced idea - realisation cycle time
Continuous Improvement of delivery (as we cycle many times, rather than once a year)
Productivity (as a function of specialisation/standardisation)
Earlier regression test through CI/shift left
Faster defect resolution (function of smaller batch sizes and faster feedback cycle -> less
triage)
Reduced production outages due to badly planned/executed changes through improved ways of working,
automation and continuous deployment, self-healing architectures, modularised IT, consistent infrastructure
across environments
Reduced production downtime to support releases
Copyright © 2016 Accenture. All rights reserved. 9
DevOps Capabilities: Automated Release of Software
Leading Practices
1 2 3Source Code Version Control and Traceability
Deployment Process
Deployment Artifact
Management
Long-lived branches discouraged – replaced with feature toggling and smaller units of change.
Zero touch, zero-downtime deployment
Automatic rolled back of failed changes
Artifact repository tool (e.g. nexus) is consistently used and accessible form all environments.
Copyright © 2016 Accenture. All rights reserved. 10
DevOps Capabilities: Continuous Integration
Leading Practices
1 2 3Traceability
Continuous Integration
Code Quality &Unit Test
Builds traceable to source code and requirements.Test-cases traceable to requirements.
Release notes generated from tools
Fully automated builds on every check-in which triggers continuous delivery pipeline if quality gates met
Build is typically green – CI tooling automatically reverses the failed change
Maintaining or improving static code analysis is a quality gate
Copyright © 2016 Accenture. All rights reserved. 11
DevOps Capabilities: Continuous Delivery Pipelines (Incl. Automated QA)
Leading Practices
1 2 3 4Test Strategy Test Automation
Test Data Management
Deployment Pipelines
Final test phase conducted in production environment with a portion of traffic
Tests automated and runwithin the pipeline – including UAT, performance and security tests
Test data (and test scripts) version-controlled and released via pipeline
Deployment pipeline is consistently used across all environment and includes all phases of the SDLC and automated QA
Copyright © 2016 Accenture. All rights reserved. 12
Continuous Delivery vs. Continuous Deployment
DevApplication
TestIntegration
TestAcceptance
TestProduction
DevApplication
TestIntegration
TestAcceptance
TestProduction
Automatic trigger
Manual trigger
Continuous Delivery
Continuous Deployment
14
Accenture DevOps PlatformPre-configured tools, environments, automation blueprints and security features to increase the speed of adoption
Cloud-hosted development environment integrated to source code repository via code review server
Autonomous build and testing of code submissionsContinuous Integration
Quality gates enforced using standardized tests against re-usable components and libraries Continuous Delivery
Managed roll-out of new features via A/B testingContinuous Deployment
Cloud-based hosting and access to application services through Accenture Cloud Platform
Code Analysis (Sonar and Black Duck)
Integrated Development Environment (Eclipse, X-code)
Source Code Repository (Git / Gerrit)
Continuous Integration (Jenkins)
Deploy (Chef and Docker)
Test (Selenium, Grid, Cucumber)
Enabling tools
DevelopmentSource Control
Code Review
BuildCode Quality
Deploy TestingA/B Test
Release
https://www.youtube.com/watch?v=cI1RpzdsDQI - https://github.com/accenture
ANZ Testing
Symposium 2015
DevOps becomes a natural part of the Agile journey
15Copyright © 2015 Accenture All rights reserved.
Formal
Establishment of
Agile Initiative
and creation of
Agile framework
2010Before 2010
Agile Training
roll-out, Central
Coaching Team
established
Simple Projects
in Customer
facing
applications
Complex, Multi-
Vendor Agile
program initiated
Test
Automation
project
Move from
centralized to
decentralized
coaching model
Governance
and Metrics
including
productivity
KPI’s
2011 2012 2013 2014
Bottom-up driven
Agile pilots in
pockets
2010Before 2010
Technical
practice
assessment for
main applications
SAFe as guiding
methodology for
scaling, including
SAFe training
Agile updates to
financial
governance
Transition to
broader IT
operating
model
transformation
2011 2012 2013 2014
Phase 1: Adopting Agile and Scaling
Phase 2: Adopting DevOps
Phase 3: New IT Op Model
ANZ Testing
Symposium 2015
The Delivery models are evolving
Model 1:
Automated Application
Deployment into long-lived
Environments
Model 2:
Cloud provisioning of
Environments is part of the
Deployment process achieving
zero-downtime deployments
Model 3:
Container-based deployment of
Microservice based application
services
DevOps Maturity Model – Framework
Copyright © 2015 Accenture All rights reserved. 1717
DELIVERY ORGANISATION AND METHODOLOGY
• Release Frequency• Delivery Organisation• Delivery Process & Methodology• Metrics & Governance
LEAN DELIVERYGOVERNANCE & PROCESSES
• Governance Approach• Continuous Improvement• Product Management• Delivery & Change Control
AUTOMATED RELEASEOF SOFTWARE
• Source Code Version Control• Deployment Process• Deployment Artefact Management
CONTINUOUS INTEGRATION
• Traceability• Continuous Integration• Code Quality & Unit Test
CONTINUOUS DELIVERY (INCL AUTOMATED QA)
• Test Strategy• Test Automation• Test Data Management• Deployment Pipelines
AUTOMATEDOPERATIONS
• Monitoring• Organisational Considerations• Resilience
SW DEFINED INFRASTRUCTURE & CLOUD
• Environments• Infrastructure Suitability• Responsiveness
PLATFORM/APPLICATION ARCHITECTURE
• Architecture• Impact of Component Failure• Business Enablement
Architecture
Automated
Operations
Methodology
Lean Governance & Process
Automate
d Release
of SW
Continuous
Integration
Continuous
Delivery
Pipelines
SW Defined
Infrastructure
DevOps Maturity Model - Overview
Copyright © 2015 Accenture All rights reserved. 18
DELIVERY ORGANISATION AND METHODOLOGY
Release scope poorly defined; subject to catastrophic and ad hoc change requests
Releases duration exceeds business need; releases face disruptive change
Release cadences well defined but exceeds business need;Requirements are stable;
Release on demand, multi-speed releases;time-box meets to business need (eg: monthly)
Small changes pushed through the pipeline ; Continuous deployment enables innovation
LEAN DELIVERY GOVERNANCE & PROCESSES
No defined or consistentapplied delivery approach
Delivery approach is welldefined, but largely manually governed
Industrialised project delivery; governance integrated into delivery and product management established
Blamefree culture embedded in governance that uses real-time data rather than manual inputs
Continuous Delivery / Deployment supporting agile business change with automated governance
AUTOMATED RELEASE OF SOFTWARE
Mostly manual deployments
Some CIs automated, environment tailoring required, no enterprise tools
Fully automated Single-touch deployments into environments.
Functioning environments can be build from nothing programmatically.
Zero-touch zero-downtime deployments
CONTINUOUS INTEGRATION
No consistent use of version control – builds cannot be traced back to source code
Source code consistently managed in VCS; releases traceable to source
Developers integratechanges by checking into trunk on regular basis (daily)
Build is typically green – if build breaks developers do not make other changes until resolved
Build is typically green – if build breaks the CI tooling automatically reverses the failed change
CONTINUOUS DELIVERY (INCL AUTOMATED QA)
Fully manual test scripts Testers run a harness / suite
Test harness / suite run automatically for some envs
Automated test suites enforce a quality gate
Tests run as functional monitoring
AUTOMATED OPERATIONS
No monitoring tools Tools in place, but not configured beyond basic OS checks
Functional monitoring in place and DR is available
Environment and application health monitored and proactively managed
Service level monitoring (perf, usage) integrated with infrastructure and self-healing available
SW DEFINED INFRASTRUCTURE & CLOUD
Environments are managed ad-hoc without consistent blueprint
Environments follow standards but are manually created
Environments can be created automatically and follow common blueprint
SW defined infrastructure that closely resembles Production throughout SDLC
Utility based computing that leverages auto-scaling for several SDLC aspects
PLATFORM/APPLICATION ARCHITECTURE
Big monolithic application architecture
Architecture based on platforms, business requires IT for every change
Resilient Architecture minimising single point of failures
Modular and scalable architecture, that allows for some business self service configuration
Microservice based architecture supported by end-to-end ownership in teams
REPEATABLE CONSISTENT OPTIMISEDAD-HOC LEADING0 1 2-1 3
If you want to know more, there is a lot of free information on our DevOps site:
https://www.accenture.com/us-en/service-devops-services-overview.aspx
My personal blog: http://notafactoryanymore.com
Feel free to follow me: @mircohering
Thank you
Copyright © 2015 Accenture All rights reserved. 19