Whitepaper. The Top 10 Tips to Improve Web Application Performance

Similar documents
Whitepaper. Continuous Integration Tools Applying Best Practices to the Toolchain

Principles of Continuous Integration

e-commerce Best Practices How Web and Mobile Performance Optimizes Conversion and User Experience

SOASTA Real User Monitoring Best Practices

SOASTA CloudTest Performance Data Retention and Security Policy. Whitepaper

8 Common Myths About Performance Testing in Production Don t Let These Misconceptions Keep You From Production Testing.

Five Strategies for Performance Testing Mobile Applications

Top 10 reasons your ecommerce site will fail during peak periods

The New Mandate in Mobile Testing Deliver Continuous Quality with Expertise, Automation and Real Devices

WHAT WE NEED TO START THE PERFORMANCE TESTING?

Cloudy with 100% Visibility: Monitoring Application Performance in Hybrid Clouds

Cloud Testing Production Applications CloudTest Strategy and Approach

Web Application Hosting Cloud Architecture

BUSINESS IMPACT OF POOR WEB PERFORMANCE

Combining Global Load Balancing and Geo-location with Emissary TM

Application Performance Testing Basics

Global Server Load Balancing

Rapid Bottleneck Identification

Perform-Tools. Powering your performance

Test Run Analysis Interpretation (AI) Made Easy with OpenLoad

Configuring Citrix NetScaler for IBM WebSphere Application Services

The Opportunity to Get the Best of All Worlds

The Value of Measuring End-User Experience from a Global Point of Presence. Web Application Monitoring Service.

10 Best Practices for Application Performance Testing

NetSpective Global Proxy Configuration Guide

Ensuring Business Continuity and Disaster Recovery with Coyote Point Systems Envoy

Resonate Central Dispatch

High Availability for Citrix XenApp

First Class Mobile Application Performance Management

Ready, Set, Go! or Slow?

Monitoring the Real End User Experience

Autodesk PLM 360 Security Whitepaper

Application Performance Management

Real-World Scale for Mobile IT: Nine Core Performance Requirements

Integration Maturity Model Capability #5: Infrastructure and Operations

Accelerating Web-Based SQL Server Applications with SafePeak Plug and Play Dynamic Database Caching

GLOBAL SERVER LOAD BALANCING WITH SERVERIRON

Monitoring Best Practices for

PIVOTAL CRM ARCHITECTURE

Request Routing, Load-Balancing and Fault- Tolerance Solution - MediaDNS

Relocating Windows Server 2003 Workloads

Global Server Load Balancing

Tuning Tableau Server for High Performance

WHITE PAPER September CA Nimsoft Monitor for Servers

The Top 10 Reasons Why You Need Synthetic Monitoring

FortiBalancer: Global Server Load Balancing WHITE PAPER

Application Security Manager ASM. David Perodin F5 Engineer

Server Scalability and High Availability

Response Time Analysis

The Incremental Advantage:

Site24x7: Powerful, Agile, Cost-Effective IT Management from the Cloud. Ensuring Optimal Performance and Quality Web Experiences

Managing the Performance of Cloud-Based Applications

Product Overview. UNIFIED COMPUTING Managed Load Balancing Data Sheet

Scalability in Log Management

Best Practices for Performance Testing Mobile Apps

Load and Performance Load Testing. RadView Software October

How To Synchronize With A Cwr Mobile Crm 2011 Data Management System

Simplified Management With Hitachi Command Suite. By Hitachi Data Systems

Load Balancing for Microsoft Office Communication Server 2007 Release 2

WAN Traffic Management with PowerLink Pro100

4 Steps to Surviving Big Data

Virtualized Domain Name System and IP Addressing Environments. White Paper September 2010

Dell Enterprise Reporter 2.5. Configuration Manager User Guide

APPLICATION PERFORMANCE MONITORING

Applying Data Center Infrastructure Management in Collocation Data Centers

Optimize Your Microsoft Infrastructure Leveraging Exinda s Unified Performance Management

Monitoring Best Practices for COMMERCE

VMware vcloud Networking and Security Overview

White Paper. Fundamentals of Performance Testing

Rapid Bottleneck Identification A Better Way to do Load Testing. An Oracle White Paper June 2009

The Power of the Unica Marketing Platform

Delivering Analytics that Scale

Achieving Zero Downtime for Apps in SQL Environments

Master the Might of the Hybrid Cloud

Wyse Device Manager TM

White paper: Unlocking the potential of load testing to maximise ROI and reduce risk.

MassTransit vs. FTP Comparison

Qlik Sense Enabling the New Enterprise

ScaleArc for SQL Server

Riverbed Stingray & Joyent Content Delivery Cloud

Mobile Application Testing

Mobile Performance Testing Approaches and Challenges

Data Driven Success. Comparing Log Analytics Tools: Flowerfire s Sawmill vs. Google Analytics (GA)

How To Test For Performance

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

Improve Business Productivity and User Experience with a SanDisk Powered SQL Server 2014 In-Memory OLTP Database

Service Virtualization:

Copyright 1

DRUPAL WEBSITE PLATFORM BUYER S GUIDE

Preparing Your IT for the Holidays. A quick start guide to take your e-commerce to the Cloud

Table of Contents. Overview... 1 Introduction... 2 Common Architectures Technical Challenges with Magento ChinaNetCloud's Experience...

Best Practices for Web Application Load Testing

Intelligent Tracking of Performance Storms in Complex Cloud Infrastructures

The Impact of Cloud Computing to Data Network Cabling White Paper

DNS ROUND ROBIN HIGH-AVAILABILITY LOAD SHARING

Fundamentals of Windows Server 2008 Network and Applications Infrastructure

Server & Application Monitor

THE QUEST FOR A CLOUD INTEGRATION STRATEGY

Enabling Database-as-a-Service (DBaaS) within Enterprises or Cloud Offerings

Transcription:

Whitepaper The Top 10 Tips to Improve Web Application Performance

Table of Contents Testing for the Lifecycle... 3 Tip No. 1: Bandwidth: Make Sure Everyone Can Get In... 4 Tip No. 2: Load Balancing: Make Sure Everyone Pulls Their Weight... 4 Tip No. 3: Watch for Application Issues... 4 Tip No. 4: Measure Database Performance... 5 Tip No. 5: Assess Your Architecture... 5 Tip No. 6: Ensure Proper Connectivity... 6 Tip No. 7: Don t Overlook Configuration Settings... 6 Tip No. 8: Watch Out for Shared Environments... 7 Tip No. 9: Verify Third-Party Services... 7 Tip No. 10: Create a Performance Culture... 7 Get Started Today... 8 About SOASTA, Inc... 8 SOASTA, Inc. Top 10 Tips to Improve Web Application Performance 2

Testing for the Lifecycle In labs around the world, development and testing teams face relentless pressure to ensure the software they create can deliver the uncompromising performance that users expect and demand. And in many organizations, that can encompass a globally distributed operation, requiring worldwide collaboration throughout the entire software development lifecycle. That s why it s essential to performance-test your applications every step of the way from the test lab to the production environment. Some issues, such as third-party services, content-delivery networks, and bandwidth constraints, will only manifest themselves in a production environment not in a test lab or staging environment. The following white paper describes the top 10 issues that development and testing teams should consider in their efforts to bring greater depth and breadth to their testing efforts and to derive the maximum performance from their Web applications. Note that these issues can be viewed in the context of the company s overall software architecture. From an internal infrastructure perspective, the issues to consider involve bandwidth, load balancing, application code, and database intricacies. At the perimeter of the infrastructure, we will examine architecture issues, connectivity, configuration settings, shared environments, and thirdparty services. Underpinning it all: a thorough understanding of the culture and mindset that must be instilled and ever-present across the entire development organization. SOASTA, Inc. Top 10 Tips to Improve Web Application Performance 3

Tip No 1. Bandwidth: Make Sure Everyone Can Get In Bandwidth is one of the most common issues that impacts load testing. While you may have planned carefully for the bandwidth, your application will need to generally sustain and maintain a proper user experience what happens when you experience surges in traffic? When a peak shopping season arrives (think: Cyber Monday), when high-interest media-intensive content draws thousands of simultaneous users, or when a social media campaign pulls in prospects do you have a pipe that s big enough for the traffic you ll see? Whether you have a broad site with thousands of pages or a simple site for a small company, it s difficult to test at full scale. One key to pay attention to: the use of unnecessarily large high-res files. For instance, one large beauty shot of a popular retail item can be a pointless bandwidth hog that disrupts the desired user experience. Or a jittery video can turn off would-be buyers. If you re operating on a global basis, users can arrive from different countries that have low bandwidth, making efficient performance more important than ever. Those slow connections as well as varying wireless conditions now also extend to mobile devices where carrier speeds can be notoriously finicky. One strategy to account for this variablility is to design your mobile and desktop apps differently. This means that those mobile apps, even when they share infrastructure with web apps, need to be performance tested differently. Understanding your customers and how they are assessing your site is critical, and testing plans must accomodate for mobile traffic and impact. Tip No 2. Load Balancing: Make Sure Everyone Pulls Their Weight Over the years, SOASTA has conducted tens of thousands of tests and logged more than 1 million hours in the cloud. In a majority of instances, load balancing issues emerge as a consistent impediment to proper performance. Load balancers can be very complex devices, presenting at least 15 different algorithms and countless permutations per environment. SOASTA CloudTests s ability to simultaneously monitor all back-end systems and infrastructure during the load test makes it easy to quickly identify resources that aren t being used to maximum capacity. After you ve identified those resources, adjust your load-balancing algorithm and retest to confirm you re deriving the expected utilization from each of those resources. And if you didn t configure it yourself, the lack of visibility makes load balancing even more of a black-box mystery. At a minimum, make sure you monitor and track your load balancers, looking specifically at CPU and memory consumption and SSL transactions. Tip No 3. Watch for Application Issues It s the inescapable reality and truth of all software development: There s no such thing as perfect code. And that means that everything in your app should be tested to find inefficient code, synchronization issues, code that s locking or blocking other functions (e.g. an e-commerce ordering system that can only process one order at the time), garbage collection memory leaks, or application deadlocks that bring your code to a standstill. Configuring the application is a critical piece of improving the performance of your Web application. This problem often manifests itself through page errors or response codes indicating missing resources or incorrect domains. Be vigilant for these errors when you re migrating your application from development to production. Back-end monitors can help identify latency and imbalanced CPU utilization, which can indicate application-configuration issues that must be addressed. SOASTA, Inc. Top 10 Tips to Improve Web Application Performance 4

Tip No 4. Measure Database Performance When was the last time you directly stress-tested your database? As your Web application grows more complex and you begin to store more information about your users, your database will slow down if you haven t optimized for your changing environment. For instance, make sure you generate and refresh indexes for all tables. Regularly review your SQL queries and statements to ensure optimum efficiency (and avoid returning too much or too little data). Monitor the memory usage as well as the connections into and out of the database. You also want to ensure your database locks by rows and not entire tables. One SOASTA customer had configured its order processing system to lock an entire order table when an order was being processed instead of merely locking the row. Under low volumes this wouldn t have a meaningful impact on performance. But as the company experienced higher volumes and concurrent orders, errors, timeouts and performance issues started to become disruptive. Once the customer identified the particular types of transactions that were failing at such a high rate (in this case ordering transactions), it quickly corrected the database configuration and experienced a significant performance improvement. SOASTA lets you directly load-test databases by defining database connection parameters and creating SQL statements to perform create, update, insert, and modify operations. This load testing lets you immediately and clearly understand the capacity and performance of your databases. You can even use this process/technique in a presales evaluation to compare alternative DBMSs and choose the one that maximizes performance and capacity. Finally, beware of the unrestricted, unmanaged growth of data in your databases. Many companies are finding it advantageous to implement careful data lifecycle programs that balance the sometimes-conflicting needs to compress and archive less-frequently used data with the need for optimal responsiveness for more current data. Tip No 5. Assess Your Architecture On the perimeter of the corporate software infrastructure, it s essential to factor in architectural considerations. Unbalanced tiers, mismatched technology choices, scalability limitations, suboptimal designs, and inefficient network configurations can all ultimately manifest themselves in poor application performance. With proper testing in place, you can bring these issues to the surface before they impact the user experience. As your application infrastructures age and become increasingly complicated, the various tests you conduct as well become increasingly difficult. SOASTA CloudTest serves as a central repository for all testing assets and information, including high-level information about CPU and memory settings. This means you can see and compare the configuration of the participant systems from the current load test vs. previous tests. For instance, are your servers optimally and fairly balanced? It s an issue that presents some subtle points to consider. A typical round robin load balancing might attempt to apportion work equally across all the servers in a cluster. However, if the servers in that cluster aren t identical say, some servers are older, aren t up-to-date on their patches, or are equipped with fewer/older CPU/memory resources, you wouldn t want the work assigned on a strict round-robin basis. You d want the more capable servers to receive a greater share of the processing load. SOASTA, Inc. Top 10 Tips to Improve Web Application Performance 5

Tip No 6. Ensure Proper Connectivity Connectivity is a crucial factor in Web application performance. How many connection points does your Web application have at the present time? Are you planning to revise, update, or change those connection types? If so, you want to have a clear understanding of happens to those applications when you make those proposed changes. SOASTA CloudTest visually displays the actual traffic from your Web and mobile applications to provide an accurate representation of resource utilization from various domains. It even provides detailed information around those resources during the load test, such as connection times, DNS lookup times, and HTTPS handshake times. For instance, there could be latency issues among various systems, as well as firewall capacity or DNS routing issues. It s a best practice to provide redundancy or failover for critical systems and that requires full testing as well. Finally, there could be varying performance profiles, such as mobile networks vs. LAN connections. Tip No 7. Don t Overlook Configuration Settings Configuration settings may be easy to overlook (and both tiresome and repetitive to deploy across countless environments), but it s essential that we don t settle for out-of-the-box defaults. The right configurations help improve performance (and strengthen security, to boot). Make sure you tune all environments from lab to staging to production, and apply those settings on a consistent basis. And as your infrastructure becomes more complex and diverse, it s increasingly difficult to confirm that the infrastructures in your test, development, and QA environments are, in fact, identical. One helpful technique is to baseline the testing environment. Run a reference load test on the infrastructure and run that same load test on another environment (or on the same environment at a different time). This will help you confirm you re getting the same results before you move forward with any code changes or identify areas where you can improve performance without making any code changes at all. SOASTA CloudTest makes it easy to compare testing results to ensure configuration settings are applied consistently across multiple environments. SOASTA CloudTest provides a central repository of all of your testing results. In a few clicks, you can see a results comparison from two or more systems / tests. SOASTA, Inc. Top 10 Tips to Improve Web Application Performance 6

Tip No 8. Watch Out for Shared Environments With many major sites employing complex architectures, you must be fully aware of all of the shared environments that can impact your application s performance. It s critical to not only communicate with stakeholders, but also be cognizant of your internal partners who share the same technical resources. For instance, in one recent test, a major retailer encountered this exact problem during Cyber Monday its peak sales day of the year. The site was unexpectedly unavailable to meet traffic demand and the company was forced to turn away crucial business. The error was still unidentified after 3 days, and another peak sales day was approaching. Through a series of quickly deployed load tests in the production environment, the culprit was identified: a lowly batch job that was reporting against the same database. After the batch job was rescheduled, the site was able to meet capacity goals for its next spike which happened one week later. This is a great example of how on-demand testing services can jump on an issue to run tests, analyze results, and identify and resolve issues quickly. Tip No 9. Verify Third-Party Services Many websites rely on third-party providers that connect to the site to provide additional data and crucial services, such as Google Analytics, credit card processing, or social-media widgets. These third-party services sit outside your architecture, but you must include them in your test plans because they have a direct impact on your Web application performance. The solution is rooted in end-to-end testing from the lab/development to pre-production staging to production. SOASTA CloudTest breaks down transactions by different domains so that can easily differentiate the response times and error rates coming from third-party systems. In one instance, a retailer experienced a significant failure from a rather unexpected source. The company was testing its site up to a very high capacity. Over the series of tests, the site, indeed, reached its target capacity, but when running test purchase transactions, the third-party payment processing system wasn t able to handle the load. The solution was to work with this third party partner to increase their capacity so the overall system could meet its volume goals. Tip No 10. Create a Performance Culture All of the proper testing in the world won t make a difference if your organization lacks a performance-centric culture. By emphasizing the importance of performance in all areas of your company, you can better plan, develop, and release a high-performing Web application. Ultimately, you want your processes and habits to be ingrained and oriented to finding and resolving issues identified in this paper. That starts with identifying who owns Web performance metrics in your organization. Empower that individual or team to gain the expertise they need and acquire the tools needed to execute a comprehensive, end-to-end test plan. SOASTA CloudTest has no geographic licensing restrictions and includes all HTTP protocols Web, Web services, JSON, AMF, and AJAX. An easy Web interface makes it easy for users in distributed locations to open a browser and create clips, run tests, or review results. Company-culture barriers such as internal non-technical issues can inhibit the organization from performing the proper levels of load testing they need. Sometimes, it stems from legacy load testing tools were previously licensed and implemented. They place geographic licensing. Or they charge additional fees for each incremental protocol you add such as AJAX or AMF. And they often involve a very heavy client installation that present unwelcome headaches for installation, deployment, and maintenance. SOASTA, Inc. Top 10 Tips to Improve Web Application Performance 7

Get Started Today Find out more about how SOASTA cloud-testing solutions can dramatically improve the performance of your Web applications. Get started for free by visiting http://soasta.com/free or email us at info@soasta.com. About SOASTA SOASTA is the leader in cloud testing. Its web and mobile test automation solutions, SOASTA CloudTest and SOASTA TouchTest, and SOASTA mpulse, enable developers, QA professionals and IT operations teams to test and monitor users with unprecedented speed, scale, and precision, and visibility. The innovative product set streamlines test creation, automates provisioning and execution, and analyzes real user behavior in real time distills analytics to deliver actionable intelligence faster. With SOASTA, companies can have confidence that their applications will perform as designed, delivering quality user experiences every time even in peak traffic. SOASTA s customers are many of today s most successful brands including Avaya, American Girl, Bonobos, Backcountry.com Chegg, Experian, Gilt Groupe, Hallmark, Intuit, Microsoft, and Netflix. SOASTA is privately held and headquartered in Mountain View, Calif. For more information about SOASTA, please visit http://www.soasta.com. Headquarters 650-210-4950 444 Castro St, Fourth Floor Mountain View, CA 94041 FAX: 650-210-4957 EMEA New Broad Street House 35-42 New Broad St. City of London Greater London EC2M 1NH ASIA Room 11/12 25/F Central Plaza No.381 HuaiHai Middle Road Shanghai, China, 200000 To learn more visit: soasta.com or email us at info@soasta.com 2014 SOASTA. All rights reserved. SOASTA, the SOASTA logo, SOASTA CloudTest, SOASTA TouchTest and SOASTA mpulse are trademarks of SOASTA. All other product or company names may be trademarks and/or registered trademarks of their respective owners. Connect with us: TEST FASTER. RELEASE SOONER.