Realizing Continuous Performance Management



Similar documents
Part II Achieving Continuous Performance Management

Part I Extending the Continuous Integration Environment with Performance Testing

Accelerate Software Delivery

Kevin Lee Technical Consultant As part of a normal software build and release process

Accelerate Software Delivery with Continuous Integration and Testing. JaSST 08 Tokyo. Jeffrey Fredrick Agitar Software,

Software Construction

Meister Going Beyond Maven

Winning the J2EE Performance Game Presented to: JAVA User Group-Minnesota

Continuous integration for databases using

Continuous integration for databases using Redgate tools

a new generation software test automation framework - CIVIM

NXTware Remote. Advanced Development and Maintenance Environment for OpenVMS and other Strategic Platforms

Enabling Continuous Delivery by Leveraging the Deployment Pipeline

HP APPLICATION PERFORMANCE MONITORING

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

The Impact of Transaction-based Application Performance Management

Bernie Velivis President, Performax Inc

Automated performance testing using Maven & JMeter. George Barnett, Atlassian Software

Test Run Analysis Interpretation (AI) Made Easy with OpenLoad

Coverity Services. World-class professional services, technical support and training from the Coverity development testing experts

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited

Continuous Integration Multi-Stage Builds for Quality Assurance

The Evolution of Load Testing. Why Gomez 360 o Web Load Testing Is a

Beyond Logging and Monitoring. New Techniques for Solving J2EE Application Problems in Production Environments. David Kadouch BMC Software

The top 10 misconceptions about performance and availability monitoring

Delivering Quality Software with Continuous Integration

Evidence based performance tuning of

Tools for Testing Software Architectures. Learning Objectives. Context

The Benefits of Deployment Automation

DevOps for CA Plex Automated Testing

Performance Testing Methodology

A Modern Approach to Monitoring Performance in Production

Key Benefits of Microsoft Visual Studio Team System

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

Java Software Quality Tools and techniques

WHITEPAPER. Improving database development

DevOps for the Mainframe

Database Development Best Practices. Database Development Best Practices. Copyright 2006 Quest Software

Automate performance testing to predict system behaviour and improve application performance. Business white paper

Nick Ashley TOOLS. The following table lists some additional and possibly more unusual tools used in this paper.

Software infrastructure for Java development projects

Software Development Tools

Continuous Integration

Client Overview. Engagement Situation. Key Requirements

Test-Driven Development. SC12 Educator s Session November 13, 2012

ASSURING SOFTWARE QUALITY USING VISUAL STUDIO 2010

Upping the game. Improving your software development process

Martin Spier, Expedia & Rex Black, J9

WHITEPAPER. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Principle #1, Agile Manifesto

ON-PREMISE OR IN THE CLOUD, A SINGLE JAVA EE APPLICATION PLATFORM

Shield Your Applications from Catastrophe

An Oracle White Paper February Rapid Bottleneck Identification - A Better Way to do Load Testing

Application Performance Management. Java EE.Net, Databases Message Queue Transaction, Web Servers End User Experience

Monitoring Best Practices for COMMERCE

Invest in your business with Ubuntu Advantage.

DATABASES AND ERP SELECTION: ORACLE VS SQL SERVER

Spirent CLEAR Mobility. End-to-End Mobile Network Infrastructure Test and Lab Automation Solutions

Implementing Continuous Integration Testing Prepared by:

Continuous integration for databases using Red Gate tools

How To Use Ibm Tivoli Monitoring Software

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture

DESIGN OF AUTOMATION SCRIPTS EXECUTION APPLICATION FOR SELENIUM WEBDRIVER AND TestNG FRAMEWORK

Build Management. Context. Learning Objectives

Silk Performer LOAD TESTING. The key to keeping business applications running

What s New in WebLOAD 10.1

How To Create A Help Desk For A System Center System Manager

Continuous Integration: Put it at the heart of your development

Adaptive Management to Achieve Java Application Service Levels

Essential Visual Studio Team System

SOFTWARE PERFORMANCE TESTING SERVICE

how can I deliver better services to my customers and grow revenue?

Why Alerts Suck and Monitoring Solutions need to become Smarter

Continuous Integration - An Efficient Quality Assurance Tool

Your guide to building great apps. Upgrade your skills and update your tools to create the next great app

Software Development In the Cloud Cloud management and ALM

Continuous Integration (CI)

Escaping the Works-On-My-Machine badge Continuous Integration with PDE Build and Git

Stories From the Front Lines: Deploying an Enterprise Code Scanning Program

TEST AUTOMATION FRAMEWORK

The Top 10 Reasons Why You Need Synthetic Monitoring

Continuous delivery Release software on-demand, not on Red Alert

STEELCENTRAL APPINTERNALS

Increasing Business Efficiency and Agility for ATGbased. Systems. the business challenge: upgrading the development pipeline

Managing Application Performance with JBoss Operations Network and OC Systems RTI

SOA Solutions & Middleware Testing: White Paper

Performance Testing. What is performance testing? Why is performance testing necessary? Performance Testing Methodology EPM Performance Testing

Becoming Proactive In Application Performance Management

Jenkins User Conference Herzelia, July #jenkinsconf. Testing a Large Support Matrix Using Jenkins. Amir Kibbar HP

WHITE PAPER: ENTERPRISE SOLUTIONS. Implementing Proactive Application Performance Management

Introduction and Agenda

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

Leveraging Rational Team Concert's build capabilities for Continuous Integration

Foreword by Martin Fowler *

CA Wily Introscope. CA Advantage. Benefits. Overview

NeXUS REPOSITORY managers

the first thing that comes to mind when you think about unit testing? If you re a Java developer, it s probably JUnit, since the

Application Performance Testing Basics

Windchill System Architecture Landscape within TEWI Administrative Domain

Page 1 Addressing Performance Throughout the Life Cycle

Transcription:

Your logo here Realizing Continuous Performance Management Steven Haines Quest Software Java Domain Expert February 14, 2008

Agenda State of the Market Cost of Mistakes Test-Driven Development Continuous Integration Continuous Performance Management CPM in Practice Business Value Next Steps Q&A

Industry Experts Say Forrester Research reports nearly 85 percent of companies with revenue of more than $1 billion reported incidents of significant application performance problems. Survey respondents identified the architecture and deployment as the primary causes of these problems. -Forrester Research Medium-sized businesses* are losing an average of 1% of their annual revenue, or $867K, to downtime. Application outages and degradations are the biggest sources of downtime, costing these companies $213K annually. -Infonetics Research *101 to 1000 employees

Impact of Poorly Performing Applications Business-to-consumer Direct loss of customer revenue Loss of confidence Business-to-business Loss of reputation Potential loss of business relationships Intranet Loss of productivity Longer time-to-market = loss of competitive advantage

Cost of Mistakes Performance problems found later in production cost almost 10x more to fix Test Early, Test Often

Why is the Current State of Testing Failing? Test suites are written to out-of-date artifacts Test suites are not comprehensive enough Test suites are not automated Not performed regularly No regression testing

Test-Driven Development Test cases must be written prior to writing code Test cases written by developers Each code component must include a test suite

Test-Driven Development Test-Driven Development Code Test Code Test Code Test Continuous Integration Test Suite Source code Repository Continuous Performance Management Picture to show profiling of a test: JProbe or PAS type of screen Profile Analyze React

Test-Driven Development Lifecycle Add a Test Test Suite

Test-Driven Development Lifecycle Prove Failure Add a Test Test Suite

Test-Driven Development Lifecycle Prove Failure Add a Test Test Suite Implement New Functionality

Test-Driven Development Lifecycle Prove Failure Add a Test Test Suite Implement New Functionality Prove Success

Test-Driven Development Lifecycle Business Value: Prove Failure Add a Test Re-factor the Code Implement New Functionality Prove Success Limited Debugging Faster Triaging Test Suite Shorter Development Cycles Clearly Solved Business Problems Confidence in Deployment

Continuous Integration The Challenge The Solution With complicated applications, integration can take longer than development Integrate after each code check-in The Tool Continuous Integration Server

Test-Driven Development + Continuous Integration Test-Driven Development Code Test Code Test Code Test Continuous Integration Build CI Server Test Suite Source code Repository Test Publish Continuous Performance Management Picture to show profiling of a test: JProbe or PAS type of screen Profile Analyze React

Continuous Integration Lifecycle Monitors SourceCode Repository Continuous Integration Server

Continuous Integration Lifecycle Monitors SourceCode Repository Detects New Check-Ins Continuous Integration Server

Continuous Integration Lifecycle Monitors SourceCode Repository Detects New Check-Ins Continuous Integration Server Compiles Entire Application

Continuous Integration Lifecycle Monitors SourceCode Repository Detects New Check-Ins Continuous Integration Server Runs Exhaustive Test Suite Commit Build Secondary Builds Compiles Entire Application

Continuous Integration Lifecycle Business Value: Monitors SourceCode Repository Detects New Check-Ins Publishes Build Results Continuous Integration Server Compiles Entire Application Runs Exhaustive Test Suite Commit Build Secondary Builds Shorter integration times Integration issues resolved as they occur Higher quality end product

What is Continuous Performance Management? Challenge in Performance Testing Time consuming and error prone because manual Problems discovered at the end of development effort often affect assumptions made at the beginning of a development effort Requires re-factoring the architecture Solution Performance Management in a Continuous Integration Environment Proactive approach Execute performance tests on every developer commit On every code check-in

Continuous Performance Management (CPM) Create additional Secondary Builds that implement performance tests Secondary Build 1 1. Performance Unit Tests 2. Performance Integration Tests Business case Use case scenario 3. Performance Stress/Load Tests CPM Secondary Build 2 Secondary Build 3

Test-Driven Development + Continuous Integration + CPM Test-Driven Development Code Test Code Test Code Test Continuous Integration Build CI Server Test Suite Source code Repository Test Publish Continuous Performance Management Profile Analyze Repair

Performance Unit Tests Memory Lingering Object References (memory leaks) Object cycling Performance Identify slow running code Coverage Quantify the percentage of classes, methods, lines of code and conditions exercised by unit tests

Performance Integration Tests Performance analysis of a single user Identify request response times that exceed service-level agreements Triage to offending methods and SQL statements Follow requests across tiers (and across JVMs) Identify application problems prior to load Find problems in isolation Easier to pinpoint root cause

Performance Stress/Load Tests Performance analysis under load (multiple users) Identify request response times that exceed service-level agreements Triage to offending methods and SQL statements Follow requests across tiers (and across JVMs) Validate environmental configuration Identify resource contentions Identify scalability problems prior to deployment Identify environmental configuration issues Resolve scalability and reliability problems

Continuous Performance Management Toolset Continuous Integration Server CruiseControl Build Environment Apache Ant Test Bed JUnit Load Generator Apache JMeter Performance Testing: Unit tests: Quest JProbe Integration/Load tests: Quest PerformaSure

CPM Too Arduous a Task? It is a common misconception that CPM is too risky and time consuming of an undertaking We ve gone through painstaking efforts to make CPM as easy as possible to implement Only requires a handful of build script additions

CPM In Practice Performance Unit Tests Additions to Ant build script to profile all your JUnit tests Easy to do can paste on a single slide <!-- Set location of the JProbe Enterprise Tools --> <property name="jprobe.enterprisetools.home location="c:\jprobe-ent" /> <!-- Define the Pre-processor CLASSPATH --> <path id="classpath.preprocessor"> <fileset dir="${jprobe.enterprisetools.home}" includes="lib/*.jar"/> </path> <!-- Execute the preprocessor --> <java classname="com.javasrc.anttools.jprobepreprocessor"> <sysproperty key="src.dirs" value="${src};${src.test}" /> <sysproperty key="jprobe.home" value="c:\program Files\JProbe 7.0" /> <sysproperty key="jprobe.build.dest" value="${jprobe.enterprisetools.home}\jprobe.xml" /> <classpath refid="classpath.preprocessor"/> </java> <!-- Import the Generated Script --> <import file="${jprobe.enterprisetools.home}\jprobe.xml" />

CPM In Practice Unit Test Report

CPM In Practice Unit Test Report

Performance Unit Testing Quest JProbe Three analysis enablers: Memory Performance Coverage

CPM In Practice Integration / Load Tests Additions to Ant build script to launch JMeter Easy to do can paste on a single slide <!-- Import the JMeter task --> <taskdef name="jmeter classname="org.programmerplanet.ant.taskdefs.jmeter.jmetertask"/> <!-- Execute the test script --> <jmeter jmeterhome="c:\lib\jakarta-jmeter-2.2" testplan="${basedir}/mytests/mytest.jmx" resultlog="${basedir}/mytests/mytestresults.jtl"> <property name="jmeter.save.saveservice.output_format" value="xml" /> </jmeter> <!-- Generate an HTML Report --> <xslt in="${basedir}/mytests/mytestresults.jtl" out="${basedir}/mytests/mytestresults.html" style="${basedir}/mytests/jmeter-results-report.xsl" />

CPM In Practice Integration / Load Tests Additions to Ant build script to record a performance session <property name="pas.home" location="j:\performasure5.0" /> <target name="pas" description= "Start a PerformaSure recording" > <!-- Execute nexusctl --> <exec executable="cmd"> <arg value="/c" /> <arg value="${pas.home}/scripts/nexusctl.cmd" /> <arg value="start-recording" /> <arg value="-user" /> <arg value="user" /> <arg value="-l" /> <arg value="30m" /> <arg value="-t" /> <arg value="10s" /> <arg value="-f" /> </exec> </target>

Performance Integration/Load Testing Quest PerformaSure Quest Management Server Tag-and-Follow

Performance Integration/Load Testing Quest PerformaSure

Business Value Benefits Reduce R&D and QA time in performance testing Better performing applications Results Faster time-to-market = more time to add features that give you a competitive advantage over your competition Higher quality applications = higher customer satisfaction

Next Steps Download one of my whitepapers from www.quest.com under Application Management, solutions for Java: Extending the Continuous Integration Environment with Performance Testing (Part 1) Achieving Continuous Performance Management (Part II) Best Practices in Java Environment Performance Testing A Formal Performance Tuning Methodology: Wait-Based Tuning Sign up for my upcoming Java Performance Winner s Circle webcast series on performance testing, tuning, and management at www.quest.com under Application Management, solutions for Java (starts in March 2008) Watch my Continuous Integration OnSoftware Video Podcast on www.informit.com (or itunes) Read my forthcoming digital shortcut book, Agile Java Development with Test-Driven Development and Continuous Integration, on www.informit.com Read my latest book, Pro Java EE 5 Performance Management and Optimization, at your favorite book store

Next Steps cont d Quest Software Product Information: JProbe www.quest.com/jprobe PerformaSure www.quest.com/performasure Other Resources: JProbe Live Product Demo www.quest.com/events PerformaSure Product Demand www.quest.com/performasure Contact Quest Software Sales: www.quest.com/company/contact-us.aspx

Agenda State of the Market Test-Driven Development Continuous Integration Continuous Performance Management CPM in Practice Business Value Next Steps Thank You -- Q&A