Optimizing Web20 App Performance

Embed Size (px)

Citation preview

  • 8/14/2019 Optimizing Web20 App Performance

    1/30

    1

    Slow Cool, Aint Cool

    Hon Wong, CEO, Symphoniq Corporation

    Optimizing 'Web 2.0' Application Performance

  • 8/14/2019 Optimizing Web20 App Performance

    2/30

    2

    Ajax Web 2.0 apps

    newopportunities

    newperforma nce ma nag ement c hallenges

    Rea l userapproac h needed

    New approa c h in ac tion

    Q&A

    2

    Agenda

  • 8/14/2019 Optimizing Web20 App Performance

    3/30

    3

    The Evolving Web

    3

    Web 2.0Web as c omputing

    platform

    Users add va lue

  • 8/14/2019 Optimizing Web20 App Performance

    4/30

    4

    All In The Name of the End User

    4Web 1.0 Web 2.0 And beyond

    BrittleArchitecturesRigidTaxonomiesWebasInformation

    Source

    RichInternetApplications(RIA)LooselyCoupledArchitectures

    LooseFolksonomiesWebasInformation

    Collaboration

    TheNextBigKillerApp/FeatureUbiquitousComputing

    andAccessDynamicArchitectures

    SemanticWebWebasInformation

    Synthesis

  • 8/14/2019 Optimizing Web20 App Performance

    5/30

    5

    Cha llenges of the Ric h User

    Experience

    5

    NewUse Cases

    Distributed , high volumepub lish/ subsc ribe mod el

    Orga nic , user d riven a pp lic a tionevo lution with no QA p rocess

    Reuse of existing interna l or 3rd partyservices or c ontent

    Loose folksonomies rep lace rig id taxonomies in d a ta struc tures

    NewTec hnologies

    Comp lica ted Arc hitec tures:

    SOA, Web Services, REST, XML

    More c ha tty p rotocols / higherfreq uency of connec tions

    More log ic on the c lient, c rea tinganother potentia l bottlenec k

    RIA c onta iners reduc e visib ility intoclient experience

  • 8/14/2019 Optimizing Web20 App Performance

    6/30

    6

    Dea ling with the Cha llenge

    Web App DB

    Externa l App

    Log file analysis

    HTTP watch

    Network sniffers

    Load testers

    Server monitors

    Monitoring services

    Many more

    Traditional tools & techniques generateoceans of data no solutions

  • 8/14/2019 Optimizing Web20 App Performance

    7/30

  • 8/14/2019 Optimizing Web20 App Performance

    8/30

    8

    And Even if A Prob lem is

    Discovered

    0.00%

    2.00%

    4.00%

    6.00%

    8.00%

    10.00%

    12.00%

    14.00%

    16.00%

    18.00%

    5 days

    While most problems get solved in less than a day,30% of problems take more than a day to solve.

    Forrester Research

  • 8/14/2019 Optimizing Web20 App Performance

    9/30

    9

    Performanc e Management:

    Prac tic a l Question # 1

    When user satisfac tion has direc t business impac t, do you havethe luxury of blind ly assuming users are satisfied with

    application performance?

    Living is a form of not being sure, notknowing what next or howWe guess. We

    may be wrong, but we take leap after leap in

    the dark.

    Agnes de Mille

  • 8/14/2019 Optimizing Web20 App Performance

    10/30

    10

    "I'm an ocean, because I'm really deep.If you search deep enough you can find

    rare exotic treasures.

    Christina Aguilera

    Performance Management:

    Prac tic a l Question # 2

    When business happens in Web time, do you have time to

    search oc eans of performance data to p in-point the c ause ofslowdowns?

    10

  • 8/14/2019 Optimizing Web20 App Performance

    11/30

    11

    Strive for continuous

    improvement, instead ofperfection.

    Kim Collins

    When complexity and high-speed c hangemake perfec tion unatta inab le, do you have the ac tionab leinformation required to drive performance improvements?

    Performance Management:

    Prac tic a l Question # 3

    http://www.discoverstkitts.com/kim_gallery.htm
  • 8/14/2019 Optimizing Web20 App Performance

    12/30

    12

    Holistic Approac h to

    Performance Management

    Real User Monitoring

    How can I avoid being

    blind-sided by

    performance issues?

    Which users are being

    affected?

    How can I troubleshoot

    specific user issues?

    Web App Performance Service Level Assurance

    Why is my application

    slow?

    Which tier is causing the

    slowdown?

    Is it inside or outside the

    data center?

    How can I recreate orvalidate problems?

    What is the impact of

    performance problems

    on the business?

    How do I link

    performance criteria to

    specific business units?

    Web App DB

  • 8/14/2019 Optimizing Web20 App Performance

    13/30

    13

    Bottom Line Impac t o f

    Do Nothing

    Wasted ResourcesCosts 10x to fix the

    problem in production

    Slow = Off

    Wasted IT

    budget

    Inadequate tools

    to detect and

    diagnose

    problems

    Blame gametriage

    Distraction from core

    business

    Compromisestrategic

    initiatives

    Blindsided by

    performanceissues

    Brand damage

    Reduced

    productivity

    Employee

    downtime

    Time and resources consumed

    Trying to isolate problem

    Incomplete

    transactions

    Lost revenueCustomerabandonment

  • 8/14/2019 Optimizing Web20 App Performance

    14/30

    14

    Why Monitor from the Rea l

    User Perspec tive?

    RT (Payload / Bandwidth) + (AppTurns * RTT) + Cs+ Cc

    RT Response t ime of the transac t ion in seco nds

    PayloadThe amount o f info rmation (bytes) tha t must be de live red tothe user

    BandwidthMinimal bandwidth across all network links between the usera nd the d a ta c enter

    AppTurns Number of user and web site interac tions needed togenerate a user-level system response to a transac tion

    RTTRound-trip-time between the user and the data center

    Cs

    Tota l processing time required by the data center consisting

    of web servers, ap plication servers and da tabase servers

    Cc Total proc essing time required by the users PC

    Calculating end user response time is not

    practical

  • 8/14/2019 Optimizing Web20 App Performance

    15/30

    15

    Payload Varies grea tly transac tion to transac tion 3rd pa rty or c ac hed c ontent Non-page content like AJAX, Flash, Silverlight

    Bandwidth Varies greatly from user to user

    Varies from moment to moment

    AppTurns Varies grea tly transac tion to transac tion 3rd pa rty or c ac hed c ontent Non-page content like AJAX, Flash

    RTT Varies from moment to moment

    Cs

    Varies from transac tion to transac tion

    Dynamic da ta c enterwha t pa th will the transac tion take? Difficult to instrument app lica tions, esp . 3rd pa rty c od e

    Cc Varies from user to user, moment to moment

    Imp ac ted by last mile c ond itions

    Parameter

    How Rea l-Time Apps Dera il RT

    Calculations

    Limitations

  • 8/14/2019 Optimizing Web20 App Performance

    16/30

    16

    Measuring or Estimating Rea l User

    Response Time (RT)

    Empiric al / Approximate Direc t

    Passive SnifferInsta lled Ag ent

    orDynamic Injec tion

    Active Synthetic Monito ring (not app licab le)

    Measuring RT by

    listening-in and

    not adding load

    Measuring RT of

    artificially createdtransactions

    RT derived through

    measurement ofsurrogate parameters

    Measuring RT directlyat the browser

  • 8/14/2019 Optimizing Web20 App Performance

    17/30

    17

    Direc t Measurement a t Browser Only Viab le Approac h for Ajax

    Apps

    Last m ile c onnec tivity issues

    User side bandwid th or c ac hing

    Cha tty protoc ol (e.g., XML)

    Content delivery network

    User side resourc e limita tions impac ts Web 2.0 fea tures

    Javascript

    Med ia p layers (e.g., Flash, Silve rlight)

    Mash-up , SOA & SaaS mask performanc e issues

    Computing in the Cloud beyond the d a tac enter

    Web applications do not come together until

    the users browser

  • 8/14/2019 Optimizing Web20 App Performance

    18/30

    18

    Measuring or Estimating Rea l

    User Response Time (RT)

    Empiric al Direc t

    Passive SnifferInsta lled Ag ent

    orDynamic Injec tion

    Active Synthetic Monito ring (not app lic ab le)

    Measuring RT by

    listening-in and

    not adding load

    Measuring RT

    of

    artificially created

    transactions

    RT derived through

    measurement ofsurrogate parameters

    Measuring RT directlyat the browser

    Dynamically injects probe onto

    browser via Web server or ADC Non-intrusive

    No agent download

    No source code changes

    Measure RT & errors

    Applicable to all customer-facing

    or enterprise applications

    Dynamic Agent

    Download monitoring agent to PC

    Difficult & expensive to implement Convince users to download

    Maintain agents

    Potential compatibility issues

    Measure RT, errors & desktop

    statistics

    Only suitable for PCs under ITs

    direct control

    Installed Agent

  • 8/14/2019 Optimizing Web20 App Performance

    19/30

    19

    Beyond Monitoring End -to-End

    Management

    Web App DB

    Management

    Server + DB

    Externa l App

    SaaS

    Tier Time Detail

    Web

    App

    DB

    Ext 1

    Ext 2

    Tota l

    HTML, AJAX, Flash,Silverlight

  • 8/14/2019 Optimizing Web20 App Performance

    20/30

    20

    Meaningful, Correla ted &

    Ac tionab le Da taRT (as experienced by the end-

    user)

    Affec ted Partys IP Ad dress and URL

    Network Latency

    Parsing Time

    Objects Per Page

    Ob jec t Response Time

    Error or Abort Rate

    Base Page Response Time

    Response Time at Web , Application &Database Tier

    Server Responsible at Each Tier

    Server Parameters: CPU utilization, Memory,I/ O etc .

    Web Service Calls

    Method Call Tree

    SQL Queries

    Everythingmeasured fromthe rea l user s

    perspective

    Insight into app lic a tion

    Correla ted ac ross a ll tiers ofnetwork & infrastruc ture

  • 8/14/2019 Optimizing Web20 App Performance

    21/30

    21

    Rea l Time, End User Experienc eDriven Prob lem Resolution

    Detect Problem Based on RT

    Assess Impact

    Prioritize Issues

    Outside or Inside?

    Client or Network? Front or Back End?

    Identify

    Individual User

    Identify

    Individual IP

    Which Page,

    Object, WebService, Server?

    Which Object

    and Server?

    Trace Call Stack

    Method Call orSQL Query?

    Outside Inside

    Client Network Front End Back End

    Solve The Problem

  • 8/14/2019 Optimizing Web20 App Performance

    22/30

    22

    Performanc e Measurement

    Based on Rea l Users

  • 8/14/2019 Optimizing Web20 App Performance

    23/30

    23

    Quick Triage

    Directly relate real user RT to IT issues Not impacted by infrastructure configuration

    Accommodate 3rd party content, SOA etc.

    Focus resources on fixing the problem instead of

    reproducing the problem or pointing fingers

  • 8/14/2019 Optimizing Web20 App Performance

    24/30

    24

    Operate

    OptimizeRequirements

    Development Phase Production Phase

    Discover & fix performance bottle-necks

    under load prior to rollout

    Real-time detection & mitigation of

    performance issues

    Tuning Web Ap p .

    Performanc e Using Rea l Data

    DeployBuild

    Design

  • 8/14/2019 Optimizing Web20 App Performance

    25/30

    25

    Complexity Crea tes a

    Spec trum of User Experienc es

    Web App DB

    Externa l App

    HTML

    AJAXFlash,

    Silverlight

    Response Time

    #ofOccurrence

  • 8/14/2019 Optimizing Web20 App Performance

    26/30

    26

    How to Report App . Perf. to

    Business Owners

    One approach: Application Performance Index (Apdex)

    Standardized method for reporting app. perf. as defined by anallianc e o f companies and users (www.apdex.org)

    Reduced myriad of perf. metrics into a 0-to-1 sc ale (0=no user

    satisfied, 1=all users satisfied)

    APDEXT =Num. Satisfied Users + Num. Tolerating Users

    Total Num. Users

    =4T

    http://www.apdex.org/http://www.apdex.org/
  • 8/14/2019 Optimizing Web20 App Performance

    27/30

    27

    Aligning App Perf to Business

    Goals

    http://www.apdex.org/using.html
  • 8/14/2019 Optimizing Web20 App Performance

    28/30

    28

    Sample Ap dex Report

  • 8/14/2019 Optimizing Web20 App Performance

    29/30

    29

    Requirements of a

    Comprehensive Tool

    Provides visibility into

    browser-level

    performance, includingRIAs

    Detect performance

    problems in real time to

    minimize impact

    Report on business

    impact of performance

    problems Optimize application

    performance with

    historical trending and

    analysis

    Detect

    Isolate problems by

    tagging and tracing

    transactions throughinternal and 3rd party

    J2EE and .NET services

    Visibility into problem

    servers, services,

    method calls and SQLqueries

    Isolate Optimize

    Web App DB

  • 8/14/2019 Optimizing Web20 App Performance

    30/30

    30

    Thank you!

    For more information:

    Hon Wong

    CEOSymp honiq Corpora tion(650) 213-8889 x101

    hon@symphoniq .c om

    www.symphoniq.com