SlideShare a Scribd company logo
1 of 39
Download to read offline
© 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
 Ant, Maven
 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
– every system (DB, Web server, SVN server, ALM tool) used the
same puppet apply command
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, and
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.
My Advice
32© Copyright 2015 Coveros, Inc. All rights reserved.
My Advice
 DO NOT DO DEVOPS or CD!
– At least, don’t set out with a goal to do DevOps or Continuous
Delivery
 Set out to
– remove road blocks and bottlenecks
– fix quality issues
– be more responsive to change
– etc.
 Incremental adoption
– less culture shock
– more visible and concrete benefits sooner
 As you get closer to having a repeatable, reliable process
for delivering software, CD will “magically” happen
33© Copyright 2015 Coveros, Inc. All rights reserved.
My Advice
 Read Continuous Delivery and The Phoenix Project
34© Copyright 2015 Coveros, Inc. All rights reserved.
Missed Opportunities
35© 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
36© Copyright 2015 Coveros, Inc. All rights reserved.
The Tool Chain
37© 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
38© 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
39© Copyright 2015 Coveros, Inc. All rights reserved.
Questions?
Gene Gotimer
gene.gotimer@coveros.com
@CoverosGene

More Related Content

What's hot

Integrating Automated Testing into DevOps
Integrating Automated Testing into DevOpsIntegrating Automated Testing into DevOps
Integrating Automated Testing into DevOpsTechWell
 
Attacking Pipelines--Security meets Continuous Delivery
Attacking Pipelines--Security meets Continuous DeliveryAttacking Pipelines--Security meets Continuous Delivery
Attacking Pipelines--Security meets Continuous DeliveryJames Wickett
 
DevOps and the Importance of Single Source Code Repos 
DevOps and the Importance of Single Source Code Repos DevOps and the Importance of Single Source Code Repos 
DevOps and the Importance of Single Source Code Repos Perforce
 
How Do We Better Sell DevOps? - PuppetConf 2013
How Do We Better Sell DevOps? - PuppetConf 2013How Do We Better Sell DevOps? - PuppetConf 2013
How Do We Better Sell DevOps? - PuppetConf 2013Puppet
 
A beginners guide to scaling DevOps
A beginners guide to scaling DevOpsA beginners guide to scaling DevOps
A beginners guide to scaling DevOpsEficode
 
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...DevOpsDays Tel Aviv
 
DevOps 101 for Government
DevOps 101 for GovernmentDevOps 101 for Government
DevOps 101 for GovernmentSanjeev Sharma
 
Edit Privacy Settings Analytics FREE Collect Leads Micro Focus DevOps Drive-i...
Edit Privacy Settings Analytics FREE Collect Leads Micro Focus DevOps Drive-i...Edit Privacy Settings Analytics FREE Collect Leads Micro Focus DevOps Drive-i...
Edit Privacy Settings Analytics FREE Collect Leads Micro Focus DevOps Drive-i...Serena Software
 
Continuous Delivery in a Legacy Shop—One Step at a Time
Continuous Delivery in a Legacy Shop—One Step at a TimeContinuous Delivery in a Legacy Shop—One Step at a Time
Continuous Delivery in a Legacy Shop—One Step at a TimeTechWell
 
from 0 to continuous delivery in 30 minutes
from 0 to continuous delivery in 30 minutesfrom 0 to continuous delivery in 30 minutes
from 0 to continuous delivery in 30 minutesAgileSparks
 
Micro Focus DevOps Drive-in with Gary Gruver - Starting and Scaling DevOps in...
Micro Focus DevOps Drive-in with Gary Gruver - Starting and Scaling DevOps in...Micro Focus DevOps Drive-in with Gary Gruver - Starting and Scaling DevOps in...
Micro Focus DevOps Drive-in with Gary Gruver - Starting and Scaling DevOps in...Serena Software
 
DevSec Delight with Compliance as Code - Matt Ray - AgileNZ 2017
DevSec Delight with Compliance as Code - Matt Ray - AgileNZ 2017DevSec Delight with Compliance as Code - Matt Ray - AgileNZ 2017
DevSec Delight with Compliance as Code - Matt Ray - AgileNZ 2017AgileNZ Conference
 
Antithesis of dev ops
Antithesis of dev opsAntithesis of dev ops
Antithesis of dev opsAvi Cavale
 
Lessons from DevOps: Taking DevOps practices into your AppSec Life
Lessons from DevOps: Taking DevOps practices into your AppSec LifeLessons from DevOps: Taking DevOps practices into your AppSec Life
Lessons from DevOps: Taking DevOps practices into your AppSec LifeMatt Tesauro
 
Bjorn Rabenstein. SRE, DevOps, Google, and you
Bjorn Rabenstein. SRE, DevOps, Google, and youBjorn Rabenstein. SRE, DevOps, Google, and you
Bjorn Rabenstein. SRE, DevOps, Google, and youIT Arena
 
DevOps Transition Strategies
DevOps Transition StrategiesDevOps Transition Strategies
DevOps Transition StrategiesAlec Lazarescu
 
One trunk one pipeline one truth
One trunk one pipeline one truthOne trunk one pipeline one truth
One trunk one pipeline one truthPaul Boocock
 
What are the Cool Kids Doing With Continuous Delivery?
What are the Cool Kids Doing With Continuous Delivery?What are the Cool Kids Doing With Continuous Delivery?
What are the Cool Kids Doing With Continuous Delivery?CA Technologies
 

What's hot (20)

Integrating Automated Testing into DevOps
Integrating Automated Testing into DevOpsIntegrating Automated Testing into DevOps
Integrating Automated Testing into DevOps
 
Attacking Pipelines--Security meets Continuous Delivery
Attacking Pipelines--Security meets Continuous DeliveryAttacking Pipelines--Security meets Continuous Delivery
Attacking Pipelines--Security meets Continuous Delivery
 
DevOps and the Importance of Single Source Code Repos 
DevOps and the Importance of Single Source Code Repos DevOps and the Importance of Single Source Code Repos 
DevOps and the Importance of Single Source Code Repos 
 
How Do We Better Sell DevOps? - PuppetConf 2013
How Do We Better Sell DevOps? - PuppetConf 2013How Do We Better Sell DevOps? - PuppetConf 2013
How Do We Better Sell DevOps? - PuppetConf 2013
 
A beginners guide to scaling DevOps
A beginners guide to scaling DevOpsA beginners guide to scaling DevOps
A beginners guide to scaling DevOps
 
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
 
The Devops Handbook
The Devops HandbookThe Devops Handbook
The Devops Handbook
 
DevOps 101 for Government
DevOps 101 for GovernmentDevOps 101 for Government
DevOps 101 for Government
 
Edit Privacy Settings Analytics FREE Collect Leads Micro Focus DevOps Drive-i...
Edit Privacy Settings Analytics FREE Collect Leads Micro Focus DevOps Drive-i...Edit Privacy Settings Analytics FREE Collect Leads Micro Focus DevOps Drive-i...
Edit Privacy Settings Analytics FREE Collect Leads Micro Focus DevOps Drive-i...
 
Devops: A History
Devops: A HistoryDevops: A History
Devops: A History
 
Continuous Delivery in a Legacy Shop—One Step at a Time
Continuous Delivery in a Legacy Shop—One Step at a TimeContinuous Delivery in a Legacy Shop—One Step at a Time
Continuous Delivery in a Legacy Shop—One Step at a Time
 
from 0 to continuous delivery in 30 minutes
from 0 to continuous delivery in 30 minutesfrom 0 to continuous delivery in 30 minutes
from 0 to continuous delivery in 30 minutes
 
Micro Focus DevOps Drive-in with Gary Gruver - Starting and Scaling DevOps in...
Micro Focus DevOps Drive-in with Gary Gruver - Starting and Scaling DevOps in...Micro Focus DevOps Drive-in with Gary Gruver - Starting and Scaling DevOps in...
Micro Focus DevOps Drive-in with Gary Gruver - Starting and Scaling DevOps in...
 
DevSec Delight with Compliance as Code - Matt Ray - AgileNZ 2017
DevSec Delight with Compliance as Code - Matt Ray - AgileNZ 2017DevSec Delight with Compliance as Code - Matt Ray - AgileNZ 2017
DevSec Delight with Compliance as Code - Matt Ray - AgileNZ 2017
 
Antithesis of dev ops
Antithesis of dev opsAntithesis of dev ops
Antithesis of dev ops
 
Lessons from DevOps: Taking DevOps practices into your AppSec Life
Lessons from DevOps: Taking DevOps practices into your AppSec LifeLessons from DevOps: Taking DevOps practices into your AppSec Life
Lessons from DevOps: Taking DevOps practices into your AppSec Life
 
Bjorn Rabenstein. SRE, DevOps, Google, and you
Bjorn Rabenstein. SRE, DevOps, Google, and youBjorn Rabenstein. SRE, DevOps, Google, and you
Bjorn Rabenstein. SRE, DevOps, Google, and you
 
DevOps Transition Strategies
DevOps Transition StrategiesDevOps Transition Strategies
DevOps Transition Strategies
 
One trunk one pipeline one truth
One trunk one pipeline one truthOne trunk one pipeline one truth
One trunk one pipeline one truth
 
What are the Cool Kids Doing With Continuous Delivery?
What are the Cool Kids Doing With Continuous Delivery?What are the Cool Kids Doing With Continuous Delivery?
What are the Cool Kids Doing With Continuous Delivery?
 

Similar to Continuous Delivery Legacy Shop One Step Time

Experiences Bringing CD to a DoD Project
Experiences Bringing CD to a DoD ProjectExperiences Bringing CD to a DoD Project
Experiences Bringing CD to a DoD ProjectGene Gotimer
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build AutomationHeiswayi Nrird
 
From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]Dynatrace
 
Hyd virtual meetupslides11jul
Hyd virtual meetupslides11julHyd virtual meetupslides11jul
Hyd virtual meetupslides11julSantosh Ojha
 
Bringing CD to the DoD
Bringing CD to the DoDBringing CD to the DoD
Bringing CD to the DoDGene Gotimer
 
Harman deepak v - agile on steriod - dev ops led transformation
Harman  deepak v - agile on steriod - dev ops led transformationHarman  deepak v - agile on steriod - dev ops led transformation
Harman deepak v - agile on steriod - dev ops led transformationXebia India
 
Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Stephen Ritchie
 
Improving Quality through Continuous Integration - A case study of CollabNet
Improving Quality through Continuous Integration - A case study of CollabNetImproving Quality through Continuous Integration - A case study of CollabNet
Improving Quality through Continuous Integration - A case study of CollabNetVenkat Janardhanam, MS, MBA
 
Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...
Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...
Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...Simon Storm
 
Continuous delivery @ hi q
Continuous delivery @ hi qContinuous delivery @ hi q
Continuous delivery @ hi qTomas Riha
 
(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should knowRichard Cheng
 
Better Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous DeliveryBetter Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous DeliveryGene Gotimer
 
Better Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous Delivery Better Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous Delivery Coveros, Inc.
 
Successfully Implementing DEV-SEC-OPS in the Cloud
Successfully Implementing DEV-SEC-OPS in the CloudSuccessfully Implementing DEV-SEC-OPS in the Cloud
Successfully Implementing DEV-SEC-OPS in the CloudAmazon Web Services
 
Dev opsandsecurity owasp
Dev opsandsecurity owaspDev opsandsecurity owasp
Dev opsandsecurity owaspHelen Bravo
 
DevOps & Security: Here & Now
DevOps & Security: Here & NowDevOps & Security: Here & Now
DevOps & Security: Here & NowCheckmarx
 
Using Assessment Tools on ICS (English)
Using Assessment Tools on ICS (English)Using Assessment Tools on ICS (English)
Using Assessment Tools on ICS (English)Digital Bond
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueDevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueRapidValue
 
Agile Engineering Best Practices by Richard Cheng
Agile Engineering Best Practices by Richard ChengAgile Engineering Best Practices by Richard Cheng
Agile Engineering Best Practices by Richard ChengExcella
 
Dev ops and safety critical systems
Dev ops and safety critical systemsDev ops and safety critical systems
Dev ops and safety critical systemsLen Bass
 

Similar to Continuous Delivery Legacy Shop One Step Time (20)

Experiences Bringing CD to a DoD Project
Experiences Bringing CD to a DoD ProjectExperiences Bringing CD to a DoD Project
Experiences Bringing CD to a DoD Project
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build Automation
 
From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]
 
Hyd virtual meetupslides11jul
Hyd virtual meetupslides11julHyd virtual meetupslides11jul
Hyd virtual meetupslides11jul
 
Bringing CD to the DoD
Bringing CD to the DoDBringing CD to the DoD
Bringing CD to the DoD
 
Harman deepak v - agile on steriod - dev ops led transformation
Harman  deepak v - agile on steriod - dev ops led transformationHarman  deepak v - agile on steriod - dev ops led transformation
Harman deepak v - agile on steriod - dev ops led transformation
 
Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015
 
Improving Quality through Continuous Integration - A case study of CollabNet
Improving Quality through Continuous Integration - A case study of CollabNetImproving Quality through Continuous Integration - A case study of CollabNet
Improving Quality through Continuous Integration - A case study of CollabNet
 
Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...
Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...
Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...
 
Continuous delivery @ hi q
Continuous delivery @ hi qContinuous delivery @ hi q
Continuous delivery @ hi q
 
(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know
 
Better Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous DeliveryBetter Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous Delivery
 
Better Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous Delivery Better Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous Delivery
 
Successfully Implementing DEV-SEC-OPS in the Cloud
Successfully Implementing DEV-SEC-OPS in the CloudSuccessfully Implementing DEV-SEC-OPS in the Cloud
Successfully Implementing DEV-SEC-OPS in the Cloud
 
Dev opsandsecurity owasp
Dev opsandsecurity owaspDev opsandsecurity owasp
Dev opsandsecurity owasp
 
DevOps & Security: Here & Now
DevOps & Security: Here & NowDevOps & Security: Here & Now
DevOps & Security: Here & Now
 
Using Assessment Tools on ICS (English)
Using Assessment Tools on ICS (English)Using Assessment Tools on ICS (English)
Using Assessment Tools on ICS (English)
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueDevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
 
Agile Engineering Best Practices by Richard Cheng
Agile Engineering Best Practices by Richard ChengAgile Engineering Best Practices by Richard Cheng
Agile Engineering Best Practices by Richard Cheng
 
Dev ops and safety critical systems
Dev ops and safety critical systemsDev ops and safety critical systems
Dev ops and safety critical systems
 

More from Gene Gotimer

A Developer’s Guide to Kubernetes Security
A Developer’s Guide to Kubernetes SecurityA Developer’s Guide to Kubernetes Security
A Developer’s Guide to Kubernetes SecurityGene Gotimer
 
How I Learned to Stop Worrying and Love Legacy Code
How I Learned to Stop Worrying and Love Legacy CodeHow I Learned to Stop Worrying and Love Legacy Code
How I Learned to Stop Worrying and Love Legacy CodeGene Gotimer
 
Ten Ways To Doom Your DevOps
Ten Ways To Doom Your DevOpsTen Ways To Doom Your DevOps
Ten Ways To Doom Your DevOpsGene Gotimer
 
Keeping Your Kubernetes Cluster Secure
Keeping Your Kubernetes Cluster SecureKeeping Your Kubernetes Cluster Secure
Keeping Your Kubernetes Cluster SecureGene Gotimer
 
Keeping your Kubernetes Cluster Secure
Keeping your Kubernetes Cluster SecureKeeping your Kubernetes Cluster Secure
Keeping your Kubernetes Cluster SecureGene Gotimer
 
Explain DevOps To Me Like I’m Five: DevOps for Managers
Explain DevOps To Me Like I’m Five: DevOps for ManagersExplain DevOps To Me Like I’m Five: DevOps for Managers
Explain DevOps To Me Like I’m Five: DevOps for ManagersGene Gotimer
 
Keeping your Kubernetes Cluster Secure
Keeping your Kubernetes Cluster SecureKeeping your Kubernetes Cluster Secure
Keeping your Kubernetes Cluster SecureGene Gotimer
 
Creative Solutions to Already Solved Problems II
Creative Solutions to Already Solved Problems IICreative Solutions to Already Solved Problems II
Creative Solutions to Already Solved Problems IIGene Gotimer
 
Creative Solutions to Already Solved Problems
Creative Solutions to Already Solved ProblemsCreative Solutions to Already Solved Problems
Creative Solutions to Already Solved ProblemsGene Gotimer
 
Get to Green: How to Safely Refactor Legacy Code
Get to Green: How to Safely Refactor Legacy CodeGet to Green: How to Safely Refactor Legacy Code
Get to Green: How to Safely Refactor Legacy CodeGene Gotimer
 
DevOps for Leadership
DevOps for LeadershipDevOps for Leadership
DevOps for LeadershipGene Gotimer
 
Pyramid Discussion: DevOps Adoption in Large, Slow Organizations
Pyramid Discussion: DevOps Adoption in Large, Slow OrganizationsPyramid Discussion: DevOps Adoption in Large, Slow Organizations
Pyramid Discussion: DevOps Adoption in Large, Slow OrganizationsGene Gotimer
 
A better faster pipeline for software delivery, even in the government
A better faster pipeline for software delivery, even in the governmentA better faster pipeline for software delivery, even in the government
A better faster pipeline for software delivery, even in the governmentGene Gotimer
 
Building the Pipeline of My Dreams
Building the Pipeline of My DreamsBuilding the Pipeline of My Dreams
Building the Pipeline of My DreamsGene Gotimer
 
Tests Your Pipeline Might Be Missing
Tests Your Pipeline Might Be MissingTests Your Pipeline Might Be Missing
Tests Your Pipeline Might Be MissingGene Gotimer
 
A Definition of Done for DevSecOps
A Definition of Done for DevSecOpsA Definition of Done for DevSecOps
A Definition of Done for DevSecOpsGene Gotimer
 
A Better, Faster Pipeline for Software Delivery
A Better, Faster Pipeline for Software DeliveryA Better, Faster Pipeline for Software Delivery
A Better, Faster Pipeline for Software DeliveryGene Gotimer
 
Open Source Security Tools for the Pipeline
Open Source Security Tools for the PipelineOpen Source Security Tools for the Pipeline
Open Source Security Tools for the PipelineGene Gotimer
 
Which Development Metrics Should I Watch?
Which Development Metrics Should I Watch?Which Development Metrics Should I Watch?
Which Development Metrics Should I Watch?Gene Gotimer
 
Add Security Testing Tools to Your Delivery Pipeline
Add Security Testing Tools to Your Delivery PipelineAdd Security Testing Tools to Your Delivery Pipeline
Add Security Testing Tools to Your Delivery PipelineGene Gotimer
 

More from Gene Gotimer (20)

A Developer’s Guide to Kubernetes Security
A Developer’s Guide to Kubernetes SecurityA Developer’s Guide to Kubernetes Security
A Developer’s Guide to Kubernetes Security
 
How I Learned to Stop Worrying and Love Legacy Code
How I Learned to Stop Worrying and Love Legacy CodeHow I Learned to Stop Worrying and Love Legacy Code
How I Learned to Stop Worrying and Love Legacy Code
 
Ten Ways To Doom Your DevOps
Ten Ways To Doom Your DevOpsTen Ways To Doom Your DevOps
Ten Ways To Doom Your DevOps
 
Keeping Your Kubernetes Cluster Secure
Keeping Your Kubernetes Cluster SecureKeeping Your Kubernetes Cluster Secure
Keeping Your Kubernetes Cluster Secure
 
Keeping your Kubernetes Cluster Secure
Keeping your Kubernetes Cluster SecureKeeping your Kubernetes Cluster Secure
Keeping your Kubernetes Cluster Secure
 
Explain DevOps To Me Like I’m Five: DevOps for Managers
Explain DevOps To Me Like I’m Five: DevOps for ManagersExplain DevOps To Me Like I’m Five: DevOps for Managers
Explain DevOps To Me Like I’m Five: DevOps for Managers
 
Keeping your Kubernetes Cluster Secure
Keeping your Kubernetes Cluster SecureKeeping your Kubernetes Cluster Secure
Keeping your Kubernetes Cluster Secure
 
Creative Solutions to Already Solved Problems II
Creative Solutions to Already Solved Problems IICreative Solutions to Already Solved Problems II
Creative Solutions to Already Solved Problems II
 
Creative Solutions to Already Solved Problems
Creative Solutions to Already Solved ProblemsCreative Solutions to Already Solved Problems
Creative Solutions to Already Solved Problems
 
Get to Green: How to Safely Refactor Legacy Code
Get to Green: How to Safely Refactor Legacy CodeGet to Green: How to Safely Refactor Legacy Code
Get to Green: How to Safely Refactor Legacy Code
 
DevOps for Leadership
DevOps for LeadershipDevOps for Leadership
DevOps for Leadership
 
Pyramid Discussion: DevOps Adoption in Large, Slow Organizations
Pyramid Discussion: DevOps Adoption in Large, Slow OrganizationsPyramid Discussion: DevOps Adoption in Large, Slow Organizations
Pyramid Discussion: DevOps Adoption in Large, Slow Organizations
 
A better faster pipeline for software delivery, even in the government
A better faster pipeline for software delivery, even in the governmentA better faster pipeline for software delivery, even in the government
A better faster pipeline for software delivery, even in the government
 
Building the Pipeline of My Dreams
Building the Pipeline of My DreamsBuilding the Pipeline of My Dreams
Building the Pipeline of My Dreams
 
Tests Your Pipeline Might Be Missing
Tests Your Pipeline Might Be MissingTests Your Pipeline Might Be Missing
Tests Your Pipeline Might Be Missing
 
A Definition of Done for DevSecOps
A Definition of Done for DevSecOpsA Definition of Done for DevSecOps
A Definition of Done for DevSecOps
 
A Better, Faster Pipeline for Software Delivery
A Better, Faster Pipeline for Software DeliveryA Better, Faster Pipeline for Software Delivery
A Better, Faster Pipeline for Software Delivery
 
Open Source Security Tools for the Pipeline
Open Source Security Tools for the PipelineOpen Source Security Tools for the Pipeline
Open Source Security Tools for the Pipeline
 
Which Development Metrics Should I Watch?
Which Development Metrics Should I Watch?Which Development Metrics Should I Watch?
Which Development Metrics Should I Watch?
 
Add Security Testing Tools to Your Delivery Pipeline
Add Security Testing Tools to Your Delivery PipelineAdd Security Testing Tools to Your Delivery Pipeline
Add Security Testing Tools to Your Delivery Pipeline
 

Recently uploaded

Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 

Recently uploaded (20)

Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 

Continuous Delivery Legacy Shop One Step Time

  • 1. © 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. 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. 3© Copyright 2015 Coveros, Inc. All rights reserved. Selected Clients
  • 4. 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. 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. 7© Copyright 2015 Coveros, Inc. All rights reserved. The Problem “But it works on my machine!”
  • 8. 8© Copyright 2015 Coveros, Inc. All rights reserved. The Problem “But it works on my machine!” = High risk deploys
  • 9. 9© Copyright 2015 Coveros, Inc. All rights reserved. DevOps is…
  • 10. 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. 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. 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. 13© Copyright 2015 Coveros, Inc. All rights reserved. The Approach
  • 14. 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. 15© Copyright 2015 Coveros, Inc. All rights reserved. The Journey
  • 16. 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  Ant, Maven  PMD, FindBugs, Checkstyle  Cobertura  Later added Python tools  Explained the advantages later
  • 17. 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. 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. 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. 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 – every system (DB, Web server, SVN server, ALM tool) used the same puppet apply command
  • 21. 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. 22© Copyright 2015 Coveros, Inc. All rights reserved. 4: Security Testing Found 0 vulnerabilities! Perfectly secure! Yeah!
  • 23. 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. 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. 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. 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, and 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. 27© Copyright 2015 Coveros, Inc. All rights reserved. The Results
  • 28. 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. 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. 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. 31© Copyright 2015 Coveros, Inc. All rights reserved. My Advice
  • 32. 32© Copyright 2015 Coveros, Inc. All rights reserved. My Advice  DO NOT DO DEVOPS or CD! – At least, don’t set out with a goal to do DevOps or Continuous Delivery  Set out to – remove road blocks and bottlenecks – fix quality issues – be more responsive to change – etc.  Incremental adoption – less culture shock – more visible and concrete benefits sooner  As you get closer to having a repeatable, reliable process for delivering software, CD will “magically” happen
  • 33. 33© Copyright 2015 Coveros, Inc. All rights reserved. My Advice  Read Continuous Delivery and The Phoenix Project
  • 34. 34© Copyright 2015 Coveros, Inc. All rights reserved. Missed Opportunities
  • 35. 35© 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
  • 36. 36© Copyright 2015 Coveros, Inc. All rights reserved. The Tool Chain
  • 37. 37© 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
  • 38. 38© 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
  • 39. 39© Copyright 2015 Coveros, Inc. All rights reserved. Questions? Gene Gotimer gene.gotimer@coveros.com @CoverosGene