building a metrics-optimized pipeline...2. in order to use these metrics to improve your software...
TRANSCRIPT
1 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
Andrew Phillips, VP of ProductsAndreas Grabner, Performance Advocate
Building a Metrics-Optimized Pipeline
2 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
1 The “Unicorns” • Recap from Velocity 2015• Why we don’t have to be like Facebook
2 What Unicorns do well • Speed through Automation• Quality through Metrics
3 Which Metrics and How • Service, Business & User Metrics• Pre-Prod: From Integration- & Load Tests• Prod: From Real Users
4 Dynatrace & XL Release • Building a Metric-Driven Pipeline
agenda
3 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
U N I C O R N S T A T U S
4 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
700 deployments / year
10 + deployments / day
50 – 60 deployments / day
Every 11.6 seconds
5 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
6 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
• Waterfall Agile: 3 years
• 220 Apps - 1 deployment per month
“EVERYONE can do Continuous Delivery”
“Every manual tester does AUTOMATION”
“WE DON’T LOG BUGS – WE FIX THEM!”
Measures Built-In, Visible to Everyone
Promote your Wins, Educate your Peers
7 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
CHALLENGE
8 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
9 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
Fail Faster!?
10 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
It‘s not about blind automation of pushing more
bad code through a shiny pipeline
11 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
One goal: deliver better features to customers faster
Two fundamental components: speed + quality
12 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
OK, OK, …
But how?
13 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE13
#1 Speedend-to-end automation of the software delivery process
14 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
Automate, automate and automate
15 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
• Continuous Integration
• On-demand environment provisioning
• Automated deployments
• Automated test data management
• Continuous Delivery pipeline orchestration
• ...
End-to-end automation of the software delivery process
16 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
• „It‘s just work“ - not easy, but a known problem
• We‘re not all unicorns – goal is to deploy as often as necessary, not as often as theoretically possible
• Metrics-driven improvement, also for your process: define goals, measure current state, address bottlenecks
End-to-end automation of the software delivery process
The data tells you:start here
17 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE17
#2 QualityMetrics-based GO or No-GO decisions
18 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
Insufficient Focus on Quality
19 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
Making Quality a first-class citizen
„Too hard“
„we‘ll get round to this later“
„not cool enough“
22 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
Landing Page Example: Content Delivery Metrics 282! Objects
on that page9.68MB Page Size
8.8s Page Load Time
Most objects are images delivered from your main
domain
Very long Connect time (1.8s) to your CDN
23 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
Search Example: Architectural Metrics
26.7sExecution Time 33! Calls to the
same Web Service
171! SQL Queries through LINQ by this Web Service – request
similar data for each call
Architecture Violation: Direct access to DB instead from frontend logic
24 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
Marketing Campaign: Business Metrics
25 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
1. Not just in production!
2. In order to use these metrics to improve your software delivery process, you need to measure as early as possible in your development and delivery process
3. Fast feedback is both more effective and cheaper at identifying and fixing problems
4. Just reuse what you already have: Automated “Functional” Tests – but convert them into Architectural, Performance and Scalability Validation Tests
When and How shall we measure?
26 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
Measures from your Tests in Action
12 0 120ms
3 1 68ms
Build 20 testPurchase OK
testSearch OK
Build 17 testPurchase OK
testSearch OK
Build 18 testPurchase FAILED
testSearch OK
Build 19 testPurchase OK
testSearch OK
Build # Test Case Status # SQL # Excep CPU
12 0 120ms
3 1 68ms
12 5 60ms
3 1 68ms
75 0 230ms
3 1 68ms
Test & Monitoring Framework Results Architectural Data
We identified a regresesion
Problem solved
Exceptions probably reason for
failed testsProblem fixed but now we have an
architectural regression
Problem fixed but now we have an
architectural regressionNow we have the functional and
architectural confidence
Let’s look behind the
scenes
27 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
When shall we measure?
Build/CI Dev Integration
Go-live Analysis
Service-level Service-level
Business application
Service-level
Business application
User experience
Feedback loop!
28 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE28
Metric-Driven Continuous DeliveryWith Dynatrace & XL Release
30 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
Capturing and Analyzing Test Executions with Dynatrace
31 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
Unit/Integration
Tests for Integration and Performance Pipeline Phase
Performance
Web API
Browser-based
Load
32 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
You already capture Metrics for ALL these tests#1: Test captured as PurePath
#2: API Call to Hibernate
#3: SQL Calls
33 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
#1: Analyzing every Unit & Integration test
#2: Metrics for each test
#3: Detecting regression based on measure
Unit/Integration Tests can also be baselined!
34 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
Unit/Integration Tests: Build-by-Build Quality View
Build Quality Overview in Dynatrace or Jenkins
Build Quality Overview in Dynatrace or Jenkins
35 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
Load Tests: We can find hotspots per test easily
#1: Analyze Load Testing Results by Timer Name, Script Name, …
#2: Which TIERS have a problem?
#3: Is it the DATABASE?#4: How HEALTHY is the
JVM and the Host?
#5: Do we have any ERRORS?
#6: LOAD vs. RESPONSE Time over time?
36 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
Load Tests: We can compare two runs
Did we get better or worse? DB, Web Requests, API, …
Did we get better or worse? DB, Web Requests, API, …
37 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
Load Tests: Pull Results into your Pipeline / Build Server
Embed your Load Testing Results in Jenkins
38 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
Production Data: Real User & Application Monitoring
39 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
XebiaLabs XL Release allows you to integrate Dynatracequality metrics into your overall Continuous Delivery pipeline
• Automatically verify architectural quality during your integration testing
• Trigger and review performance monitoring results
• Automatically register releases in Dynatrace to allow for “before/after” comparisons of user behaviour
• Deliver better software and close the Continuous Delivery feedback loop!
Continuous Delivery Pipeline Integration
40 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
Orchestrating your Delivery Pipeline with XL Release
Insight, visibility & control into
people and tools
41 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
Orchestrating your Delivery Pipeline with XL Release
ArchitecturalQuality Metrics from
Unit & Integration Tests
Performance Metrics from Load Tests
Deployment Markerto support
Production Monitoring
Review user behaviorThrough UEM Data
42 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
Orchestrating your Delivery Pipeline with XL Release
Use quality metrics toautomatically make
decisions
43 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
Orchestrating your Delivery Pipeline with XL Release
Integrate qualityawareness into your
delivery pipeline
44 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
Download XL Release Dynatrace Plugin from GitHub
45 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
46 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
1. Continuous Delivery = Speed + Quality
2. 3 levels of metrics: service, business and user
3. Dynatrace can already collect these metrics for you
4. Get started today: incorporate quality metrics into your release pipeline straight away using tools like XL Release
Summary
47 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
• #1: Quality via Metrics
• Define Metrics for Build Process, for Production and for your End Users
• http://apmblog.dynatrace.com/2014/03/13/software-quality-metrics-for-your-continuous-delivery-pipeline-part-i/
• #2: Speed via Automation
• Automated Deployment, Metrics Collection & Regression Detection
• https://community.dynatrace.com/community/display/DOCDT62/Test+Automation+Explained
• http://apmblog.dynatrace.com/2015/09/28/kick-start-continuous-monitoring-with-chef-ansible-and-puppet/
• More Links
• https://xebialabs.com/resources/whitepapers/the-it-managers-guide-to-continuous-delivery/
• Blog on Metrics-Driven Pipeline – AP TODO
• https://github.com/xebialabs-community/xlr-dynatrace-plugin
Action Items for You
48 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015
• Thursday, 10:30 – Top Performance Problem Patterns
• Learn more metrics
• Thursday, 1:45 – There‘s money in those metrics
• TUI UK on Business Metrics
Sessions of Interest at PERFORM
49 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE