Upload
martin-etmajer
View
1.363
Download
8
Tags:
Embed Size (px)
DESCRIPTION
Shows in which ways the Dynatrace APM solution empowers the Continuous Delivery build pipeline. Topics covered: - How Dynatrace integrates into Test Automation inside the Jenkins Build Automation Server - How Deployment Automation can be use to automatically deploy your environments - How Dynatrace Business Transactions data can be exported to external Business Analytics solutions, such as Splunk - How Agile Development teams can be empowered by integrating Dynatrace Test Automation data into digital Information Radiators
Citation preview
1 #Perform2014
Orlando, October 2014
Dynatrace Inside Continuous Delivery Martin Etmajer
[email protected] Technology Strategist @
Dynatrace
2 #Perform2014
Insert headshot image here “Martin Etmajer
Senior Technology Strategist @ Dynatrace
@metmajer
3 #Perform2014
Continuous Delivery @ Oktoberfest
4 #Perform2014
Continuous Delivery Build Pipeline
5 #Perform2014
Continuous Delivery Build Pipeline
6 #Perform2014
Continuous Delivery Build Pipeline
✔
7 #Perform2014
Continuous Delivery Build Pipeline
✔
8 #Perform2014
Continuous Delivery Build Pipeline
✔
✔
9 #Perform2014
Continuous Delivery Build Pipeline
✔
✔
10 #Perform2014
Continuous Delivery Build Pipeline
✔
✔ ✔
11 #Perform2014
Continuous Delivery Build Pipeline
✔
✔ ✔
12 #Perform2014
Continuous Delivery Build Pipeline
✔
✔ ✔ ✔
13 #Perform2014
Continuous Delivery Build Pipeline
✔
✔ ✔ ✔
14 #Perform2014
Continuous Delivery Build Pipeline
✔
✔ ✔ ✔
✔
15 #Perform2014
feature cycle time time
Customer Users
Minimize Cycle Time
16 #Perform2014
feature cycle time time
Customer Users
Minimize Cycle Time
minimize
17 #Perform2014
feature cycle time time
Customer
Minimize Cycle Time
This is when youcreate value!
minimize
18 #Perform2014
feature cycle time time
Customer
Minimize Cycle Time
You
This is when youcreate value!
minimize
19 #Perform2014
How? Establish Fast Feedback Loops!
build staging
time
codeplan production
compile failed
20 #Perform2014
How? Establish Fast Feedback Loops!
build staging
time
codeplan production
build failed
21 #Perform2014
How? Establish Fast Feedback Loops!
build staging
time
codeplan production
acceptance testing failed
22 #Perform2014
How? Establish Fast Feedback Loops!
build staging
time
codeplan production
user feedback
23 #Perform2014
How? Establish Fast Feedback Loops!
build staging
time
codeplan productionMonitor all your processes
no matter which environment
24 #Perform2014
Continuous Delivery: Automated Testing
25 #Perform2014
Continuous Delivery: Automated Deployments
26 #Perform2014
Continuous Delivery: Continuous Monitoring
Real-TimeBusiness Transactions
Feed
Dynatrace Server
27 #Perform2014
Continuous Delivery: Continuous Monitoring
Server REST API
Dynatrace Server
28 #Perform2014
Dynatrace Test AutomationPlugin for Jenkins
It’s about assessing the
performance of your tests.
29 #Perform2014
Test Automation Plugin for Jenkins
Dynatrace serverconnection settings
30 #Perform2014
Test Automation Plugin for Jenkins
Allow KPIsto fail builds?
31 #Perform2014
Test Automation Plugin for Jenkins
High-level KPIsper Build
Trending
Test Results@Project Level
32 #Perform2014
Test Automation Plugin for Jenkins
Concrete Measuresper Test
Test Results@Build Level
33 #Perform2014
Test Automation with Dynatrace
34 #Perform2014
Test Automation with Dynatrace
35 #Perform2014
Test Automation with Dynatrace
Dynatrace Server
36 #Perform2014
Test Automation with Dynatrace: Quality Gate
Dynatrace Server
37 #Perform2014
Automated Deploymentof Dynatrace Agents
38 #Perform2014
Why?
» Production environments have typically grown over time
» On-demand creation of environments (minimizes MTTR)
» Consistent environments in staging and production
What?
» Middleware, Databases, Configuration, Data, Application
How?
» Create self-documenting, executable specifications (VCS)
» Treat it as an engineering discipline (helps enforce DevOps)
Deployment Automation
39 #Perform2014
OPERATIONS
DEVELOPMENT
Deployment Automation: Joint Efforts
current iteration(2 weeks)
time
40 #Perform2014
OPERATIONS
DEVELOPMENT
Deployment Automation: Joint Efforts
current iteration(2 weeks)
time
Planning
41 #Perform2014
OPERATIONS
DEVELOPMENT
Deployment Automation: Joint Efforts
current iteration(2 weeks)
time
PlanningImplementing
and testing
42 #Perform2014
OPERATIONS
DEVELOPMENT
Deployment Automation: Joint Efforts
current iteration(2 weeks)
time
PlanningImplementing
and testing Verification
43 #Perform2014
Agent-Based Solutions
44 #Perform2014
Agent-Based Deployments (Chef, Puppet)
45 #Perform2014
Agent-Based Deployments (Chef, Puppet)
46 #Perform2014
Agent-Based Deployments (Chef, Puppet)
47 #Perform2014
» Can be used in client-server or client-only modes
» Client must be installed on each host to be provisioned
» Clients have dependencies: Ruby
Agent-Based Deployments (Chef, Puppet)
48 #Perform2014
Agentless Solutions
49 #Perform2014
Agentless Deployments (Ansible)
50 #Perform2014
Agentless Deployments (Ansible)
51 #Perform2014
Agentless Deployments (Ansible)
52 #Perform2014
Agentless Deployments (Ansible)
53 #Perform2014
Ansible
» Written and extensible (Python)
» Human- and machine-readable configuration (YAML)
» No boot-strapping required on deployment hosts (SSH)
» Simple, easy to ramp up with (think of new employees!)
» Clear and concise documentation
Agentless Deployments
54 #Perform2014
Sample Environment
Web Server
Frontend
Application Server
Backend
Application ServerDatabase
VCS Build Automation
check out deploy
55 #Perform2014
Sample Environment
Web Server FrontendApplication Server
BackendApplication Server
Database
Apache Tomcat Apache TomcatApache PostgreSQL
VCS
Git
Build Automation
Jenkins
check out deploy
56 #Perform2014
Use Case: Deploy Dynatrace Agents
Web Server FrontendApplication Server
BackendApplication Server
Database
Apache Tomcat Apache TomcatApache PostgreSQL
VCS
Git
Build Automation
Jenkins
check out deploy
57 #Perform2014
Ansible Concepts: Inventories
» Ansible provisions groups of servers at once
» Groups and hosts are stored in inventory files
» An inventory file is expressed in a simple INI format
58 #Perform2014
Ansible Concepts: Inventories
[frontends]frontend.example.com
[backends]backend.example.com
[frontends:vars]dt_agent_name=frontend
[backends:vars]dt_agent_name=backend
GroupHost
GroupVariables Variable
59 #Perform2014
--- # appservers.yml- hosts: frontends:backends vars_files: - variables.yml handlers: - name: restart tomcat service: name=tomcat state=restarted tasks: - name: Inject dynaTrace Java agent into Apache Tomcat template: > src=templates/tomcat-setenv.sh dest={{ tomcat_home }}/bin/setenv.sh notify: restart tomcat remote_user: deploy sudo: yes
Ansible Concepts: Playbooks
60 #Perform2014
Ansible Concepts: Playbooks# templates/tomcat-setenv.sh
CATALINA_OPTS="$CATALINA_OPTS \ -agentpath:{{ dt_agent_dir }}/libdtagent.so =name={{ dt_agent_name }},collector={{ dt_collector_url }}"
61 #Perform2014
Auto Deploy Everything!
Web Server Application Server Database
Apache TomcatApache PostgreSQL
Config Agent
62 #Perform2014
Auto Deploy Everything!
Web Server Application Server Database
Apache TomcatApache PostgreSQL
Config Binaries Agent
63 #Perform2014
Auto Deploy Everything!
Web Server Application Server Database
Apache TomcatApache PostgreSQL
Data
64 #Perform2014
Auto Deploy Everything!
Web Server Application Server Database
Apache TomcatApache PostgreSQL
Config Config Binaries AgentAgent Data
✔ ✔ ✔
65 #Perform2014
Export DynatraceBusiness Transaction Data
66 #Perform2014
What’s a Business Transaction?
PurePaths
67 #Perform2014
What’s a Business Transaction?
Search
Searches, logins,purchases, etc.
Filter Searches
68 #Perform2014
What’s a Business Transaction?
Search
Florida AustraliaHawaii
69 #Perform2014
What’s a Business Transaction?
Search
Florida AustraliaHawaii
10:13 10:14 10:15 10:16 10:173s
4s
5s
Response Time
Hawaii Florida Australia
10:13 10:14 10:15 10:16 10:170
200400600800
Search Result Count
Hawaii Florida Australia 10:13 10:14 10:15 10:16 10:172s3s4s5s6s
Response Time Hawaii
Min Avg Max
70 #Perform2014
Exporting Dynatrace Business Transaction Data
Dynatrace Server
Server
(Google Protobuf via HTTP POST)
Real-TimeBusiness Transactions Feed
71 #Perform2014
Exporting Dynatrace Business Transaction Data
Dynatrace Server
Server
(Google Protobuf via HTTP POST)
Real-TimeBusiness Transactions Feed
Big DataBusiness Transactions Bridge
72 #Perform2014
Stores data to:
» JSON, CSV files
» Data-Warehouses
» Hadoop Distributed File System
Exporting Dynatrace Business Transaction Data
Dynatrace Server
Server
(Google Protobuf via HTTP POST)
Real-TimeBusiness Transactions Feed
Big DataBusiness Transactions Bridge
73 #Perform2014
Business Analytics Solutions: Splunk
74 #Perform2014
Business Analytics Solutions: Splunk
Raw events
75 #Perform2014
Business Analytics Solutions: Splunk
Drill down to dynaTrace
76 #Perform2014
Integrating dynaTraceTest Automation Data intoAgile Information Radiators
77 #Perform2014
Agile Information Radiators: Project’s Little Helpers
78 #Perform2014
Agile Information Radiators: Project’s Little Helpers
Projects inBuild Automation
# Failed Jobs
79 #Perform2014
Assessing Build Quality: Passed vs. Failed
80 #Perform2014
Assessing Build Quality: Passed vs. Failed
1 + 1 = 2
81 #Perform2014
Assessing Build Quality: Passed vs. Failed
1 + 1 != 2
82 #Perform2014
New Test Automation Data API with dynaTrace v6.1
» Based on RESTful conventions
» Delivers JSON data
Assessing Build Quality: Dynatrace Test Data
Easy Integration
83 #Perform2014
Test Measures:
» Database statements count
» Log message count
» Exception count
» Response time
» etc.
Assessing Build Quality: Dynatrace Test Data
Test Measure Statistics:
» Expected range of value
» Violation percentage
» Historical data
Test Status:
» Passed, Failed
» Improved, Degraded, etc.
84 #Perform2014
Assessing Build Quality: Dynatrace Test Data
85 #Perform2014
Assessing Build Quality: Dynatrace Test Data
86 #Perform2014
Assessing Build Quality: Dynatrace Test DataSuper nice!
Maybe not?
87 #Perform2014
Assessing Build Quality: Dynatrace Test DataSuper nice!
Maybe not?
88 #Perform2014
Assessing Build Quality: Use Cases with Dynatrace
time
89 #Perform2014
Assessing Build Quality: Use Cases with Dynatrace
time
90 #Perform2014
Assessing Build Quality: Use Cases with Dynatrace
time
Heading towards better builds?
91 #Perform2014
Assessing Build Quality: Use Cases with Dynatrace
time
Drill down
92 #Perform2014