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.htm8/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.html8/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