SlideShare a Scribd company logo
DT3
Concurrent	Session	
11/12/15	1:30pm	
	
	
	
“Continuous Delivery in a Legacy Shop—One
Step at a Time”
	
	
Presented by:
Gene Gotimer
Coveros, Inc.
	
	
	
	
Brought	to	you	by:	
	
	
	
340	Corporate	Way,	Suite	300,	Orange	Park,	FL	32073	
888-268-8770	·	904-278-0524	·	info@techwell.com	·	www.techwell.com
Gene Gotimer
Coveros, Inc.
Gene Gotimer is a senior architect at Coveros, Inc., a software company that uses agile
methods to accelerate the delivery of secure, reliable software. As a consultant, Gene works
with his customers build software better, faster, and more securely by introducing agile
development and DevOps practices such as continuous integration, repeatable builds, unit
testing, automated functional testing, analysis tools, security scanning, and automated deploys.
He has successfully brought these techniques into commercial and government clients,
including the US Department of Defense. Gene feels strongly the repeatability, quality, and
security are all strongly intertwined; each of them is dependent on the other two, which just
makes DevOps that much more crucial to software development.
© Copyright 2015 Coveros, Inc. All rights reserved.
Continuous Delivery in a Legacy Shop -
One Step at a Time
Gene Gotimer gene.gotimer@coveros.com
Senior Architect @CoverosGene
2© Copyright 2015 Coveros, Inc. All rights reserved.
Coveros builds security-critical applications using agile methods.
Coveros Services
– Agile transformations
– Agile development and testing
– DevOps and continuous integration
– Application security analysis
Agile & Security training
Government qualifications
– DCAA approved rates and accounting
– TS facility clearance
About Coveros
Areas of Expertise
3© Copyright 2015 Coveros, Inc. All rights reserved.
Selected Clients
4© Copyright 2015 Coveros, Inc. All rights reserved.
The Problem
5© Copyright 2015 Coveros, Inc. All rights reserved.
The Project
COTS product integration for DoD
– custom Python glue
Barely starting Agile
– Daily Stand-ups (really daily status calls)
– 2-week Sprints
– Good, pruned backlog
– No automated testing
– No unit tests
– No continuous integration
Releases every 6 months or so
– Freeze 2-4 weeks in advance
– Deploy Friday evening to Sunday afternoon
– Repair broken functionality Monday and Tuesday (and on)
6© Copyright 2015 Coveros, Inc. All rights reserved.
The Delivery Team
Development – Local
– 2 Developers
– 1 Business Analyst
– 1 Project Manager
Test and Integration – Remote
– 4-6 Testers
– 4-6 Integrators (including security experts)
– 1 Information Assurance
Off-team
– Systems Administrators, hardware and software
7© Copyright 2015 Coveros, Inc. All rights reserved.
The Problem
“But it works on my machine!”
8© Copyright 2015 Coveros, Inc. All rights reserved.
The Problem
“But it works on my machine!”
=
High risk deploys
9© Copyright 2015 Coveros, Inc. All rights reserved.
DevOps is
10© Copyright 2015 Coveros, Inc. All rights reserved.
One Single Line of Code
“How long would it take your organization to deploy a change
that involves just one single line of code?
Do you do this on a repeatable, reliable basis?”
-- Mary and Tom Poppendieck
Implementing Lean Software Development: From Concept to Cash
11© Copyright 2015 Coveros, Inc. All rights reserved.
Everybody is Responsible for Delivery
“The goal of DevOps is not just to increase the rate of change,
but to successfully deploy features into production without
causing chaos and disrupting other services, while quickly
detecting and correcting incidents when they occur.”
-- Gene Kim, Author of The Phoenix Project
12© Copyright 2015 Coveros, Inc. All rights reserved.
Continuous Delivery
Make releasing a business decision, not a technical decision
High-confidence releases
– Small releases
– Fully tested
– No expectation of problems
Hotfix releases
– Possible
– No more than moderate risk
– No more than moderate coordination
Continuous Deployment was not a goal
13© Copyright 2015 Coveros, Inc. All rights reserved.
The Approach
14© Copyright 2015 Coveros, Inc. All rights reserved.
The Approach
Started with things that were in our control
– Dev and Test environments
– Development process
Make changes behind the scenes
– Free/open source tools
– Easy to integrate into our CI system
– Small changes
Disclose the changes when there was a win
– Highlight ease of use
– Use as justification for higher environments
15© Copyright 2015 Coveros, Inc. All rights reserved.
The Journey
16© Copyright 2015 Coveros, Inc. All rights reserved.
1: Continuous Integration
Trouble explaining “integration”
– between two or more developers
– not between systems
Just brought in SecureCI and wired to the ALM tool we had
– Jenkins (Hudson at the time)
– Nexus
– SonarQube (Sonar at the time)
– Automated builds
PMD
FindBugs
Checkstyle
Cobertura
Later added Python tools
Explained the advantages later
17© Copyright 2015 Coveros, Inc. All rights reserved.
2: Functional Testing
Functional testing was done manually
– from a script written in Microsoft Word
We waited a year before staging a coup
– we didn’t want to encroach on their domain
Demo of Selenium
– demonstrated record-and-playback through the Selenium IDE
– we recorded the first set of tests
– turned it back over to the test team
They argued later that automated testing was ineffective
– the automated script (singular) only worked one time, then needed
to be re-recorded when any changes got made to the app
18© Copyright 2015 Coveros, Inc. All rights reserved.
2: Functional Testing
We took it back
Rewrote existing tests in Java
Showed our business analyst how to clone-and-mutate the
Java tests
Started with JUnit, but went to TestNG
– better tagging and parameterization
– pre-test run initialization
Since it was COTS, focused on testing system interfaces,
not application functionality
Also began testing user roles
– Security testing = what can this type of user NOT do
19© Copyright 2015 Coveros, Inc. All rights reserved.
Continuous Delivery
Project Manager came
across the book in a book
store
Everything made so much
sense
Logical extension of what we
were trying to do
Addressed a lot of the issues
we were running into
No money or time for an
effort, so we adopted it as
our long-term goal
20© Copyright 2015 Coveros, Inc. All rights reserved.
3: Automated Deploys
Started with automating a Drupal web server install
– new system, not yet in production
– database server was easy, so we skipped it for now
Then automated the manual COTS install
Then started reverse engineering the broken COTS installer
Down the road, realized we could “Automate Everything”
No Puppet Enterprise Server
– just manually ran puppet apply from the command line
21© Copyright 2015 Coveros, Inc. All rights reserved.
4: Security Testing
Tested Security Blanket (now by Raytheon)
– couldn’t get it purchased
We knew it couldn’t replace the “official” testing
– plus, didn’t want to encroach on their domain
Knew we had some good basis in our CI, static analysis,
and user role testing
Wanted a security scanner
– at the time, none worked with client certificates out of the box
Found w3af
– Python
– customizable
– client certificate support was there, but not exposed
– handed it over to the “experts” on the integration team
22© Copyright 2015 Coveros, Inc. All rights reserved.
4: Security Testing
Found 0 vulnerabilities!
Perfectly secure! Yeah!
23© Copyright 2015 Coveros, Inc. All rights reserved.
4: Security Testing
Never got past the login screen
But didn’t start at the beginning, so they even missed a XSS
bug on the home page
Never read the output or log
So we took it back
– Eventually had problems getting customized w3af to work properly
– Switched to OWASP ZAP, run manually
Security team focused on STIG and SELinux
– that was their expertise anyway
24© Copyright 2015 Coveros, Inc. All rights reserved.
4+: Security Testing
Over a few days, implemented OpenSCAP in Jenkins for
STIG checks
– immediately found issues
– started adding Puppet manifests for remediation
Started using Nikto2 for web server scanning
– immediately found issues
Started running weekly scans of dev and test using
OpenVAS (Nessus fork)
– no immediate issues, but started seeing package security updates
before they became IAVMs
Discovered SELinux was in permissive mode
– had never been in enforcing
25© Copyright 2015 Coveros, Inc. All rights reserved.
5: Performance
Reconfiguring database server
– we thought it was getting slower
Added JMeter to measure a baseline
Took rough breakdown of most common queries
Repeated as a 15-minute test
Monitored trend
Added similar testing to functional tests, another 15 mins
Also, number of functional tests was growing slowly
Watched functional test elapsed time as rough guide
26© Copyright 2015 Coveros, Inc. All rights reserved.
6: Culture Clash
Continuous Delivery was being openly discussed
– PMO had just started thinking of it as a clear plan
– Kept asking when “continuous delivery” would be delivered, how it
would be packaged
Test and Integration started complaining
– 3½ of us were pushing the 12+ of them too hard
– moving too fast
– not a risk or control complaint, merely effort
People on test and integration team started leaving
– including “Burt”
27© Copyright 2015 Coveros, Inc. All rights reserved.
The Results
28© Copyright 2015 Coveros, Inc. All rights reserved.
Contract Renewal Time
Test and Integration decided not to renew
– all remaining personnel ended project with a month
Security issue found the following week
– deployed 3 days later
Went back to 2-week deploy cycles, sometimes faster
Left 3 people on development team
– One went back to take over for the test and integration team as
hands-on-keyboard
– BA left project and another came in ½ time for testing
Dropped into maintenance mode
29© Copyright 2015 Coveros, Inc. All rights reserved.
The Delivery Team
Development – Local
– 1 Developer
– 1 Release Manager
– ½ time Tester
Test and Integration – Remote
– 1 Information Assurance
Off-team
– Systems Administrators, hardware and software
30© Copyright 2015 Coveros, Inc. All rights reserved.
The Project
Barely Agile
– Maintenance only
– Kanban-ish, tracking WIP
– Daily Stand-ups (really daily status calls)
– 2-week Sprints
Releases prepared every 2 weeks
– Soft freeze Thursday for Friday release
– Deploy Friday evening
– 100% working functionality Friday evening
– Non-event
Configuration parameters
– from 200+ untracked values
– to ~30 Hiera-controlled values
Biggest coordination issue: 72 hours for user messaging
Biggest time consumer: 3-6 hours for VM clones
31© Copyright 2015 Coveros, Inc. All rights reserved.
Missed Opportunities
32© Copyright 2015 Coveros, Inc. All rights reserved.
Missed Opportunities
Automated deploys
– more valuable than just reducing risk
Vagrant
Some security scanning earlier
– can’t assume someone else is doing it
Some performance testing earlier
We relied on client-side certificates for authentication
– EJBCA should have been set up immediately
Upgrades are a huge time sink
– components, libraries, applications, system software
– add tools to track it as early as possible
33© Copyright 2015 Coveros, Inc. All rights reserved.
The Tool Chain
34© Copyright 2015 Coveros, Inc. All rights reserved.
The Tool Chain
Jenkins
Puppet (no Puppet Enterprise)
– 2 puppet apply commands per server
one --noop for system audit
one for deploy
Security
– OpenSCAP (every deploy, minutes)
– OpenVAS (every weekend, hours)
included Nikto2
used Kali Linux
– OWASP Dependency Check (on-demand, many minutes)
– OWASP Zed Attack Proxy (on-demand, few days)
– Full role-based Selenium test coverage (every deploy, overnight)
10k+ Selenium tests, TestNG parameterized
35© Copyright 2015 Coveros, Inc. All rights reserved.
The Tool Chain
Testing
– TestNG for Java unit tests
– Nose for Python unit tests
– Mockito/Mockito for Python
JMeter
– for some representative performance tests
Static Analysis
– Java
PMD
FindBugs
Checkstyle
Cobertura
SonarQube
– Python
Pylint
coverage.py
36© Copyright 2015 Coveros, Inc. All rights reserved.
Questions?
Gene Gotimer
gene.gotimer@coveros.com
@CoverosGene

More Related Content

PDF
Continuous Integration Is for Everyone—Especially DevOps
TechWell
 
PDF
Advance ALM and DevOps Practices with Continuous Improvement
TechWell
 
PDF
Agile and DevOps Transformations in Large Organizations
TechWell
 
PDF
Fostering Long-Term Test Automation Success
TechWell
 
PDF
Soft Skills You Need Are Not Always Taught in Class
TechWell
 
PPTX
DevOps Kaizen: Practical Steps to Start & Sustain a Transformation
dev2ops
 
PPTX
Testing in a DevOps team
Laurent PY
 
PPTX
DOES15 - Elisabeth Hendrickson - Its All About Feedback
Gene Kim
 
Continuous Integration Is for Everyone—Especially DevOps
TechWell
 
Advance ALM and DevOps Practices with Continuous Improvement
TechWell
 
Agile and DevOps Transformations in Large Organizations
TechWell
 
Fostering Long-Term Test Automation Success
TechWell
 
Soft Skills You Need Are Not Always Taught in Class
TechWell
 
DevOps Kaizen: Practical Steps to Start & Sustain a Transformation
dev2ops
 
Testing in a DevOps team
Laurent PY
 
DOES15 - Elisabeth Hendrickson - Its All About Feedback
Gene Kim
 

What's hot (20)

PPT
DevOps 101 for Government
Sanjeev Sharma
 
PPTX
Metrics to Power DevOps
CollabNet
 
PPT
DevOps Transition Strategies
Alec Lazarescu
 
PDF
Integrating Automated Testing into DevOps
TechWell
 
PDF
DevOps – the future of Agile – why, what, how? Agile Israel 2014
Yuval Yeret
 
PPTX
Shifting Left Webinar Slideshow
Lingoport (www.lingoport.com)
 
PDF
The Anti-Transformation transformation @DevOps Summit Amsterdam
Mirco Hering
 
PDF
Agile 2014- Metrics driven development and devops
Karthik Gaekwad
 
PPTX
Continuous Testing: Preparing for DevOps
STePINForum
 
PDF
Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012
Patrick McDonnell
 
PPTX
Agile Transformation: People, Process and Tools to Make Your Transformation S...
QASymphony
 
PDF
Support and Initiate a DevOps Transformation
dev2ops
 
PPTX
Five Ways Automation Has Increased Application Deployment and Changed Culture
XebiaLabs
 
ODP
The devops laboratory - 1 year later
Javier Turégano Molina
 
PDF
Technical Capabilities as enabler for Agile and DevOps
Nelis Boucké
 
PDF
DevOps Primer : Presented by Uday Kumar
oGuild .
 
PPTX
The Devops Handbook
Harish Kamugakudi Marimuthu
 
PPT
DevOps Explained
DevOpsAnon
 
PPTX
Devops & Agility - Build the Culture, Get the Tools, Win the Day - Dundee Tec...
David Walker
 
PDF
Bn1006 demo ppt devops
conline training
 
DevOps 101 for Government
Sanjeev Sharma
 
Metrics to Power DevOps
CollabNet
 
DevOps Transition Strategies
Alec Lazarescu
 
Integrating Automated Testing into DevOps
TechWell
 
DevOps – the future of Agile – why, what, how? Agile Israel 2014
Yuval Yeret
 
Shifting Left Webinar Slideshow
Lingoport (www.lingoport.com)
 
The Anti-Transformation transformation @DevOps Summit Amsterdam
Mirco Hering
 
Agile 2014- Metrics driven development and devops
Karthik Gaekwad
 
Continuous Testing: Preparing for DevOps
STePINForum
 
Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012
Patrick McDonnell
 
Agile Transformation: People, Process and Tools to Make Your Transformation S...
QASymphony
 
Support and Initiate a DevOps Transformation
dev2ops
 
Five Ways Automation Has Increased Application Deployment and Changed Culture
XebiaLabs
 
The devops laboratory - 1 year later
Javier Turégano Molina
 
Technical Capabilities as enabler for Agile and DevOps
Nelis Boucké
 
DevOps Primer : Presented by Uday Kumar
oGuild .
 
The Devops Handbook
Harish Kamugakudi Marimuthu
 
DevOps Explained
DevOpsAnon
 
Devops & Agility - Build the Culture, Get the Tools, Win the Day - Dundee Tec...
David Walker
 
Bn1006 demo ppt devops
conline training
 
Ad

Viewers also liked (7)

PDF
Testers and developers think differently
Nuthan Kumar
 
PDF
Create Your Tester Portfolio
Shmuel Gershon
 
PPTX
Continuous Quality: What DevOps Means for QA
Jeff Sussna
 
PDF
Tektronix keithley Product and Application update Q2 2016
Jeff Sable
 
PDF
Regulated Software Testing - Griffin Jones - TISQA 2014
Griffin Jones
 
DOC
Resume, doug davis, 10 18-15 pmi-acp, pmp, scrum master, six sigma master, ba...
Doug Davis PMI-ACP®, PMP®, BA, Six Sigma, Scrum Master, ITIL®
 
PDF
Python arsenal for re
geeksec80
 
Testers and developers think differently
Nuthan Kumar
 
Create Your Tester Portfolio
Shmuel Gershon
 
Continuous Quality: What DevOps Means for QA
Jeff Sussna
 
Tektronix keithley Product and Application update Q2 2016
Jeff Sable
 
Regulated Software Testing - Griffin Jones - TISQA 2014
Griffin Jones
 
Resume, doug davis, 10 18-15 pmi-acp, pmp, scrum master, six sigma master, ba...
Doug Davis PMI-ACP®, PMP®, BA, Six Sigma, Scrum Master, ITIL®
 
Python arsenal for re
geeksec80
 
Ad

Similar to Continuous Delivery in a Legacy Shop—One Step at a Time (20)

PDF
Continuous Delivery in a Legacy Shop - One Step at a Time
Coveros, Inc.
 
PDF
Continuous Delivery in a Legacy Shop - One Step at a Time
Gene Gotimer
 
PPTX
Experiences Bringing CD to a DoD Project
Gene Gotimer
 
PPTX
Testing in a Continuous Delivery Pipeline - Better, Faster, Cheaper
Gene Gotimer
 
PPTX
Testing in a Continuous Delivery Pipeline - Better, Faster, Cheaper
Coveros, Inc.
 
PPTX
Bringing CD to the DoD
Gene Gotimer
 
PPTX
A better faster pipeline for software delivery, even in the government
Gene Gotimer
 
PPTX
Devops Journey - internet tech startup
Viresh Doshi
 
PPTX
Agile, DevOps & Test
Qualitest
 
PDF
Continuous Delivery of a Cloud Deployment at a Large Telecommunications Provider
M Kevin McHugh
 
PDF
A Better, Faster Pipeline for Software Delivery
Gene Gotimer
 
PPTX
Dev ops != Dev+Ops
Shalu Ahuja
 
PDF
Constant Contact SF's Road to CD
Solano Labs
 
PPTX
The Journey to DevOps
Perfecto by Perforce
 
PDF
Using DevOps to Improve Software Quality in the Cloud
TechWell
 
PPTX
Our Journey To Continuous Delivery
Robert Mircea
 
PDF
DOD 2016 - Diogo Oliveira - The OutSystems R&D Continuous Delivery Journey
PROIDEA
 
PDF
Robert Mircea & Virgil Chereches: Our Journey To Continuous Delivery at I T.A...
Mozaic Works
 
PDF
Using DevOps to Improve Software Quality in the Cloud
TechWell
 
PDF
Introduction to Continuous Delivery
Giovanni Toraldo
 
Continuous Delivery in a Legacy Shop - One Step at a Time
Coveros, Inc.
 
Continuous Delivery in a Legacy Shop - One Step at a Time
Gene Gotimer
 
Experiences Bringing CD to a DoD Project
Gene Gotimer
 
Testing in a Continuous Delivery Pipeline - Better, Faster, Cheaper
Gene Gotimer
 
Testing in a Continuous Delivery Pipeline - Better, Faster, Cheaper
Coveros, Inc.
 
Bringing CD to the DoD
Gene Gotimer
 
A better faster pipeline for software delivery, even in the government
Gene Gotimer
 
Devops Journey - internet tech startup
Viresh Doshi
 
Agile, DevOps & Test
Qualitest
 
Continuous Delivery of a Cloud Deployment at a Large Telecommunications Provider
M Kevin McHugh
 
A Better, Faster Pipeline for Software Delivery
Gene Gotimer
 
Dev ops != Dev+Ops
Shalu Ahuja
 
Constant Contact SF's Road to CD
Solano Labs
 
The Journey to DevOps
Perfecto by Perforce
 
Using DevOps to Improve Software Quality in the Cloud
TechWell
 
Our Journey To Continuous Delivery
Robert Mircea
 
DOD 2016 - Diogo Oliveira - The OutSystems R&D Continuous Delivery Journey
PROIDEA
 
Robert Mircea & Virgil Chereches: Our Journey To Continuous Delivery at I T.A...
Mozaic Works
 
Using DevOps to Improve Software Quality in the Cloud
TechWell
 
Introduction to Continuous Delivery
Giovanni Toraldo
 

More from TechWell (20)

PDF
Failing and Recovering
TechWell
 
PDF
Instill a DevOps Testing Culture in Your Team and Organization
TechWell
 
PDF
Test Design for Fully Automated Build Architecture
TechWell
 
PDF
System-Level Test Automation: Ensuring a Good Start
TechWell
 
PDF
Build Your Mobile App Quality and Test Strategy
TechWell
 
PDF
Testing Transformation: The Art and Science for Success
TechWell
 
PDF
Implement BDD with Cucumber and SpecFlow
TechWell
 
PDF
Develop WebDriver Automated Tests—and Keep Your Sanity
TechWell
 
PDF
Ma 15
TechWell
 
PDF
Eliminate Cloud Waste with a Holistic DevOps Strategy
TechWell
 
PDF
Transform Test Organizations for the New World of DevOps
TechWell
 
PDF
The Fourth Constraint in Project Delivery—Leadership
TechWell
 
PDF
Resolve the Contradiction of Specialists within Agile Teams
TechWell
 
PDF
Pin the Tail on the Metric: A Field-Tested Agile Game
TechWell
 
PDF
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
TechWell
 
PDF
A Business-First Approach to DevOps Implementation
TechWell
 
PDF
Databases in a Continuous Integration/Delivery Process
TechWell
 
PDF
Mobile Testing: What—and What Not—to Automate
TechWell
 
PDF
Cultural Intelligence: A Key Skill for Success
TechWell
 
PDF
Turn the Lights On: A Power Utility Company's Agile Transformation
TechWell
 
Failing and Recovering
TechWell
 
Instill a DevOps Testing Culture in Your Team and Organization
TechWell
 
Test Design for Fully Automated Build Architecture
TechWell
 
System-Level Test Automation: Ensuring a Good Start
TechWell
 
Build Your Mobile App Quality and Test Strategy
TechWell
 
Testing Transformation: The Art and Science for Success
TechWell
 
Implement BDD with Cucumber and SpecFlow
TechWell
 
Develop WebDriver Automated Tests—and Keep Your Sanity
TechWell
 
Ma 15
TechWell
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
TechWell
 
Transform Test Organizations for the New World of DevOps
TechWell
 
The Fourth Constraint in Project Delivery—Leadership
TechWell
 
Resolve the Contradiction of Specialists within Agile Teams
TechWell
 
Pin the Tail on the Metric: A Field-Tested Agile Game
TechWell
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
TechWell
 
A Business-First Approach to DevOps Implementation
TechWell
 
Databases in a Continuous Integration/Delivery Process
TechWell
 
Mobile Testing: What—and What Not—to Automate
TechWell
 
Cultural Intelligence: A Key Skill for Success
TechWell
 
Turn the Lights On: A Power Utility Company's Agile Transformation
TechWell
 

Recently uploaded (20)

PDF
49784907924775488180_LRN2959_Data_Pump_23ai.pdf
Abilash868456
 
PPT
Why Reliable Server Maintenance Service in New York is Crucial for Your Business
Sam Vohra
 
PDF
lesson-2-rules-of-netiquette.pdf.bshhsjdj
jasmenrojas249
 
PPTX
Visualising Data with Scatterplots in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PPTX
The-Dawn-of-AI-Reshaping-Our-World.pptxx
parthbhanushali307
 
PPTX
Explanation about Structures in C language.pptx
Veeral Rathod
 
PDF
MiniTool Power Data Recovery Crack New Pre Activated Version Latest 2025
imang66g
 
PDF
On Software Engineers' Productivity - Beyond Misleading Metrics
Romén Rodríguez-Gil
 
PPTX
Presentation about Database and Database Administrator
abhishekchauhan86963
 
PDF
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
PPTX
Maximizing Revenue with Marketo Measure: A Deep Dive into Multi-Touch Attribu...
bbedford2
 
PDF
10 posting ideas for community engagement with AI prompts
Pankaj Taneja
 
PPTX
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
PDF
Bandai Playdia The Book - David Glotz
BluePanther6
 
PPTX
Can You Build Dashboards Using Open Source Visualization Tool.pptx
Varsha Nayak
 
PDF
Protecting the Digital World Cyber Securit
dnthakkar16
 
PPTX
Presentation about variables and constant.pptx
safalsingh810
 
PPTX
Contractor Management Platform and Software Solution for Compliance
SHEQ Network Limited
 
PDF
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
PDF
Key Features to Look for in Arizona App Development Services
Net-Craft.com
 
49784907924775488180_LRN2959_Data_Pump_23ai.pdf
Abilash868456
 
Why Reliable Server Maintenance Service in New York is Crucial for Your Business
Sam Vohra
 
lesson-2-rules-of-netiquette.pdf.bshhsjdj
jasmenrojas249
 
Visualising Data with Scatterplots in IBM SPSS Statistics.pptx
Version 1 Analytics
 
The-Dawn-of-AI-Reshaping-Our-World.pptxx
parthbhanushali307
 
Explanation about Structures in C language.pptx
Veeral Rathod
 
MiniTool Power Data Recovery Crack New Pre Activated Version Latest 2025
imang66g
 
On Software Engineers' Productivity - Beyond Misleading Metrics
Romén Rodríguez-Gil
 
Presentation about Database and Database Administrator
abhishekchauhan86963
 
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
Maximizing Revenue with Marketo Measure: A Deep Dive into Multi-Touch Attribu...
bbedford2
 
10 posting ideas for community engagement with AI prompts
Pankaj Taneja
 
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
Bandai Playdia The Book - David Glotz
BluePanther6
 
Can You Build Dashboards Using Open Source Visualization Tool.pptx
Varsha Nayak
 
Protecting the Digital World Cyber Securit
dnthakkar16
 
Presentation about variables and constant.pptx
safalsingh810
 
Contractor Management Platform and Software Solution for Compliance
SHEQ Network Limited
 
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
Key Features to Look for in Arizona App Development Services
Net-Craft.com
 

Continuous Delivery in a Legacy Shop—One Step at a Time

  • 1. DT3 Concurrent Session 11/12/15 1:30pm “Continuous Delivery in a Legacy Shop—One Step at a Time” Presented by: Gene Gotimer Coveros, Inc. Brought to you by: 340 Corporate Way, Suite 300, Orange Park, FL 32073 888-268-8770 · 904-278-0524 · [email protected] · www.techwell.com
  • 2. Gene Gotimer Coveros, Inc. Gene Gotimer is a senior architect at Coveros, Inc., a software company that uses agile methods to accelerate the delivery of secure, reliable software. As a consultant, Gene works with his customers build software better, faster, and more securely by introducing agile development and DevOps practices such as continuous integration, repeatable builds, unit testing, automated functional testing, analysis tools, security scanning, and automated deploys. He has successfully brought these techniques into commercial and government clients, including the US Department of Defense. Gene feels strongly the repeatability, quality, and security are all strongly intertwined; each of them is dependent on the other two, which just makes DevOps that much more crucial to software development.
  • 3. © Copyright 2015 Coveros, Inc. All rights reserved. Continuous Delivery in a Legacy Shop - One Step at a Time Gene Gotimer [email protected] Senior Architect @CoverosGene 2© Copyright 2015 Coveros, Inc. All rights reserved. Coveros builds security-critical applications using agile methods. Coveros Services – Agile transformations – Agile development and testing – DevOps and continuous integration – Application security analysis Agile & Security training Government qualifications – DCAA approved rates and accounting – TS facility clearance About Coveros Areas of Expertise
  • 4. 3© Copyright 2015 Coveros, Inc. All rights reserved. Selected Clients 4© Copyright 2015 Coveros, Inc. All rights reserved. The Problem
  • 5. 5© Copyright 2015 Coveros, Inc. All rights reserved. The Project COTS product integration for DoD – custom Python glue Barely starting Agile – Daily Stand-ups (really daily status calls) – 2-week Sprints – Good, pruned backlog – No automated testing – No unit tests – No continuous integration Releases every 6 months or so – Freeze 2-4 weeks in advance – Deploy Friday evening to Sunday afternoon – Repair broken functionality Monday and Tuesday (and on) 6© Copyright 2015 Coveros, Inc. All rights reserved. The Delivery Team Development – Local – 2 Developers – 1 Business Analyst – 1 Project Manager Test and Integration – Remote – 4-6 Testers – 4-6 Integrators (including security experts) – 1 Information Assurance Off-team – Systems Administrators, hardware and software
  • 6. 7© Copyright 2015 Coveros, Inc. All rights reserved. The Problem “But it works on my machine!” 8© Copyright 2015 Coveros, Inc. All rights reserved. The Problem “But it works on my machine!” = High risk deploys
  • 7. 9© Copyright 2015 Coveros, Inc. All rights reserved. DevOps is 10© Copyright 2015 Coveros, Inc. All rights reserved. One Single Line of Code “How long would it take your organization to deploy a change that involves just one single line of code? Do you do this on a repeatable, reliable basis?” -- Mary and Tom Poppendieck Implementing Lean Software Development: From Concept to Cash
  • 8. 11© Copyright 2015 Coveros, Inc. All rights reserved. Everybody is Responsible for Delivery “The goal of DevOps is not just to increase the rate of change, but to successfully deploy features into production without causing chaos and disrupting other services, while quickly detecting and correcting incidents when they occur.” -- Gene Kim, Author of The Phoenix Project 12© Copyright 2015 Coveros, Inc. All rights reserved. Continuous Delivery Make releasing a business decision, not a technical decision High-confidence releases – Small releases – Fully tested – No expectation of problems Hotfix releases – Possible – No more than moderate risk – No more than moderate coordination Continuous Deployment was not a goal
  • 9. 13© Copyright 2015 Coveros, Inc. All rights reserved. The Approach 14© Copyright 2015 Coveros, Inc. All rights reserved. The Approach Started with things that were in our control – Dev and Test environments – Development process Make changes behind the scenes – Free/open source tools – Easy to integrate into our CI system – Small changes Disclose the changes when there was a win – Highlight ease of use – Use as justification for higher environments
  • 10. 15© Copyright 2015 Coveros, Inc. All rights reserved. The Journey 16© Copyright 2015 Coveros, Inc. All rights reserved. 1: Continuous Integration Trouble explaining “integration” – between two or more developers – not between systems Just brought in SecureCI and wired to the ALM tool we had – Jenkins (Hudson at the time) – Nexus – SonarQube (Sonar at the time) – Automated builds PMD FindBugs Checkstyle Cobertura Later added Python tools Explained the advantages later
  • 11. 17© Copyright 2015 Coveros, Inc. All rights reserved. 2: Functional Testing Functional testing was done manually – from a script written in Microsoft Word We waited a year before staging a coup – we didn’t want to encroach on their domain Demo of Selenium – demonstrated record-and-playback through the Selenium IDE – we recorded the first set of tests – turned it back over to the test team They argued later that automated testing was ineffective – the automated script (singular) only worked one time, then needed to be re-recorded when any changes got made to the app 18© Copyright 2015 Coveros, Inc. All rights reserved. 2: Functional Testing We took it back Rewrote existing tests in Java Showed our business analyst how to clone-and-mutate the Java tests Started with JUnit, but went to TestNG – better tagging and parameterization – pre-test run initialization Since it was COTS, focused on testing system interfaces, not application functionality Also began testing user roles – Security testing = what can this type of user NOT do
  • 12. 19© Copyright 2015 Coveros, Inc. All rights reserved. Continuous Delivery Project Manager came across the book in a book store Everything made so much sense Logical extension of what we were trying to do Addressed a lot of the issues we were running into No money or time for an effort, so we adopted it as our long-term goal 20© Copyright 2015 Coveros, Inc. All rights reserved. 3: Automated Deploys Started with automating a Drupal web server install – new system, not yet in production – database server was easy, so we skipped it for now Then automated the manual COTS install Then started reverse engineering the broken COTS installer Down the road, realized we could “Automate Everything” No Puppet Enterprise Server – just manually ran puppet apply from the command line
  • 13. 21© Copyright 2015 Coveros, Inc. All rights reserved. 4: Security Testing Tested Security Blanket (now by Raytheon) – couldn’t get it purchased We knew it couldn’t replace the “official” testing – plus, didn’t want to encroach on their domain Knew we had some good basis in our CI, static analysis, and user role testing Wanted a security scanner – at the time, none worked with client certificates out of the box Found w3af – Python – customizable – client certificate support was there, but not exposed – handed it over to the “experts” on the integration team 22© Copyright 2015 Coveros, Inc. All rights reserved. 4: Security Testing Found 0 vulnerabilities! Perfectly secure! Yeah!
  • 14. 23© Copyright 2015 Coveros, Inc. All rights reserved. 4: Security Testing Never got past the login screen But didn’t start at the beginning, so they even missed a XSS bug on the home page Never read the output or log So we took it back – Eventually had problems getting customized w3af to work properly – Switched to OWASP ZAP, run manually Security team focused on STIG and SELinux – that was their expertise anyway 24© Copyright 2015 Coveros, Inc. All rights reserved. 4+: Security Testing Over a few days, implemented OpenSCAP in Jenkins for STIG checks – immediately found issues – started adding Puppet manifests for remediation Started using Nikto2 for web server scanning – immediately found issues Started running weekly scans of dev and test using OpenVAS (Nessus fork) – no immediate issues, but started seeing package security updates before they became IAVMs Discovered SELinux was in permissive mode – had never been in enforcing
  • 15. 25© Copyright 2015 Coveros, Inc. All rights reserved. 5: Performance Reconfiguring database server – we thought it was getting slower Added JMeter to measure a baseline Took rough breakdown of most common queries Repeated as a 15-minute test Monitored trend Added similar testing to functional tests, another 15 mins Also, number of functional tests was growing slowly Watched functional test elapsed time as rough guide 26© Copyright 2015 Coveros, Inc. All rights reserved. 6: Culture Clash Continuous Delivery was being openly discussed – PMO had just started thinking of it as a clear plan – Kept asking when “continuous delivery” would be delivered, how it would be packaged Test and Integration started complaining – 3½ of us were pushing the 12+ of them too hard – moving too fast – not a risk or control complaint, merely effort People on test and integration team started leaving – including “Burt”
  • 16. 27© Copyright 2015 Coveros, Inc. All rights reserved. The Results 28© Copyright 2015 Coveros, Inc. All rights reserved. Contract Renewal Time Test and Integration decided not to renew – all remaining personnel ended project with a month Security issue found the following week – deployed 3 days later Went back to 2-week deploy cycles, sometimes faster Left 3 people on development team – One went back to take over for the test and integration team as hands-on-keyboard – BA left project and another came in ½ time for testing Dropped into maintenance mode
  • 17. 29© Copyright 2015 Coveros, Inc. All rights reserved. The Delivery Team Development – Local – 1 Developer – 1 Release Manager – ½ time Tester Test and Integration – Remote – 1 Information Assurance Off-team – Systems Administrators, hardware and software 30© Copyright 2015 Coveros, Inc. All rights reserved. The Project Barely Agile – Maintenance only – Kanban-ish, tracking WIP – Daily Stand-ups (really daily status calls) – 2-week Sprints Releases prepared every 2 weeks – Soft freeze Thursday for Friday release – Deploy Friday evening – 100% working functionality Friday evening – Non-event Configuration parameters – from 200+ untracked values – to ~30 Hiera-controlled values Biggest coordination issue: 72 hours for user messaging Biggest time consumer: 3-6 hours for VM clones
  • 18. 31© Copyright 2015 Coveros, Inc. All rights reserved. Missed Opportunities 32© Copyright 2015 Coveros, Inc. All rights reserved. Missed Opportunities Automated deploys – more valuable than just reducing risk Vagrant Some security scanning earlier – can’t assume someone else is doing it Some performance testing earlier We relied on client-side certificates for authentication – EJBCA should have been set up immediately Upgrades are a huge time sink – components, libraries, applications, system software – add tools to track it as early as possible
  • 19. 33© Copyright 2015 Coveros, Inc. All rights reserved. The Tool Chain 34© Copyright 2015 Coveros, Inc. All rights reserved. The Tool Chain Jenkins Puppet (no Puppet Enterprise) – 2 puppet apply commands per server one --noop for system audit one for deploy Security – OpenSCAP (every deploy, minutes) – OpenVAS (every weekend, hours) included Nikto2 used Kali Linux – OWASP Dependency Check (on-demand, many minutes) – OWASP Zed Attack Proxy (on-demand, few days) – Full role-based Selenium test coverage (every deploy, overnight) 10k+ Selenium tests, TestNG parameterized
  • 20. 35© Copyright 2015 Coveros, Inc. All rights reserved. The Tool Chain Testing – TestNG for Java unit tests – Nose for Python unit tests – Mockito/Mockito for Python JMeter – for some representative performance tests Static Analysis – Java PMD FindBugs Checkstyle Cobertura SonarQube – Python Pylint coverage.py 36© Copyright 2015 Coveros, Inc. All rights reserved. Questions? Gene Gotimer [email protected] @CoverosGene