Dynatrace Inside Continuous Delivery

92
1 #Perform2014 Orlando, October 2014 Dynatrace Inside Continuous Delivery Martin Etmajer [email protected] Senior Technology Strategist @ Dynatrace

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

Transcript of Dynatrace Inside Continuous Delivery

Page 1: Dynatrace Inside Continuous Delivery

1 #Perform2014

Orlando, October 2014

Dynatrace Inside Continuous Delivery Martin Etmajer

[email protected] Technology Strategist @

Dynatrace

Page 2: Dynatrace Inside Continuous Delivery

2 #Perform2014

Insert headshot image here “Martin Etmajer

Senior Technology Strategist @ Dynatrace

[email protected]

@metmajer

Page 3: Dynatrace Inside Continuous Delivery

3 #Perform2014

Continuous Delivery @ Oktoberfest

Page 4: Dynatrace Inside Continuous Delivery

4 #Perform2014

Continuous Delivery Build Pipeline

Page 5: Dynatrace Inside Continuous Delivery

5 #Perform2014

Continuous Delivery Build Pipeline

Page 6: Dynatrace Inside Continuous Delivery

6 #Perform2014

Continuous Delivery Build Pipeline

Page 7: Dynatrace Inside Continuous Delivery

7 #Perform2014

Continuous Delivery Build Pipeline

Page 8: Dynatrace Inside Continuous Delivery

8 #Perform2014

Continuous Delivery Build Pipeline

Page 9: Dynatrace Inside Continuous Delivery

9 #Perform2014

Continuous Delivery Build Pipeline

Page 10: Dynatrace Inside Continuous Delivery

10 #Perform2014

Continuous Delivery Build Pipeline

✔ ✔

Page 11: Dynatrace Inside Continuous Delivery

11 #Perform2014

Continuous Delivery Build Pipeline

✔ ✔

Page 12: Dynatrace Inside Continuous Delivery

12 #Perform2014

Continuous Delivery Build Pipeline

✔ ✔ ✔

Page 13: Dynatrace Inside Continuous Delivery

13 #Perform2014

Continuous Delivery Build Pipeline

✔ ✔ ✔

Page 14: Dynatrace Inside Continuous Delivery

14 #Perform2014

Continuous Delivery Build Pipeline

✔ ✔ ✔

Page 15: Dynatrace Inside Continuous Delivery

15 #Perform2014

feature cycle time time

Customer Users

Minimize Cycle Time

Page 16: Dynatrace Inside Continuous Delivery

16 #Perform2014

feature cycle time time

Customer Users

Minimize Cycle Time

minimize

Page 17: Dynatrace Inside Continuous Delivery

17 #Perform2014

feature cycle time time

Customer

Minimize Cycle Time

This is when youcreate value!

minimize

Page 18: Dynatrace Inside Continuous Delivery

18 #Perform2014

feature cycle time time

Customer

Minimize Cycle Time

You

This is when youcreate value!

minimize

Page 19: Dynatrace Inside Continuous Delivery

19 #Perform2014

How? Establish Fast Feedback Loops!

build staging

time

codeplan production

compile failed

Page 20: Dynatrace Inside Continuous Delivery

20 #Perform2014

How? Establish Fast Feedback Loops!

build staging

time

codeplan production

build failed

Page 21: Dynatrace Inside Continuous Delivery

21 #Perform2014

How? Establish Fast Feedback Loops!

build staging

time

codeplan production

acceptance testing failed

Page 22: Dynatrace Inside Continuous Delivery

22 #Perform2014

How? Establish Fast Feedback Loops!

build staging

time

codeplan production

user feedback

Page 23: Dynatrace Inside Continuous Delivery

23 #Perform2014

How? Establish Fast Feedback Loops!

build staging

time

codeplan productionMonitor all your processes

no matter which environment

Page 24: Dynatrace Inside Continuous Delivery

24 #Perform2014

Continuous Delivery: Automated Testing

Page 25: Dynatrace Inside Continuous Delivery

25 #Perform2014

Continuous Delivery: Automated Deployments

Page 26: Dynatrace Inside Continuous Delivery

26 #Perform2014

Continuous Delivery: Continuous Monitoring

Real-TimeBusiness Transactions

Feed

Dynatrace Server

Page 27: Dynatrace Inside Continuous Delivery

27 #Perform2014

Continuous Delivery: Continuous Monitoring

Server REST API

Dynatrace Server

Page 28: Dynatrace Inside Continuous Delivery

28 #Perform2014

Dynatrace Test AutomationPlugin for Jenkins

It’s about assessing the

performance of your tests.

Page 29: Dynatrace Inside Continuous Delivery

29 #Perform2014

Test Automation Plugin for Jenkins

Dynatrace serverconnection settings

Page 30: Dynatrace Inside Continuous Delivery

30 #Perform2014

Test Automation Plugin for Jenkins

Allow KPIsto fail builds?

Page 31: Dynatrace Inside Continuous Delivery

31 #Perform2014

Test Automation Plugin for Jenkins

High-level KPIsper Build

Trending

Test Results@Project Level

Page 32: Dynatrace Inside Continuous Delivery

32 #Perform2014

Test Automation Plugin for Jenkins

Concrete Measuresper Test

Test Results@Build Level

Page 33: Dynatrace Inside Continuous Delivery

33 #Perform2014

Test Automation with Dynatrace

Page 34: Dynatrace Inside Continuous Delivery

34 #Perform2014

Test Automation with Dynatrace

Page 35: Dynatrace Inside Continuous Delivery

35 #Perform2014

Test Automation with Dynatrace

Dynatrace Server

Page 36: Dynatrace Inside Continuous Delivery

36 #Perform2014

Test Automation with Dynatrace: Quality Gate

Dynatrace Server

Page 37: Dynatrace Inside Continuous Delivery

37 #Perform2014

Automated Deploymentof Dynatrace Agents

Page 38: Dynatrace Inside Continuous Delivery

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

Page 39: Dynatrace Inside Continuous Delivery

39 #Perform2014

OPERATIONS

DEVELOPMENT

Deployment Automation: Joint Efforts

current iteration(2 weeks)

time

Page 40: Dynatrace Inside Continuous Delivery

40 #Perform2014

OPERATIONS

DEVELOPMENT

Deployment Automation: Joint Efforts

current iteration(2 weeks)

time

Planning

Page 41: Dynatrace Inside Continuous Delivery

41 #Perform2014

OPERATIONS

DEVELOPMENT

Deployment Automation: Joint Efforts

current iteration(2 weeks)

time

PlanningImplementing

and testing

Page 42: Dynatrace Inside Continuous Delivery

42 #Perform2014

OPERATIONS

DEVELOPMENT

Deployment Automation: Joint Efforts

current iteration(2 weeks)

time

PlanningImplementing

and testing Verification

Page 43: Dynatrace Inside Continuous Delivery

43 #Perform2014

Agent-Based Solutions

Page 44: Dynatrace Inside Continuous Delivery

44 #Perform2014

Agent-Based Deployments (Chef, Puppet)

Page 45: Dynatrace Inside Continuous Delivery

45 #Perform2014

Agent-Based Deployments (Chef, Puppet)

Page 46: Dynatrace Inside Continuous Delivery

46 #Perform2014

Agent-Based Deployments (Chef, Puppet)

Page 47: Dynatrace Inside Continuous Delivery

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)

Page 48: Dynatrace Inside Continuous Delivery

48 #Perform2014

Agentless Solutions

Page 49: Dynatrace Inside Continuous Delivery

49 #Perform2014

Agentless Deployments (Ansible)

Page 50: Dynatrace Inside Continuous Delivery

50 #Perform2014

Agentless Deployments (Ansible)

Page 51: Dynatrace Inside Continuous Delivery

51 #Perform2014

Agentless Deployments (Ansible)

Page 52: Dynatrace Inside Continuous Delivery

52 #Perform2014

Agentless Deployments (Ansible)

Page 53: Dynatrace Inside Continuous Delivery

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

Page 54: Dynatrace Inside Continuous Delivery

54 #Perform2014

Sample Environment

Web Server

Frontend

Application Server

Backend

Application ServerDatabase

VCS Build Automation

check out deploy

Page 55: Dynatrace Inside Continuous Delivery

55 #Perform2014

Sample Environment

Web Server FrontendApplication Server

BackendApplication Server

Database

Apache Tomcat Apache TomcatApache PostgreSQL

VCS

Git

Build Automation

Jenkins

check out deploy

Page 56: Dynatrace Inside Continuous Delivery

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

Page 57: Dynatrace Inside Continuous Delivery

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

Page 58: Dynatrace Inside Continuous Delivery

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

Page 59: Dynatrace Inside Continuous Delivery

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

Page 60: Dynatrace Inside Continuous Delivery

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 }}"

Page 61: Dynatrace Inside Continuous Delivery

61 #Perform2014

Auto Deploy Everything!

Web Server Application Server Database

Apache TomcatApache PostgreSQL

Config Agent

Page 62: Dynatrace Inside Continuous Delivery

62 #Perform2014

Auto Deploy Everything!

Web Server Application Server Database

Apache TomcatApache PostgreSQL

Config Binaries Agent

Page 63: Dynatrace Inside Continuous Delivery

63 #Perform2014

Auto Deploy Everything!

Web Server Application Server Database

Apache TomcatApache PostgreSQL

Data

Page 64: Dynatrace Inside Continuous Delivery

64 #Perform2014

Auto Deploy Everything!

Web Server Application Server Database

Apache TomcatApache PostgreSQL

Config Config Binaries AgentAgent Data

✔ ✔ ✔

Page 65: Dynatrace Inside Continuous Delivery

65 #Perform2014

Export DynatraceBusiness Transaction Data

Page 66: Dynatrace Inside Continuous Delivery

66 #Perform2014

What’s a Business Transaction?

PurePaths

Page 67: Dynatrace Inside Continuous Delivery

67 #Perform2014

What’s a Business Transaction?

Search

Searches, logins,purchases, etc.

Filter Searches

Page 68: Dynatrace Inside Continuous Delivery

68 #Perform2014

What’s a Business Transaction?

Search

Florida AustraliaHawaii

Page 69: Dynatrace Inside Continuous Delivery

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

Page 70: Dynatrace Inside Continuous Delivery

70 #Perform2014

Exporting Dynatrace Business Transaction Data

Dynatrace Server

Server

(Google Protobuf via HTTP POST)

Real-TimeBusiness Transactions Feed

Page 71: Dynatrace Inside Continuous Delivery

71 #Perform2014

Exporting Dynatrace Business Transaction Data

Dynatrace Server

Server

(Google Protobuf via HTTP POST)

Real-TimeBusiness Transactions Feed

Big DataBusiness Transactions Bridge

Page 72: Dynatrace Inside Continuous Delivery

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

Page 73: Dynatrace Inside Continuous Delivery

73 #Perform2014

Business Analytics Solutions: Splunk

Page 74: Dynatrace Inside Continuous Delivery

74 #Perform2014

Business Analytics Solutions: Splunk

Raw events

Page 75: Dynatrace Inside Continuous Delivery

75 #Perform2014

Business Analytics Solutions: Splunk

Drill down to dynaTrace

Page 76: Dynatrace Inside Continuous Delivery

76 #Perform2014

Integrating dynaTraceTest Automation Data intoAgile Information Radiators

Page 77: Dynatrace Inside Continuous Delivery

77 #Perform2014

Agile Information Radiators: Project’s Little Helpers

Page 78: Dynatrace Inside Continuous Delivery

78 #Perform2014

Agile Information Radiators: Project’s Little Helpers

Projects inBuild Automation

# Failed Jobs

Page 79: Dynatrace Inside Continuous Delivery

79 #Perform2014

Assessing Build Quality: Passed vs. Failed

Page 80: Dynatrace Inside Continuous Delivery

80 #Perform2014

Assessing Build Quality: Passed vs. Failed

1 + 1 = 2

Page 81: Dynatrace Inside Continuous Delivery

81 #Perform2014

Assessing Build Quality: Passed vs. Failed

1 + 1 != 2

Page 82: Dynatrace Inside Continuous Delivery

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

Page 83: Dynatrace Inside Continuous Delivery

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.

Page 84: Dynatrace Inside Continuous Delivery

84 #Perform2014

Assessing Build Quality: Dynatrace Test Data

Page 85: Dynatrace Inside Continuous Delivery

85 #Perform2014

Assessing Build Quality: Dynatrace Test Data

Page 86: Dynatrace Inside Continuous Delivery

86 #Perform2014

Assessing Build Quality: Dynatrace Test DataSuper nice!

Maybe not?

Page 87: Dynatrace Inside Continuous Delivery

87 #Perform2014

Assessing Build Quality: Dynatrace Test DataSuper nice!

Maybe not?

Page 88: Dynatrace Inside Continuous Delivery

88 #Perform2014

Assessing Build Quality: Use Cases with Dynatrace

time

Page 89: Dynatrace Inside Continuous Delivery

89 #Perform2014

Assessing Build Quality: Use Cases with Dynatrace

time

Page 90: Dynatrace Inside Continuous Delivery

90 #Perform2014

Assessing Build Quality: Use Cases with Dynatrace

time

Heading towards better builds?

Page 91: Dynatrace Inside Continuous Delivery

91 #Perform2014

Assessing Build Quality: Use Cases with Dynatrace

time

Drill down

Page 92: Dynatrace Inside Continuous Delivery

92 #Perform2014