coe klaus enzenhofer - dynatracer... · 1 #kenzenhofer klaus enzenhofer...

32
Klaus Enzenhofer [email protected] #kenzenhofer (R)evolutionize APM

Upload: others

Post on 19-Apr-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

1 #kenzenhofer

Klaus [email protected]#kenzenhofer

(R)evolutionize APM

Page 2: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM
Page 3: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM
Page 4: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

Rapidly Changing

Requirements &

User Expectations

Page 5: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM
Page 6: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

Our Goal?

Page 7: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

7 #kenzenhofer

Utmost Goal: Minimize Cycle Time

feature cycle time time

Customer / Market Users

Page 8: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

8 #kenzenhofer

Utmost Goal: Minimize Cycle Time

feature cycle time time

minimize Users

Page 9: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

9 #kenzenhofer

Utmost Goal: Minimize Cycle Time

feature cycle time time

This is when youcreate value!

minimize

You

Page 10: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

10 #kenzenhofer

ReleaseAcceptance

TestingUnit Testing

PerformanceTesting

Coding

Reduce Lead Time

Automate & Improve Process

Page 11: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

11 #kenzenhofer

700 Deployments / Year

50-60 Deployments / Day

10+ Deployments / Day

Every 11.6 seconds

Page 12: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

Challenges?

Page 13: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

13 #kenzenhofer

Deploy Faster!!

Page 14: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

14 #kenzenhofer

Fail Faster!!?

Page 15: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

15 #kenzenhofer

Right Focus?!

Page 16: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

16 #kenzenhofer

DevOps Team

Developer Tester Operations

Page 17: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

17 #kenzenhofer

The Problem

in the World

today is

COMMUNICATION

Page 18: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

Metricsbased

Decisions!

Page 19: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

? ? ?

Unit/Integration

Tests

Acceptance

Tests

Capacity

Tests

ReleaseDevelopers

Page 20: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

20 #kenzenhofer

Performance Issues

Unit Tests Integration Tests

Acceptance Tests

Load Tests

Meets requirements

Responds correctly to input

Performs in acceptable time

Usability

Deployment

Achieves Correct Result

Page 21: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

What you DO measure

What you DO measure

Performance Metrics

in your CI # Test Failures

Overall Duration

# calls to API

# executed SQL statements

# Web Service Calls

# JMS Messages

# Objects Allocated

# Exceptions

# Log Messages

Execution Time of Tests

Page 22: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

Basics

Metric: Test duration

I don’t like endsWith…… I like regex!

Page 23: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

N+1 Queries

Metrics: # SQL Executions / Request# of “same” SQL Executions

Page 24: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

24 #kenzenhofer

Ignoring Architectural Rules

Metric: # SQL Executions / Request

Page 25: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

25 #kenzenhofer

•# Images

•# Redirects

•Size of Resources

•# SQL Executions

•# of SAME SQLs

•# Items per Page

•# AJAX per Page

Metrics-based decisions

•Time Spent in API

•# Calls into API

•# Functional Errors

•3rd Party calls

•# of Domains

•Total Size

•…

Page 26: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

26 #kenzenhofer

ReleaseAcceptance

TestingUnit Testing

PerformanceTesting

Coding

Reduce Lead Time

Automate & Improve Process

Page 27: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

27 #kenzenhofer

Page 28: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

28 #kenzenhofer

Putting it into Continuous Deployment

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 29: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

ReleaseAcceptance

TestingUnit Testing

PerformanceTesting

Monitor Tests

Analyze Results

Quality Gate in your Build Tool

Every 11.6 seconds

Page 30: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

30 #kenzenhofer

Deploy Faster!!

Without Failing!

Page 31: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM
Page 32: CoE Klaus Enzenhofer - DynatraceR... · 1 #kenzenhofer Klaus Enzenhofer klaus.enzenhofer@dynatrace.com #kenzenhofer (R)evolutionize APM

32 #kenzenhofer

Klaus EnzenhoferSenior Technology Strategist

#kenzenhofer

[email protected]

http://blog.dyntrace.com

Thank You!