Performance and Load Testing With Dynatrace: Release Better Software Faster
Performance and Load Testing With Dynatrace: Release Better Software Faster
Performance and Load Testing With Dynatrace: Release Better Software Faster
Brian Wilson
Sales Engineering
Release Better Software Faster
Dynatrace
Jeff Yarbrough
Sales Engineering
Dynatrace
Learning Objectives
4. How to integrate Dynatrace in your CI/CD pipelines with Automated Quality Gates
Confidential
2
Performance as a Service
Confidential
3
Performance as a Service defined
Elevate every engineer to become a Performance Expert (right tools and guard rails)
Confidential
4
Performance as a Self-Service @ Panera Bread
1 2
3 4
PE – Performance Warehouse
Google Analytics Dynatrace Vrops Data RUM / UEM Confidential
5
Why do we need it and what will it take?
Confidential
6
Change of SDLC Methodology
6+
Big Bang
Waterfall Requirements Design Implementation Testing Acceptance Deployment
4
Incremental
Rational Unified
Inception Elaboration Construction Transition
Process
2
Agile
Scrum, Kanban
Development Operations
1
Continuous
DevOps DevOps
Confidential
7
Change of Architectures – from Monolith
Presentation Layer
Business Layer
Data Layer
Confidential
8
Change of Methodology – to microservice
Front
Every service is
managed by a
Service A Service B Service C Sevice D Service E
dedicated
team
Service F Service G
Confidential
9
Continuous Performance Testing Strategy
Confidential
10
Automate the analysis
Test Failure
Error rate
Resources check
Confidential
11
Quality Gates using performance scoring
Datasource
Confidential
12
Quality Gate Examples
❑ Overall CPU
Metrics
❑ CPU per transaction Metrics
❑ Number of incoming /
type
outgoing dependencies ❑ Response Time Metrics
❑ Number of instances (Percentiles)
❑ Total Exceptions
running on containers ❑ Throughput & Perf per
❑ Exceptions by Class &
Instance / Canary
Service
13
Confidential
What We Have Prepared for You Today
Confidential
14
Agenda
Confidential
15
Demo Application
Confidential
16
Demo Application Docker-Compose
version: '2'
services:
• Docker Compose is a tool for defining and frontend:
running multi-container Docker applications. image: dtdemos/keptn-orders-front-end:1
ports:
With Compose, you use a YAML file to - "80:8080"
environment:
configure your application’s services. SERVICES_PORT: "8080"
DT_APPLICATIONID: "frontend"
customer:
image: dtdemos/keptn-orders-customer-service:1
Port 8083 ports:
- "8081:8080"
catalog:
Port 80 image: dtdemos/keptn-orders-catalog-service:1
Port 8081
ports:
- "8082:8080"
Port 8082 order:
image: dtdemos/keptn-orders-order-service:1
ports:
- "8083:8080"
environment:
CUSTOMER_SERVICE_PORT: "8080"
CATALOG_SERVICE_PORT: "8080"
Confidential
17
Workshop Environment Virtual Machine
Orders Demo App
Your
Laptop 5
6
Load generators Test Orchestration & Test History
OneAgent
Lab files & SaaS Cluster
scripts
GitHub Org 2
4
Confidential
18
Today’s Learnings and Takeaways
Confidential
19
Champion Performance as a self-service in your organization by starting with one app & team
1. Promote all teams (Dev/Test/Ops) using Dynatrace as “source of truth” for SLOs & performance analysis
2. Try out and establish best practices for all the “out of the box” Dynatrace features
a. Tagging and Tagging rules
b. Request Attributes & Request Naming rules
c. Management Zones
d. API for time series & calculated metrics
3. Integrate Push Events & Automated Quality Gates in your CI/CD pipelines (ensure SLOs)
Rob Jahn - Dynatrace Henrik Rexed - Neotys Brian Wilson - Dynatrace Jeff Yarbrough - Dynatrace
Technical Partner Manager
Confidential
20
Partner Solution Evangelist Sales Engineering Sales Engineering
Appendix – How Dynatrace Helps With PE
Confidential
21
It starts with the Dynatrace OneAgent
Confidential
22
Dynatrace out-of-the-box Service Data & Metrics
Service Metrics, e.g: Response Time, Failure Rate ... Which we can also chart or pull through the API
Confidential
23
Dynatrace out-of-the-box -- Service Web Request analysis
Which and how many HTTP POST requests to a specific URL pattern (e.g: /orange) take longer than our 100ms SLA?
Confidential
24
Dynatrace out-of-the-box – Front end performance analysis tools
Confidential
25
Dynatrace out-of-the-box – Database and SQL analysis
Confidential
26
Dynatrace out-of-the-box: Response Time Performance Analysis
Confidential
27
Adding Context to Our Tests
Confidential
28
Tags are the “where by” clause in APIs and web UI filtering
4229 k8s
Pods
env:perf
service:order env:perf
docker service:frontend
apache
env:perf
service:shipping
database
Confidential
29
Automate request naming and attributes used in transaction-level analysis
Confidential
30
Request Attributes in Multi-Dimensional Analysis Charts
Confidential
31
Automate detection on/off for Davis AI root-cause detection
Confidential
32
Continuous Performance testing & automated analysis
Automated
7
Confidential
33
Push Text Context using Dynatrace Events and API
Pushed Test
Details
Confidential
34
From Dynatrace: Performance Signature as Code evaluated through Jenkins
“Performance Signature”
“Performance Signature” “Performance Signature” for every Build
for Build Nov 16 for Build Nov 17
“Multiple Metrics”
compared to prev
Timeframe
Quality Gates
https://keptn.sh
1. N+1 call
2. N+1 query
3. Payload flood
8. Dependencies
Confidential
37
Example: Inefficient service call flow analysis
Confidential
38
Example: Cascading N+1 Query Pattern: This is a single end-to-end Trace
809
3956
4347
4773
3789
3915
4999
Confidential
39
Appendix – NeoLoad
Confidential
40
NeoLoad Platform
• Performance engineers can update the projects build by the developers from NeoLoad GUI
Confidential
42
One Platform for Component Testing and System Wide Testing
Confidential
43
NeoLoad as code
Variables
Server
Sla_profiles
User_Path
Populations
Scenarios
Include
https://www.neotys.com/documents/doc/modules/as-code/project.html
Confidential
44
How to take advantage of the NeoLoad as code
Confidential
45 4
Continuous Integration in the Cloud
OpenSource
GitLab is a web-based DevOps lifecycle tool that provides a Git-repository manager providing wiki, issue-tracking and CI/CD pipeline features, using an
open-source license, developed by GitLab Inc.
Confidential
46
NeoLoad web Launcher
NeoLoad
web Upload the project
Laucher And start the test on the requested
Load generator and Controller
Confidential
47
Dynatrace + NeoLoad: Strongest Out-of-the-Box Bidirectional Integration in the market!
NeoLoad Dynatrace
#1 Dynatrace Data in #2 Neoload Test
Neoload Context in PurePath
#5 Neoload Anomaly
Detection
Confidential
48
APIs: Integrations on multiple dimensions
< 100ms
calls calls 1 Get Service Under Test based on tags
X-Dynatrace
Sockshop Frontend Node.js Microservice Golang service 2 Follow Service Flow Dependencies
Confidential
49
The Dynatrace User Path
• DynatraceConfiguration Will :
• Create The Request Attribute rules
Init
• Tag the services and all its dependencies -> Create a tag
(called once at the NeoLoad-[name of the TAG]
beggining of the • Create the Request Naming Rules
test)
• DynatraceSetAnomalieDetection
• Create the anomalie dection rule define from a jsonfile
Action
• DynatraceMonitoring will :
(will be executed • Send the NeoLoad web Data in Dynatrace
during the entire
• Collect Dynatrace metrics and send them to NeoLoad Web
test)
Confidential
50
NeoLoad / Dynatrace integrations helping you to deliver
Confidential
51
Confidential
52