AtAutoma tdTted Testi ng and DevOps for Continuous Delivery

Dan Gahafer July 2012 A Combat Support Agency What is DevOps? • The integration of with operations to enable the rapid delivery of new capabilities • Increase release frequency while reducing risk by: – Collaborating across organization – Reducing change scope – Increasing release coordination – Automating!!!

Deploy is the new Build

2 A Combat Support Agency Role of Test • Despite the name, Test is not excluded

Testers & Developer Sys Admins & Testers • Without integrated Test, DevOps will fail! • Test expands and adapts to support this constant motion – integrated with development and operations teams – graduate to scriptable test cases – support automation

Better, faster, more comprehensive coverage

3 A Combat Support Agency Continuous Improvement

Agile Software Continuous Continuous Development Integration Delivery

Software Jenkins Puppet Forge.mil CDP

4 A Combat Support Agency Distributed Dev Challenge TODAY:

• Siloed development environments Shared Asset • Expensive and time consuming start-up Libraries & Repositories • Limit ed exposure, sh ari ng, or re-use Tester • Duplication of effort Developer

Developer

Shared Test & Development Certifier Tools/Services/Environments User

GOAL: • Agile development and testing • Cross-program sharing: software and services • Early and continuous collaboration • Integrated approach to development life cycle • Extensible platform to support delivery of partner capabilities

5 A Combat Support Agency Application Delivery • Requirements Management • Source Code Management

Code • Continuous Integration Build TtTest

• Cloud / Environment Management

• Configuration Management

• Package Management

6 A Combat Support Agency Managing Chaos

7 A Combat Support Agency Continuous Delivery Principles – Software development should be a fast, repeatable process. – Versioning does not apply just to code, but to (almost) everything needed to build, deploy, test and release. – To ‘build quality in’, testing should be an integral part of the software delivery process. – Agility requires continuous (actionable) feedback. – Automate build and release with delivery pipelines, turning integrated code into production software.

8 A Combat Support Agency Forge.mil Supports CtiContinuous DliDelivery

Future: Every 1‐2 DiDesign Dev weeks (or less) Test Deploy New Capabilities: On‐demand provisioning Policy‐driven governance and automation Seamless environment promotion Current: 2‐6 week Continuous testing release cycles services Design Development Test Deploy

9 A Combat Support Agency Continuous Improvement

Agile Software Continuous Continuous Development Integration Delivery

Software Forge Jenkins Puppet Forge.mil Forge.mil CDP Testing Services

10 A Combat Support Agency Forge.mil Testing Services Forge.mil Testing Services doesn’t just talk about “What to do” and goes beyond showing “How to do” by providing the tooling to support & enable the industry best practices of Agile Development Continuous Integration Continuous Delivery & Deployment

11 A Combat Support Agency What it Does Forge.mil Testing Services empowers the user with the ability to … C2 System C2 System – collect and share software systems building blocks – use these to create simple to complex scenarios of virtual and physical systems, devices, and appliances

– install and configure multiple software C2 System applications – pull, build & install source code – deploy these scenarios into a cloud resource – run tests against a deployment – save, manage and reuse all the compp,yonents, systems and scenarios Virtual Machines Hardware Operating System Software Configurations

 

Test Assets Scenarios Source Code Virtual Services Devices Asset Library

12 A Combat Support Agency Use Case: DMO DIB User: DCGS-DIB Integration Team Challenge: “I need three DIB v3.0 nodes federated tdto reproduce an itiingestion error repor tdbPORted by a POR.” Current Effort:

Virtual DTL VM Work Steps Bare Metal Machines Library Identify node types & availability 30 min 15 min 15 min

Analyze/adjust resources 30 min 2‐5 hours 35‐50 min

Build nodes/validate 7‐9 3‐4 40 min/node hours/node hours/node Configure environment and test 60 min 30 min 30 min

Totals 23‐29 hours 12‐18 hours 3 ½ hours

13 A Combat Support Agency Use Case: DIB Solution

• Build DIB nodes on demand DIB Test Data • Optionally include test data

DIB MDF • Deploy multiple instances DIB Customization Nodes Total Deploy Time 137 minutes JBOSS 241 minutes JavaJRE 1.6_u31JRE 346 minutes Java JDK • Exchange components DIB Prerequisites • Include source code Oracle 11g • Use more tools (test, scanning) Red Hat Linux • Leverage other services

Result is faster, more comprehensive and lower cost development, testing and deployment of software applications. A Combat Support Agency Use Case: Forge.mil Ops User: Forge.mil Operations Team Challenge: “I need to validate March Forge.mil drop fthEiit”from the Engineering team” Current Effort:

Work Steps Effort TestForge Baseline string 8 hours 0.5 hours Integrate TeamForge Components (manual) 8 hours 0.5 hours Integrate CommunityForge Components (auto) 3 hours 0.5 hours Execute functional tests 16 hours 4 hours Mitigate test findings and re‐test 8 hours 6 hours Execute and evaluate Retina scans 3 hours 0.5 hours Execute load tests 12 hours 4 hours Total 58 Hours 16 Hours

15 A Combat Support Agency Moving Forward

Information Assurance Scanning Interoperability Testing On -demand

Platform as a Service

Training Cloud Management Scenario Analysis

16 A Combat Support Agency Contact Info

Email us at [email protected]

Follow us on Twitter @ForgeMil

Join the Forge.mil Group on milBook

Join the Forge. mil LinkedIn Group

Sign up for Forge.mil updates at http://www.disa.mil/forge/

17 A Combat Support Agency

Qti?Questions?