building a metrics-optimized pipeline...2. in order to use these metrics to improve your software...

47
1 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015 Andrew Phillips, VP of Products Andreas Grabner, Performance Advocate Building a Metrics-Optimized Pipeline

Upload: others

Post on 27-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Building a Metrics-Optimized Pipeline...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

1 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015

Andrew Phillips, VP of ProductsAndreas Grabner, Performance Advocate

Building a Metrics-Optimized Pipeline

Page 2: Building a Metrics-Optimized Pipeline...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

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

Page 3: Building a Metrics-Optimized Pipeline...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

3 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015

U N I C O R N S T A T U S

Page 4: Building a Metrics-Optimized Pipeline...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

4 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015

700 deployments / year

10 + deployments / day

50 – 60 deployments / day

Every 11.6 seconds

Page 5: Building a Metrics-Optimized Pipeline...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

5 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015

Page 6: Building a Metrics-Optimized Pipeline...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

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

Page 7: Building a Metrics-Optimized Pipeline...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

7 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015

CHALLENGE

Page 8: Building a Metrics-Optimized Pipeline...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

8 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015

Page 9: Building a Metrics-Optimized Pipeline...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

9 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015

Fail Faster!?

Page 10: Building a Metrics-Optimized Pipeline...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

10 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015

It‘s not about blind automation of pushing more

bad code through a shiny pipeline

Page 11: Building a Metrics-Optimized Pipeline...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

11 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015

One goal: deliver better features to customers faster

Two fundamental components: speed + quality

Page 12: Building a Metrics-Optimized Pipeline...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

12 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015

OK, OK, …

But how?

Page 13: Building a Metrics-Optimized Pipeline...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

13 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE13

#1 Speedend-to-end automation of the software delivery process

Page 14: Building a Metrics-Optimized Pipeline...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

14 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015

Automate, automate and automate

Page 15: Building a Metrics-Optimized Pipeline...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

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

Page 16: Building a Metrics-Optimized Pipeline...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

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

Page 17: Building a Metrics-Optimized Pipeline...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

17 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE17

#2 QualityMetrics-based GO or No-GO decisions

Page 18: Building a Metrics-Optimized Pipeline...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

18 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015

Insufficient Focus on Quality

Page 19: Building a Metrics-Optimized Pipeline...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

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“

Page 20: Building a Metrics-Optimized Pipeline...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
Page 21: Building a Metrics-Optimized Pipeline...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

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

Page 22: Building a Metrics-Optimized Pipeline...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

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

Page 23: Building a Metrics-Optimized Pipeline...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

24 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015

Marketing Campaign: Business Metrics

Page 24: Building a Metrics-Optimized Pipeline...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

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?

Page 25: Building a Metrics-Optimized Pipeline...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

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

Page 26: Building a Metrics-Optimized Pipeline...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

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!

Page 27: Building a Metrics-Optimized Pipeline...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

28 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE28

Metric-Driven Continuous DeliveryWith Dynatrace & XL Release

Page 28: Building a Metrics-Optimized Pipeline...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

30 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015

Capturing and Analyzing Test Executions with Dynatrace

Page 29: Building a Metrics-Optimized Pipeline...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

31 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015

Unit/Integration

Tests for Integration and Performance Pipeline Phase

Performance

Web API

Browser-based

Load

Page 30: Building a Metrics-Optimized Pipeline...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

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

Page 31: Building a Metrics-Optimized Pipeline...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

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!

Page 32: Building a Metrics-Optimized Pipeline...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

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

Page 33: Building a Metrics-Optimized Pipeline...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

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?

Page 34: Building a Metrics-Optimized Pipeline...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

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, …

Page 35: Building a Metrics-Optimized Pipeline...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

37 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015

Load Tests: Pull Results into your Pipeline / Build Server

Embed your Load Testing Results in Jenkins

Page 36: Building a Metrics-Optimized Pipeline...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

38 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015

Production Data: Real User & Application Monitoring

Page 37: Building a Metrics-Optimized Pipeline...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

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

Page 38: Building a Metrics-Optimized Pipeline...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

40 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015

Orchestrating your Delivery Pipeline with XL Release

Insight, visibility & control into

people and tools

Page 39: Building a Metrics-Optimized Pipeline...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

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

Page 40: Building a Metrics-Optimized Pipeline...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

42 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015

Orchestrating your Delivery Pipeline with XL Release

Use quality metrics toautomatically make

decisions

Page 41: Building a Metrics-Optimized Pipeline...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

43 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015

Orchestrating your Delivery Pipeline with XL Release

Integrate qualityawareness into your

delivery pipeline

Page 42: Building a Metrics-Optimized Pipeline...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

44 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015

Download XL Release Dynatrace Plugin from GitHub

Page 43: Building a Metrics-Optimized Pipeline...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

45 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015

Page 44: Building a Metrics-Optimized Pipeline...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

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

Page 45: Building a Metrics-Optimized Pipeline...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

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

Page 46: Building a Metrics-Optimized Pipeline...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

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

Page 47: Building a Metrics-Optimized Pipeline...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

49 COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE #Perform2015COMPANY CONFIDENTIAL – DO NOT DISTRIBUTE