This document summarizes MITRE's adoption of DevOps practices. It describes their old development and deployment process, how they defined success criteria with DevOps, and their implementation journey from 2011 to 2012. This included building automated builds, deployments, implementing continuous integration and delivery practices, and scaling up to support more applications. As a result, their average deployment cycle time decreased by 40% and throughput increased by 38% while freeing up staff. They continue working to change mindsets, incorporate more applications, and achieve full continuous delivery.
9. Acceptance Criteria MITRE
I can live
with that.
Single command to build app given an SVN revision #
Single command to deploy to environment given an SVN revision #
Build once. No development tools utilized on target environment.
Deploy to test environment is self-service and can be done by any user without handoffs (no
SA, DBA) or additional passwords
Deploy to PROD is done by release team without handoffs (no SA, DBA)
Prior to deploying validates compliance with SONAR quality reports and code coverage
Can determine what SVN revision is deployed in each environment, by who and when
In PROD, on error or abort application is restored to prior state
No additional instruction documentation is needed.
In phase 1, utilize existing request system for approvals
System validation is manual and outside of scope
10. MITRE
The Launch – May 2011
Build and Release
Engineer
Sys
Admin
DevOps
Java, .NET Developers DBA
DevOps
Everyone
on Board!
12. Course Correction – April 2012 MITRE
Got Training Brought in Expertise
Freed Up Resources A New Plan!
13. MITRE
Our DevOps Solution– June 2012
1 Developer develops commits code to repository
2 Commits automatically trigger builds
3 Depending on environment developer or
Release Engineer deploys build
Source Code Repository
2
Build Workflow
Checkout
Compile
Run Unit Tests
Run Code Analysis
Store Artifacts
Deploy Workflow
Cleanup Environment
Backup Environment
Deploy Binaries
Execute Rollback & Restore
Artifact Repository
Commit
Code &
Build
Files
Application &
Build Files
Release
Artifacts
Release
Artifacts
Run
Build
(revision #)
Run
Deploy
(build #)
Repeated for each target
Environment using the
same Build
Build/CI Server
1
3
* Developers can deploy to Non-Production Environments
CI
DEV
Test
Prod
DEV OPS
14. Scaling Up – June 2012 MITRE
Its working
Woo Hoooo!
18. MITRE
Water cooler Talk
Snackfest
Formal briefings to
CIO and Senior Mgt
Visible Metrics
Marketing
19. MITRE The Results
• 68 applications in system
• Multiple Platforms
o ANT, Maven, Gradle
o SVN, GIT
o JAVA, .Net, NodeJS
o Oracle, MySQL, SQL Server,
MongoDB
• Avg Cycle Time = 9 days (-40%)
(range 2 mins – 483 days)
• ~75% of deploys are automated
o # Deploys/year = 3555
o Auto = 2665
o Manual = 890 (-65%)
o 38% Throughput Increase
• Freed up 2.5 deployment staff
20. MITRE
The Future: Continuous Delivery
Build & Release
Engineer
Sys
Admin
DevaOps
Java, .NET Developers DBA
DevaOps
Ops
Automation
Engineer
Test
Automation
Engineer
Let’s do it
again
Pleeease!
21. Bill & Aimee’s Excellent MITRE
DevOps Journey
Aug ’09:
Old
Process
July ’10:
Confront
May ’11:
Success
Defined,
Launch
Jun ’12:
Success!
• Anyone can do it
• Know where you want to go and why
• Patience - it takes time for change
• Education, education, education
• Use Agile (minimal product, iterations, product demonstrations)
Apr ’12:
Got Help
Today:
Results
22. MITRE
What We Need Help With
• Changing skillsets and mindsets to:
– Support infrastructure and test automation
– Break up silos and organize into cross-functional delivery teams
• Incorporating ERP and large COTS (or non-typical, non-web) applications into a
DevOps model
23. Thanks! MITRE
Aimee Bechtle
abechtle@mitre.org
Bill Donaldson
wbd@mitre.org
@wbdonaldson