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

What's hot (20)

PPT
DevOps 101 for Government
PPTX
Metrics to Power DevOps
PPT
DevOps Transition Strategies
PDF
Integrating Automated Testing into DevOps
PDF
DevOps – the future of Agile – why, what, how? Agile Israel 2014
PPTX
Shifting Left Webinar Slideshow
PDF
The Anti-Transformation transformation @DevOps Summit Amsterdam
PDF
Agile 2014- Metrics driven development and devops
PPTX
Continuous Testing: Preparing for DevOps
PDF
Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012
PPTX
Agile Transformation: People, Process and Tools to Make Your Transformation S...
PDF
Support and Initiate a DevOps Transformation
PPTX
Five Ways Automation Has Increased Application Deployment and Changed Culture
ODP
The devops laboratory - 1 year later
PDF
Technical Capabilities as enabler for Agile and DevOps
PDF
DevOps Primer : Presented by Uday Kumar
PPTX
The Devops Handbook
PPT
DevOps Explained
PPTX
Devops & Agility - Build the Culture, Get the Tools, Win the Day - Dundee Tec...
PDF
Bn1006 demo ppt devops
DevOps 101 for Government
Metrics to Power DevOps
DevOps Transition Strategies
Integrating Automated Testing into DevOps
DevOps – the future of Agile – why, what, how? Agile Israel 2014
Shifting Left Webinar Slideshow
The Anti-Transformation transformation @DevOps Summit Amsterdam
Agile 2014- Metrics driven development and devops
Continuous Testing: Preparing for DevOps
Continuously Deploying Culture: Scaling Culture at Etsy - Velocity Europe 2012
Agile Transformation: People, Process and Tools to Make Your Transformation S...
Support and Initiate a DevOps Transformation
Five Ways Automation Has Increased Application Deployment and Changed Culture
The devops laboratory - 1 year later
Technical Capabilities as enabler for Agile and DevOps
DevOps Primer : Presented by Uday Kumar
The Devops Handbook
DevOps Explained
Devops & Agility - Build the Culture, Get the Tools, Win the Day - Dundee Tec...
Bn1006 demo ppt devops
Ad

Viewers also liked (7)

PDF
Testers and developers think differently
PDF
Create Your Tester Portfolio
PPTX
Continuous Quality: What DevOps Means for QA
PDF
Tektronix keithley Product and Application update Q2 2016
PDF
Regulated Software Testing - Griffin Jones - TISQA 2014
DOC
Resume, doug davis, 10 18-15 pmi-acp, pmp, scrum master, six sigma master, ba...
PDF
Python arsenal for re
Testers and developers think differently
Create Your Tester Portfolio
Continuous Quality: What DevOps Means for QA
Tektronix keithley Product and Application update Q2 2016
Regulated Software Testing - Griffin Jones - TISQA 2014
Resume, doug davis, 10 18-15 pmi-acp, pmp, scrum master, six sigma master, ba...
Python arsenal for re
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
PDF
Continuous Delivery in a Legacy Shop - One Step at a Time
PPTX
Succeeding-Marriage-Cybersecurity-DevOps final
PPTX
Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...
PDF
Continuous Testing: A Key to DevOps Success
PPTX
Harman deepak v - agile on steriod - dev ops led transformation
PPTX
DevOps Transformations
PPTX
Cyber security - It starts with the embedded system
PPTX
DevOps and Build Automation
PDF
SplunkLive! London 2015 - DevOps Breakout
PPTX
One trunk one pipeline one truth
PDF
Dev ops and safety critical systems
PDF
Hyd virtual meetupslides11jul
PDF
Strategies on How to Overcome Security Challenges Unique to Cloud-Native Apps
PPTX
ISACA Ireland Keynote 2015
PDF
PNSQC 2021 January 28 Culture Jam
PPTX
Patterns and Antipatterns for Software updates
PPT
Continuous Integration
PPTX
DOES15 - Ernest Mueller - DevOps Transformations At National Instruments and...
PPTX
Experiences Bringing CD to a DoD Project
Continuous Delivery in a Legacy Shop - One Step at a Time
Continuous Delivery in a Legacy Shop - One Step at a Time
Succeeding-Marriage-Cybersecurity-DevOps final
Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...
Continuous Testing: A Key to DevOps Success
Harman deepak v - agile on steriod - dev ops led transformation
DevOps Transformations
Cyber security - It starts with the embedded system
DevOps and Build Automation
SplunkLive! London 2015 - DevOps Breakout
One trunk one pipeline one truth
Dev ops and safety critical systems
Hyd virtual meetupslides11jul
Strategies on How to Overcome Security Challenges Unique to Cloud-Native Apps
ISACA Ireland Keynote 2015
PNSQC 2021 January 28 Culture Jam
Patterns and Antipatterns for Software updates
Continuous Integration
DOES15 - Ernest Mueller - DevOps Transformations At National Instruments and...
Experiences Bringing CD to a DoD Project

More from TechWell (20)

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

Recently uploaded (20)

PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
Transform Your Business with a Software ERP System
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Digital Strategies for Manufacturing Companies
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
ai tools demonstartion for schools and inter college
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
medical staffing services at VALiNTRY
PPTX
Odoo POS Development Services by CandidRoot Solutions
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
ManageIQ - Sprint 268 Review - Slide Deck
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Which alternative to Crystal Reports is best for small or large businesses.pdf
How to Migrate SBCGlobal Email to Yahoo Easily
Transform Your Business with a Software ERP System
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Digital Strategies for Manufacturing Companies
2025 Textile ERP Trends: SAP, Odoo & Oracle
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Upgrade and Innovation Strategies for SAP ERP Customers
ai tools demonstartion for schools and inter college
Operating system designcfffgfgggggggvggggggggg
Navsoft: AI-Powered Business Solutions & Custom Software Development
Odoo Companies in India – Driving Business Transformation.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 41
medical staffing services at VALiNTRY
Odoo POS Development Services by CandidRoot Solutions

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 · info@techwell.com · 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 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
  • 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 gene.gotimer@coveros.com @CoverosGene