SlideShare a Scribd company logo
Sprinkle Dev, Sprinkle Ops, lets make Cake not Mud Pies
Brian Paulsmeyer
Agile Gravy: September 29, 2016
Agile Development Pitfalls
… that warn us of mistakes in our agile implementation
10/4/2016
www.centricconsulting.com 1
Waterfall in 2 Week Iterations
•No ordering of stories
•Gold plating of features
•“Agile Waterfall” Assumptions
• Learning from usage of system won’t change features
• “All features will come together” in last day of last sprint
• “Pause the world for 3+ years for us to finish”
• “Value Proposition: All or Nothing”
• Architecture can be “known” and not change
• Deployments are still hard
•Unfortunate ending for “Agile Waterfall”
• “We ran out of money, and have nothing in production.”
10/4/2016www.centricconsulting.com 2
Constant Redefining of “Definition of Done”
•Done should simply mean done
•Burndown/Burnup no longer reliable
•Feature inversion occurs when time spent on defects and maintenance
overtakes feature work
10/4/2016www.centricconsulting.com 3
20 20 20
18 17 17 16 16 15
13
0 0 0
2 3 3 4 4 5
7
1 2 3 4 5 6 7 8 9 10
FEATURE INVERSION
Features Defects and Hidden Work
Only focusing on Unit Tests and Manual Testing
•Unit tests
• Won’t ensure business workflows
• Only allows minor refactoring
• Failure: Mars Climate Orbiter (1999)
• Team A: Pounds for unit of force
• Team B: Newtons for unit of force (1 lb = 4.45 N)
• Disintegrated in Mars atmosphere!
• Each “Unit”/Component worked in isolation
10/4/2016www.centricconsulting.com 4
Continuous Delivery and DevOps
… simple concept, requires diligent implementation
10/4/2016
www.centricconsulting.com 5
No more “Throw It Over the Wall”
10/4/2016www.centricconsulting.com 6
DevOps enables Continuous Delivery
•Team performs activities across disciplines
•Apply principles from iteration 0 through delivery
10/4/2016www.centricconsulting.com 7
Regression
UAT
Integration
Testing
DevOps – Full Lifecycle Delivery Pipeline and Container Management
Local
Environments
Builds
Unit Tests
Merge
Procedures
Log
Interpretation
Dependency
Mgmt
Dev
Deployments
Traditional DEV activities Traditional OPS activities Traditional QA activities
Prod
Deployments
Performance
Mgmt
Monitoring
QA
Deployments
Branch Mgmt
Change Mgmt
Log
Management
Configurations
Integration
Deployments
Performance
testing
What It Takes
Whether it be security, regulatory, software limitations, etc., there are
many reasons why organizations say CD is impossible
10/4/2016www.centricconsulting.com 8
Tooling
Process
Culture
Architecture
Basic Definitions and Levels of Maturity
Continuous…
10/4/2016www.centricconsulting.com 9
Automated Deployment to ProductionDeployment
Manual Compile/Build, Manual Testing, Manual DeploymentPain
Automated Deployment to Integration/Staging/Pre-Prod
Deployment Toolset Constant across all Environments
Delivery Automated Integration/Workflow Tests
Automated Component Builds
Automated Component Tests*
Integration Automated Unit Tests
* Many teams mistakenly consider Continuous Integration (CI) complete with only automated unit tests
Pipeline
•Recipe for building, deploying, and testing the system
•Grouping of discrete stages for a complete workflow
•Coordinates disparate technologies
•Provides feedback of system state across environments
10/4/2016www.centricconsulting.com 10
Business &
Customer
Develop
Customer
Deploy
to
Production
Deploy
to
Staging
Deploy
to
QA
Build
and Unit Test
Automated
Integration /
Workflow
Testing
Detailed Pipeline
10/4/2016www.centricconsulting.com 11
Business &
Customer
Backlog
Consolidate
Features
and Hotfixes
Iteration
Planning
Build
Server“X”
Stories
Development
1 Active Story
Per Developer
1
Commit
Acceptance
Test
Customer
Build
Artifact
Acceptance Test
Environment
QA
Testing
QA
Environment
Auto-Trigger Pipeline:
Installs To AIT Environment
Executes Smoke and
Acceptance Tests (<10 min)
Manual Trigger Pipeline:
Installs To
QA Environment
Executes Smoke Tests
UAT
Testing
Manual Trigger
Pipeline:
UAT Environment
UAT Smoke &
UAT Tests
Production
Manual Trigger
Pipeline:
Prod Environment
Prod Smoke
Tests
UAT
Environment
Product Pipeline
10/4/2016www.centricconsulting.com 12
Pipeline Workflow Tools
… to speed implementation
10/4/2016
www.centricconsulting.com 13
Pipeline Stage Implementation
•Pipeline workflow steps trigger external tools
10/4/2016www.centricconsulting.com 14
Business &
Customer
Develop
Customer
Deploy
to
Production
Deploy
to
Staging
Deploy
to
QA
Build
and Unit Test
Java
.Net
TypeScript
PHP
etc.
Ant
Maven
MSBuild
Make
etc.
JUnit
Nunit
etc.
Bash
PowerShell
Chef/Puppet
VMs
Docker/CoreOS
etc.
Automated
Integration /
Workflow
Testing
Selenium
Cucumber
JBehave
SpecFlow
Codeception
etc.
Same Tools
as Deploy to QA
Only Configuration
Differences
Same Tools
as Deploy to QA
Only Configuration
Differences
Build Tool Jobs (ex. Jenkins)
Key Pipeline Coordination Tool Features
•Pipeline Triggers
• Automatic on code check-ins to source control
• Manual
• Programmatic API
•Workflow
• Parallel steps
• Sequential steps
• Failure-only steps
• Graphical view of steps
•Artifact Tracking
• Traceability from check-in to final deployment
• View of deployed version in each environment
• History of deployments
• Ability to trigger updates to agile tracking tools (ex. JIRA)
•Environment Support
• Same deploy scripts, allows configuration changes per environment
10/4/2016www.centricconsulting.com 15
Pipeline Workflow Tool : Jenkins
•On-Site
•Version 2.0 Provides Workflow View
•Software Language Agnostic
10/4/2016www.centricconsulting.com 16
Pipeline Workflow Tool : ThoughtWorks Go
•On-Site
•Software Language Agnostic
10/4/2016www.centricconsulting.com 17
Pipeline Workflow Tool : Octopus Deploy
•.Net
10/4/2016www.centricconsulting.com 18
Automated Testing
… so every day can be deployment day
10/4/2016
www.centricconsulting.com 19
Automated Component/Integration/Workflow Testing
•Opinions of why automated testing isn’t needed
• “Manual testing is sufficient”
• “Business only wants to spend money on features”
• “Developers only want to code features”
• “Our <insert technology> is too hard to test with automation”
• “Automated tests run too slow”
10/4/2016www.centricconsulting.com 20
Best Case: Missed Deadline
Worst Case: Catastrophic Failure in Production
Result of skipping
automated tests
Selenium WebDriver
Direct Test using Selenium WebDriver
WebDriver driver = new FirefoxDriver();
// Navigate to webpage
driver.get("http://www.google.com");
// Find the Search Field (UI Locator)
WebElement element = driver.findElement(By.name(“Search"));
// Fill in the data
element.sendKeys(“something interesting");
// Now submit the form. WebDriver will find the form that contains the element
element.submit();
// Assert the test passed
10/4/2016www.centricconsulting.com 21
Selenium
WebDriver
Web Page
Test
Test
Test
Test
Page Object Model
10/4/2016www.centricconsulting.com 22
• Separate Test Code and UI Locators
• Supports Don’t Repeat Yourself (DRY) for Element Locators
• Less Technical Test Case
SearchPage page = new SearchPage(selenium);
// Enter Search information
page.search(“something interesting");
// Now submit the form
page.submit();
// Assert the test passed
Page Object
Model(s)
Web Page
Test
Test
Test
Test
Selenium
WebDriver
ServerAPI
BDD Testing
• Gherkin (English) Text File
• Step Definitions Map Between English Test and System
• Business Readable Test Case
Given user searches for “something interesting”
When user performs the Search
Then assert something is true
10/4/2016www.centricconsulting.com 23
Page Object
Model(s)
Web Page
Step
Definition
Step
Definition
Step
Definition
Selenium
WebDriver
ServerAPITest
Test
Test
Test
Capabilities
… we need to be successful
10/4/2016
www.centricconsulting.com 24
Rapid Response to Changing Business
•Need to be able to react to disruptive technology and business models
•Stagnant architecture limits new technology adoption
• Changes blocked by fear of breaking system
• Inability to deploy new systems to production
• Unable to adopt new security upgrades
• Unable to adopt new software versions
10/4/2016www.centricconsulting.com 25
Drive Defects From Most Used Features
“You can’t test quality in”
At a minimum make sure defects aren’t in the standard user workflows
10/4/2016www.centricconsulting.com 26
Adjustable/Changeable Architecture
•Magic Quadrant Architecture
• “Best” choice today ≠ Best choice tomorrow
• Failed technologies and companies in all parts of magic quadrant
•Natural product End-of-Life requires new architecture
•Continuous Delivery and DevOps allows fluid architecture changes
10/4/2016www.centricconsulting.com 27
(Object-Oriented Database)
Cadence
•What if everyday was a normal day
•What if those normal days were release days
•What if those release days were multiple releases throughout the day
•Low Risk On-Demand Releases
10/4/2016www.centricconsulting.com 28
Deployment Styles
… for production deployment
10/4/2016
www.centricconsulting.com 29
Standard Deployment
•Deployment Steps
• Disable user access
• Upgrade servers from V1 to V2
• Test deployment
• Enable user access
• Upgrade destabilizes running environment
•Problem Mitigation
• Re-Enable backup if possible
• Developer troubleshooting requires
customer downtime
10/4/2016www.centricconsulting.com 30
Blue Green
Router /
Load Balancer
Blue-Green Deployment
•Two Identical Production Environments
• Blue
• Green
•One Active: Router Controlled
•Deployment Steps (Green Active)
• Deploy to Blue environment – No users
affected
• Perform smoke tests on Blue environment
• Optional: Switch subset of users to Blue
(similar to Canary releases)
• Switch all users to Blue environment
•Problem Mitigation
• Don’t switch to 2nd environment
• Developer troubleshooting has no customer
impact
10/4/2016www.centricconsulting.com 31
Canary
Router /
Load Balancer
Canary Deployment
•One Production Environment
•Deployment Steps
• Deploy to 1 server (Canary)
Optional: Provision and build new server from
scratch
• Router sends portion of users to Canary
• Random
• Internal users only
• User-type based (ex. Test users)
• Gradually upgrade servers to V2
• Gradually switch users to V2 servers
•Problem Mitigation
• Don’t switch additional users to Canary
environment
• Developer troubleshooting has no customer
impact
10/4/2016www.centricconsulting.com 32
Case Studies
… that show it can be done
Before Build Automation
•23 Teams
•  150 Team Members (Developers, Quality Engineers, Scrum Masters)
•  100 Developers
•Service Oriented Architecture
• Managers, Engines, Data Access
•Baseline End of PI6 (SAFe)
• PI6 demo system setup
• Two weeks to setup
• Manual Installations – not repeatable
• Individual Teams created “magic instructions” in isolation to install and run solution
• Some teams unable to run full solution
• Custom data loaders used to skip workflow steps
• Developers unable to test full workflow
• Movement of data through workflow steps untested till end of PI
• Update of component versions caused “Day of Downtime” for developers to fix unexpected
issues
10/4/2016www.centricconsulting.com 34
After Build Automation: Jenkins Easy Button Builds
• Starting Point: a machine with Windows — that’s it!
• The rest is automated:
− Provisioning: verify/install tools takes ~50 minutes
− Puppet Agent, PowerShell, 7-Zip, VNC
− SQL Server, .Net, Visual Studio
− Noticia Repono Client
− Install Custom Software takes 5-10 minutes
− Clean system from any previous runs
− Install/Configure Base Components
− Install System
− Install and Run Smoke Tests
At this point the system is ready to be used to do further testing, demos, etc.
• Deploy cycle repeats
ChunkyMonkey
Vanilla
Definition of Done
… that makes our customers happy
10/4/2016
www.centricconsulting.com 36
Continuous Delivery Definition of Done
•Automated Deployments
• Fully Automatic or Push-Button Deploys
• Same Executable Scripts for all Environments
• No Deployment Hero
•Automated Testing
• Unit
• Integration
• Full System
•Always Shippable
• No Temporary Code
• No Untested Code
• Feature Toggles
•One Backlog
• Production Bug Fixes
• New Features
10/4/2016www.centricconsulting.com 37
About Me
10/4/2016www.centricconsulting.com 38
• Our highest priority is building lifelong
relationships with clients based on trust,
respect, and collaboration.
• We invest in our talented team and
support their well being by keeping them
challenged and inspired.
• Our localized company structure allows
us to play very active roles in the lives
of our families and community.
This relationship-centric focus keeps us passionate, committed and
motivated in all facets of our lives. That’s why our team is here to stay.
Centric Consulting
• 17 years as a software developer and architect
• Full stack developer in Java, .Net, TypeScript (Angular 2), and PHP
• DevOps tooling experience including VMs, Docker, Chef, and Puppet
• Continuous Delivery and Automated Testing implementations
• Experience across industries including FDA and SEC regulated
Continue the Journey • http://centricconsulting.com/centric-st-louis-scaled-agile-workshop/
Thank You for Attending!

More Related Content

PPTX
Introduction to Continuous Delivery (BBWorld/DevCon 2013)
PDF
Continuous delivery - tools and techniques
PPTX
How To Use Jenkins for Continuous Load and Mobile Testing with SOASTA & Cloud...
PDF
How To Introduce Cloud Based Load Testing to Your Jenkins Continuous Delivery...
PDF
An almost complete continuous delivery pipeline including configuration manag...
PPT
Continuous Load Testing with CloudTest and Jenkins
PPTX
Transforming Organizations with CI/CD
PPTX
Continuous Testing and New Tools for Automation - Presentation from StarWest ...
Introduction to Continuous Delivery (BBWorld/DevCon 2013)
Continuous delivery - tools and techniques
How To Use Jenkins for Continuous Load and Mobile Testing with SOASTA & Cloud...
How To Introduce Cloud Based Load Testing to Your Jenkins Continuous Delivery...
An almost complete continuous delivery pipeline including configuration manag...
Continuous Load Testing with CloudTest and Jenkins
Transforming Organizations with CI/CD
Continuous Testing and New Tools for Automation - Presentation from StarWest ...

What's hot (19)

PDF
Continuous testing in agile projects 2015
PDF
AgileDC15 I'm Using Chef So I'm DevOps Right?
PPTX
Continuous delivery applied
PPTX
Using JMeter in CloudTest for Continuous Testing
PPTX
Testing In Production (TiP) Advances with Big Data & the Cloud
PPTX
Soasta | CloudBees webinar 11/12/2015
PDF
QA Role in Agile Teams
PPTX
Continuous delivery applied (DC CI User Group)
PDF
Continuous Delivery Distilled
PPTX
Accelerate Web and Mobile Testing for Continuous Integration and Delivery
PPTX
Continuous Delivery Applied (AgileDC)
PDF
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
PDF
Continuous Deployment of your Application @SpringOne
PPTX
Continuous Testing 2016
PPT
SOASTA Webinar: Process Compression For Mobile App Dev 120612
PDF
Continuous Testing in DevOps
PPT
Agile Load Testing In The Real World
PPTX
Webinar: Load Testing for Your Peak Season
ZIP
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous testing in agile projects 2015
AgileDC15 I'm Using Chef So I'm DevOps Right?
Continuous delivery applied
Using JMeter in CloudTest for Continuous Testing
Testing In Production (TiP) Advances with Big Data & the Cloud
Soasta | CloudBees webinar 11/12/2015
QA Role in Agile Teams
Continuous delivery applied (DC CI User Group)
Continuous Delivery Distilled
Accelerate Web and Mobile Testing for Continuous Integration and Delivery
Continuous Delivery Applied (AgileDC)
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
Continuous Deployment of your Application @SpringOne
Continuous Testing 2016
SOASTA Webinar: Process Compression For Mobile App Dev 120612
Continuous Testing in DevOps
Agile Load Testing In The Real World
Webinar: Load Testing for Your Peak Season
Continuous Integration, Build Pipelines and Continuous Deployment
Ad

Viewers also liked (20)

PPTX
How to Run a Hackathon
PDF
Rise of the Wearables
PDF
Reclaiming Agile Development
PPTX
Marketing Automation Done Right 2017
PDF
Bad metric, bad!
PDF
Building Out Business Process Capabilities With Business Process Centers of E...
PPTX
The Art & Science of LifeCycle Marketing
PDF
Event-driven Architecture
PPTX
Metrics on the Money: The Art & Science of Change Measurement
PDF
Finally, A Voice for the Enterprise!
PDF
Microservices Application Simplicity Infrastructure Complexity
PDF
Thinking Fast and Slow
PDF
Business Process Excellence: Building Out Business Process Capabilities
PDF
Modeling Your Applications Based on Airport Operations
PPTX
Mann india SAP Service Offerings- IS Retail
PDF
Micro-Location with Beacons
PDF
DevOps Services Offerings from Rational Lab Services
PPSX
PPTX
Introducing DevOps
PPTX
DevOps 101
How to Run a Hackathon
Rise of the Wearables
Reclaiming Agile Development
Marketing Automation Done Right 2017
Bad metric, bad!
Building Out Business Process Capabilities With Business Process Centers of E...
The Art & Science of LifeCycle Marketing
Event-driven Architecture
Metrics on the Money: The Art & Science of Change Measurement
Finally, A Voice for the Enterprise!
Microservices Application Simplicity Infrastructure Complexity
Thinking Fast and Slow
Business Process Excellence: Building Out Business Process Capabilities
Modeling Your Applications Based on Airport Operations
Mann india SAP Service Offerings- IS Retail
Micro-Location with Beacons
DevOps Services Offerings from Rational Lab Services
Introducing DevOps
DevOps 101
Ad

Similar to DevOps: Sprinkle Dev, Sprinkle Ops, Let's make Cake, not Mud Pies (20)

PPT
Continuous Delivery Agiles 2014 Medellin
PDF
Journey to the center of DevOps - v6
PPT
DevOps / Agile Tools Seminar 2013
KEY
Continuous Deployment
PDF
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
PPTX
Continuous Testing
PPTX
Udvid din test portefølje med coded ui test og cloud load test
PDF
FUG Agile software engineering practices
PDF
6 Top Tips to a Testing Strategy That Works
PPTX
Test parallelization using Jenkins
PPTX
Continuous Delivery Applied
PDF
Automated Browser Testing
PPT
Continuous Load Testing with CloudTest and Jenkins
PDF
6 Steps to Implementing a World Class Testing Ecosystem Final
PDF
An Automation Culture: The Key to Agile Success
PPTX
Continuous Delivery Applied
PPTX
Continuous Delivery Applied (Agile Richmond)
PDF
Continuous Deployment To The Cloud @DevoxxPL 2017
PPTX
DevOpsDays Rockies - Living in a Hybrid World
PDF
Continuous Testing of Cloud Applications
Continuous Delivery Agiles 2014 Medellin
Journey to the center of DevOps - v6
DevOps / Agile Tools Seminar 2013
Continuous Deployment
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
Continuous Testing
Udvid din test portefølje med coded ui test og cloud load test
FUG Agile software engineering practices
6 Top Tips to a Testing Strategy That Works
Test parallelization using Jenkins
Continuous Delivery Applied
Automated Browser Testing
Continuous Load Testing with CloudTest and Jenkins
6 Steps to Implementing a World Class Testing Ecosystem Final
An Automation Culture: The Key to Agile Success
Continuous Delivery Applied
Continuous Delivery Applied (Agile Richmond)
Continuous Deployment To The Cloud @DevoxxPL 2017
DevOpsDays Rockies - Living in a Hybrid World
Continuous Testing of Cloud Applications

Recently uploaded (20)

PDF
Machine learning based COVID-19 study performance prediction
PPTX
Big Data Technologies - Introduction.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
A Presentation on Artificial Intelligence
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
MYSQL Presentation for SQL database connectivity
PDF
cuic standard and advanced reporting.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Machine learning based COVID-19 study performance prediction
Big Data Technologies - Introduction.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Understanding_Digital_Forensics_Presentation.pptx
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Chapter 3 Spatial Domain Image Processing.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Per capita expenditure prediction using model stacking based on satellite ima...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
A Presentation on Artificial Intelligence
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Review of recent advances in non-invasive hemoglobin estimation
MYSQL Presentation for SQL database connectivity
cuic standard and advanced reporting.pdf
Empathic Computing: Creating Shared Understanding
Dropbox Q2 2025 Financial Results & Investor Presentation
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf

DevOps: Sprinkle Dev, Sprinkle Ops, Let's make Cake, not Mud Pies

  • 1. Sprinkle Dev, Sprinkle Ops, lets make Cake not Mud Pies Brian Paulsmeyer Agile Gravy: September 29, 2016
  • 2. Agile Development Pitfalls … that warn us of mistakes in our agile implementation 10/4/2016 www.centricconsulting.com 1
  • 3. Waterfall in 2 Week Iterations •No ordering of stories •Gold plating of features •“Agile Waterfall” Assumptions • Learning from usage of system won’t change features • “All features will come together” in last day of last sprint • “Pause the world for 3+ years for us to finish” • “Value Proposition: All or Nothing” • Architecture can be “known” and not change • Deployments are still hard •Unfortunate ending for “Agile Waterfall” • “We ran out of money, and have nothing in production.” 10/4/2016www.centricconsulting.com 2
  • 4. Constant Redefining of “Definition of Done” •Done should simply mean done •Burndown/Burnup no longer reliable •Feature inversion occurs when time spent on defects and maintenance overtakes feature work 10/4/2016www.centricconsulting.com 3 20 20 20 18 17 17 16 16 15 13 0 0 0 2 3 3 4 4 5 7 1 2 3 4 5 6 7 8 9 10 FEATURE INVERSION Features Defects and Hidden Work
  • 5. Only focusing on Unit Tests and Manual Testing •Unit tests • Won’t ensure business workflows • Only allows minor refactoring • Failure: Mars Climate Orbiter (1999) • Team A: Pounds for unit of force • Team B: Newtons for unit of force (1 lb = 4.45 N) • Disintegrated in Mars atmosphere! • Each “Unit”/Component worked in isolation 10/4/2016www.centricconsulting.com 4
  • 6. Continuous Delivery and DevOps … simple concept, requires diligent implementation 10/4/2016 www.centricconsulting.com 5
  • 7. No more “Throw It Over the Wall” 10/4/2016www.centricconsulting.com 6
  • 8. DevOps enables Continuous Delivery •Team performs activities across disciplines •Apply principles from iteration 0 through delivery 10/4/2016www.centricconsulting.com 7 Regression UAT Integration Testing DevOps – Full Lifecycle Delivery Pipeline and Container Management Local Environments Builds Unit Tests Merge Procedures Log Interpretation Dependency Mgmt Dev Deployments Traditional DEV activities Traditional OPS activities Traditional QA activities Prod Deployments Performance Mgmt Monitoring QA Deployments Branch Mgmt Change Mgmt Log Management Configurations Integration Deployments Performance testing
  • 9. What It Takes Whether it be security, regulatory, software limitations, etc., there are many reasons why organizations say CD is impossible 10/4/2016www.centricconsulting.com 8 Tooling Process Culture Architecture
  • 10. Basic Definitions and Levels of Maturity Continuous… 10/4/2016www.centricconsulting.com 9 Automated Deployment to ProductionDeployment Manual Compile/Build, Manual Testing, Manual DeploymentPain Automated Deployment to Integration/Staging/Pre-Prod Deployment Toolset Constant across all Environments Delivery Automated Integration/Workflow Tests Automated Component Builds Automated Component Tests* Integration Automated Unit Tests * Many teams mistakenly consider Continuous Integration (CI) complete with only automated unit tests
  • 11. Pipeline •Recipe for building, deploying, and testing the system •Grouping of discrete stages for a complete workflow •Coordinates disparate technologies •Provides feedback of system state across environments 10/4/2016www.centricconsulting.com 10 Business & Customer Develop Customer Deploy to Production Deploy to Staging Deploy to QA Build and Unit Test Automated Integration / Workflow Testing
  • 12. Detailed Pipeline 10/4/2016www.centricconsulting.com 11 Business & Customer Backlog Consolidate Features and Hotfixes Iteration Planning Build Server“X” Stories Development 1 Active Story Per Developer 1 Commit Acceptance Test Customer Build Artifact Acceptance Test Environment QA Testing QA Environment Auto-Trigger Pipeline: Installs To AIT Environment Executes Smoke and Acceptance Tests (<10 min) Manual Trigger Pipeline: Installs To QA Environment Executes Smoke Tests UAT Testing Manual Trigger Pipeline: UAT Environment UAT Smoke & UAT Tests Production Manual Trigger Pipeline: Prod Environment Prod Smoke Tests UAT Environment
  • 14. Pipeline Workflow Tools … to speed implementation 10/4/2016 www.centricconsulting.com 13
  • 15. Pipeline Stage Implementation •Pipeline workflow steps trigger external tools 10/4/2016www.centricconsulting.com 14 Business & Customer Develop Customer Deploy to Production Deploy to Staging Deploy to QA Build and Unit Test Java .Net TypeScript PHP etc. Ant Maven MSBuild Make etc. JUnit Nunit etc. Bash PowerShell Chef/Puppet VMs Docker/CoreOS etc. Automated Integration / Workflow Testing Selenium Cucumber JBehave SpecFlow Codeception etc. Same Tools as Deploy to QA Only Configuration Differences Same Tools as Deploy to QA Only Configuration Differences Build Tool Jobs (ex. Jenkins)
  • 16. Key Pipeline Coordination Tool Features •Pipeline Triggers • Automatic on code check-ins to source control • Manual • Programmatic API •Workflow • Parallel steps • Sequential steps • Failure-only steps • Graphical view of steps •Artifact Tracking • Traceability from check-in to final deployment • View of deployed version in each environment • History of deployments • Ability to trigger updates to agile tracking tools (ex. JIRA) •Environment Support • Same deploy scripts, allows configuration changes per environment 10/4/2016www.centricconsulting.com 15
  • 17. Pipeline Workflow Tool : Jenkins •On-Site •Version 2.0 Provides Workflow View •Software Language Agnostic 10/4/2016www.centricconsulting.com 16
  • 18. Pipeline Workflow Tool : ThoughtWorks Go •On-Site •Software Language Agnostic 10/4/2016www.centricconsulting.com 17
  • 19. Pipeline Workflow Tool : Octopus Deploy •.Net 10/4/2016www.centricconsulting.com 18
  • 20. Automated Testing … so every day can be deployment day 10/4/2016 www.centricconsulting.com 19
  • 21. Automated Component/Integration/Workflow Testing •Opinions of why automated testing isn’t needed • “Manual testing is sufficient” • “Business only wants to spend money on features” • “Developers only want to code features” • “Our <insert technology> is too hard to test with automation” • “Automated tests run too slow” 10/4/2016www.centricconsulting.com 20 Best Case: Missed Deadline Worst Case: Catastrophic Failure in Production Result of skipping automated tests
  • 22. Selenium WebDriver Direct Test using Selenium WebDriver WebDriver driver = new FirefoxDriver(); // Navigate to webpage driver.get("http://www.google.com"); // Find the Search Field (UI Locator) WebElement element = driver.findElement(By.name(“Search")); // Fill in the data element.sendKeys(“something interesting"); // Now submit the form. WebDriver will find the form that contains the element element.submit(); // Assert the test passed 10/4/2016www.centricconsulting.com 21 Selenium WebDriver Web Page Test Test Test Test
  • 23. Page Object Model 10/4/2016www.centricconsulting.com 22 • Separate Test Code and UI Locators • Supports Don’t Repeat Yourself (DRY) for Element Locators • Less Technical Test Case SearchPage page = new SearchPage(selenium); // Enter Search information page.search(“something interesting"); // Now submit the form page.submit(); // Assert the test passed Page Object Model(s) Web Page Test Test Test Test Selenium WebDriver ServerAPI
  • 24. BDD Testing • Gherkin (English) Text File • Step Definitions Map Between English Test and System • Business Readable Test Case Given user searches for “something interesting” When user performs the Search Then assert something is true 10/4/2016www.centricconsulting.com 23 Page Object Model(s) Web Page Step Definition Step Definition Step Definition Selenium WebDriver ServerAPITest Test Test Test
  • 25. Capabilities … we need to be successful 10/4/2016 www.centricconsulting.com 24
  • 26. Rapid Response to Changing Business •Need to be able to react to disruptive technology and business models •Stagnant architecture limits new technology adoption • Changes blocked by fear of breaking system • Inability to deploy new systems to production • Unable to adopt new security upgrades • Unable to adopt new software versions 10/4/2016www.centricconsulting.com 25
  • 27. Drive Defects From Most Used Features “You can’t test quality in” At a minimum make sure defects aren’t in the standard user workflows 10/4/2016www.centricconsulting.com 26
  • 28. Adjustable/Changeable Architecture •Magic Quadrant Architecture • “Best” choice today ≠ Best choice tomorrow • Failed technologies and companies in all parts of magic quadrant •Natural product End-of-Life requires new architecture •Continuous Delivery and DevOps allows fluid architecture changes 10/4/2016www.centricconsulting.com 27 (Object-Oriented Database)
  • 29. Cadence •What if everyday was a normal day •What if those normal days were release days •What if those release days were multiple releases throughout the day •Low Risk On-Demand Releases 10/4/2016www.centricconsulting.com 28
  • 30. Deployment Styles … for production deployment 10/4/2016 www.centricconsulting.com 29
  • 31. Standard Deployment •Deployment Steps • Disable user access • Upgrade servers from V1 to V2 • Test deployment • Enable user access • Upgrade destabilizes running environment •Problem Mitigation • Re-Enable backup if possible • Developer troubleshooting requires customer downtime 10/4/2016www.centricconsulting.com 30
  • 32. Blue Green Router / Load Balancer Blue-Green Deployment •Two Identical Production Environments • Blue • Green •One Active: Router Controlled •Deployment Steps (Green Active) • Deploy to Blue environment – No users affected • Perform smoke tests on Blue environment • Optional: Switch subset of users to Blue (similar to Canary releases) • Switch all users to Blue environment •Problem Mitigation • Don’t switch to 2nd environment • Developer troubleshooting has no customer impact 10/4/2016www.centricconsulting.com 31
  • 33. Canary Router / Load Balancer Canary Deployment •One Production Environment •Deployment Steps • Deploy to 1 server (Canary) Optional: Provision and build new server from scratch • Router sends portion of users to Canary • Random • Internal users only • User-type based (ex. Test users) • Gradually upgrade servers to V2 • Gradually switch users to V2 servers •Problem Mitigation • Don’t switch additional users to Canary environment • Developer troubleshooting has no customer impact 10/4/2016www.centricconsulting.com 32
  • 34. Case Studies … that show it can be done
  • 35. Before Build Automation •23 Teams •  150 Team Members (Developers, Quality Engineers, Scrum Masters) •  100 Developers •Service Oriented Architecture • Managers, Engines, Data Access •Baseline End of PI6 (SAFe) • PI6 demo system setup • Two weeks to setup • Manual Installations – not repeatable • Individual Teams created “magic instructions” in isolation to install and run solution • Some teams unable to run full solution • Custom data loaders used to skip workflow steps • Developers unable to test full workflow • Movement of data through workflow steps untested till end of PI • Update of component versions caused “Day of Downtime” for developers to fix unexpected issues 10/4/2016www.centricconsulting.com 34
  • 36. After Build Automation: Jenkins Easy Button Builds • Starting Point: a machine with Windows — that’s it! • The rest is automated: − Provisioning: verify/install tools takes ~50 minutes − Puppet Agent, PowerShell, 7-Zip, VNC − SQL Server, .Net, Visual Studio − Noticia Repono Client − Install Custom Software takes 5-10 minutes − Clean system from any previous runs − Install/Configure Base Components − Install System − Install and Run Smoke Tests At this point the system is ready to be used to do further testing, demos, etc. • Deploy cycle repeats ChunkyMonkey Vanilla
  • 37. Definition of Done … that makes our customers happy 10/4/2016 www.centricconsulting.com 36
  • 38. Continuous Delivery Definition of Done •Automated Deployments • Fully Automatic or Push-Button Deploys • Same Executable Scripts for all Environments • No Deployment Hero •Automated Testing • Unit • Integration • Full System •Always Shippable • No Temporary Code • No Untested Code • Feature Toggles •One Backlog • Production Bug Fixes • New Features 10/4/2016www.centricconsulting.com 37
  • 39. About Me 10/4/2016www.centricconsulting.com 38 • Our highest priority is building lifelong relationships with clients based on trust, respect, and collaboration. • We invest in our talented team and support their well being by keeping them challenged and inspired. • Our localized company structure allows us to play very active roles in the lives of our families and community. This relationship-centric focus keeps us passionate, committed and motivated in all facets of our lives. That’s why our team is here to stay. Centric Consulting • 17 years as a software developer and architect • Full stack developer in Java, .Net, TypeScript (Angular 2), and PHP • DevOps tooling experience including VMs, Docker, Chef, and Puppet • Continuous Delivery and Automated Testing implementations • Experience across industries including FDA and SEC regulated Continue the Journey • http://centricconsulting.com/centric-st-louis-scaled-agile-workshop/ Thank You for Attending!

Editor's Notes

  • #23: Selenium WebDriver is used to manipulate HTML Web Pages by providing the ability to find and manipulate elements on an HTML page. As seen in this example the driver uses a findElement method to identify the element on the HTML page. It is important to add ids into the HTML that can be used to simplify finding the HTML elements on the web page. By making minor changes in the development of the web page the page becomes much simpler to automate with Selenium. With this single test a small change to the web page would be managed by changing the findElement By Name string. With a small number of tests this can be managed without adding a large cost when a UI change occurs. However once hundreds and even thousands of tests are created with findElement searches spread throughout the tests the cost to make a single change to the UI causes a ripple effect in the tests. If the test suites are coded at this “low-level” then a single UI change becomes extremely expensive and the tests become brittle and hard to maintain. In addition “the language of the test” is technical. It is difficult to show the test to a business owner, project manager, or even technical people because the test objective is lost within the technical web driver details.
  • #24: The Page Object Model pattern can be used to eliminate the duplication of the Find Element locators. In addition the pattern greatly simplifies the test code. However the test is still actual compile-able code. The pattern can also be used to interact with APIs and other parts of the system in addition to directly interacting with the WebDriver.
  • #25: Behavior Driven Design can be used to test web sites, APIs, as well as other systems. The test cases are written in a language that matches the business. The underlying BDD engine (ex. Cucumber) is used to translate the English text into actions against the system. This allows the Gherkin tests to interact with the system as needed without adding complexity to the actual test case. BDD provides an explicit separation between the test cases and the actual implementation of the system. By writing the tests with a business-centered focus the tests are more stable than if written directly against the UI implementation elements.
  • #31: Down-time “We’ll Be Back” Landing Page Zero Downtime Blue-Green Canary Releases