Are you planning to deploy Web applications in the cloud? Will their performance be acceptable? What will you do to make sure?
There are a lot of good reasons to deploy applications in a cloud environment — but they are all forgotten if your application is slow or has poor availability. Poor performance results in unhappy, lost customers. Traditional data center techniques for monitoring, measuring, and optimizing Web application performance won’t work in the cloud. There are a new set of best practices that you need to learn to optimize the performance of your cloud-based Web applications.
9. Cloud computing can help but it is not a slam dunk Cloud can provide scale on-demand Need more instances? Provision them! But, cloud infrastructure is largely opaque You don’t know what hardware virtual machines are running on You don’t know what the network infrastructures looks like You don’t know with whom you are sharing
14. Based upon Forrester’s Blazing Fast Web site performance research Ongoing research stream dedicated to performance, scale, and fault tolerance resulting in published research and best practices Ongoing cloud computing vendor landscape and architecture research Constant Web architecture assessments and recommendations for a broad range of eCommerce, social, and media Web properties. User experience trends and design best practices research
17. Browser performance varies widely Source: Gomez sampled 160 million pages across several Websites over a 30 day period from broadband users in the United States
21. Best practices: Measure, monitor, and respond Test and monitor performance from your customer’s perspective. Baseline performance metrics with frequent reporting frequency Know what elements of your infrastructure are affecting performance. Use testing to determine the impact of key changes.
25. Best practices: Make liberal use of caching Design your pages to use the browser cache Add an edge cache Akamai, Contendo, Edgecast, and Limelight are options Cloud providers are also offering edge caching services. E.g. Amazon CloudFront, Microsoft Auzure CDN Deploy to multiple cloud regions/zones Cache application data, sessions, page fragments, and shared application state
28. Amazon EC2 easily scaled to handle addition traffic Peak of 5000 instances Launch of Facebook modification Steady state of ~40 instances
29. Best practices: Elastic architecture Implement a cloud bursting strategy Automate elasticity Using elastic caching platform. Isolate functions to scale them separately. Mitigate the risk of remote services.
30. Typical IT Web architecture scales app server tier – not data tier Load balancer Application server Application server Application server Application server Relational database
31. Elastic caching adds a layer to overcome data bottlenecks Load balancer Application server Application server Application server Application server Cache node Cache node Cache node Persistent data store
34. Best practices: Know your cloud provider Load and stress test in the cloud Cloud virtual machines won’t be the same as yours Understand the capacity of one instance in the cloud Test the impact of cloud bursting Test cloud services such as storage (e.g. Amazon S3) Test for elasticity How quickly can you provision new instances? Test for performance Include geography tests Continue to monitor the cloud
38. First steps to achieving blazing fast performance in the cloud Test performance from your customer’s perspective. Assess your current Web architecture to identify bottlenecks. Implement caching where it will help. Architect for elasticity. Load test your application on your cloud provider. Deploy to cloud. Watch carefully.
39. Thank you Mike Gualtieri +1 617.613.6145 mgualtieri@forrester.com Twitter: mgualtieri www.forrester.com
40. Best Practices For Ensuring Blazing Fast Cloud Applications Imad Mouline - CTO, Gomez, The Web Performance Division of Compuware @imadmouline
45. The Cloud Creates Performance Concerns The Cloud is opaque & shared Loss of visibility and control - traditional tools don’t apply Others can affect my performance
46. The Web Application Delivery Chain My users 3rd Party/Cloud Services Browsers and devices Local ISP Load Balancers Web Servers Other users Mobile Components Solution = “Outside-in” customer point of view App Servers Cloud Internet Other users MajorISP DB Servers Mobile Carrier Storage Mainframe Other users Network Content DeliveryNetworks The Cloud Is Opaque: How do you know if your application is really performing?
49. Web App Delivery Chain – Bottlenecks Revisited Natural bottlenecks are also optimization opportunities Potential bottlenecks Instance
50. “Make Liberal Use Of Caching” Validate Caching at the SERVER Long First Byte times a potential server-side caching opportunity
51. Geographic Latency – Europe-based Response time for sample transaction of reference application hosted on Amazon EC2 Europe West (Dublin), as measured from major European cities
52. Geographic Latency – US-based Response time for sample transaction of reference application hosted on Amazon EC2 US East (Virginia), as measured from major US cities
56. “Architect For Elasticity” Cloud makes it easier to use elastic architecture strategies Elasticity can come at a high expense Make sure to balance performance and cost Potential bottlenecks Instance
57. The Cloud Offers Unique Opportunities For Optimization Domain sharding is a common performance optimization In traditional hosting environment, it came at a price The Cloud, with proper planning, can provide sharding for free Potential bottleneck Bucket 1 Bucket 2
58. The Cloud Offers Unique Opportunities For Optimization Better performance, for little work, at no extra cost?
59. The Cloud Is Prepared For The Unknown Faced with constraints anywhere upstream from the browser, the cloud offers unique opportunities to expand capacity. Potential bottleneck Instance @ capacity Instance Dynamically provisioned
61. Impact Of Optimization Across Browsers & Mobile Devices Yesterday’s optimizations must be constantly revalidated Sharding fails to show benefit on modern browser Sharding shows a substantial performance hit on mobile devices such as the iPad
62. 4 – Know the Performance of Your Cloud Provider
63. “Know Your Cloud Provider” - Performance Average response time of reference app transaction across various Cloud providers, measured from several global locations
64. “Know Your Cloud Provider” – Availability Aggregate average availability of reference app on Opsource, Amazon EC2 US East, Amazon S3, GoGrid & Google AppEngine measured from global backbone locations
65. Best Practice: Define your goals and build a plan Align goals across your organization Why are we moving to the cloud? Common goals include: Additional Capacity – How much capacity do we need during normal and peak times? Improved End-User Experience – What performance goals are we trying to deliver against? Greater Elasticity – How quickly can the provider we select ramp up to meet our needs? Flexible Bursting – How fast do we need to be able to access additional capacity? If only there was a button to push!
66. Best Practice: Performance Testing Cloud Capabilities Evaluate vendors based on your goals… Capacity Test vendors to 15-20% past estimated capacity goals Elasticity Baseline end-user performance before & after testing Test during pre-deployment and in production Ramp elasticity testing to peak levels Burstability Isolate the cloud elements from other infrastructure to test Test the “failover process”
67. Mike Gualtieri - Senior Analyst, Forrester Research Imad Mouline - CTO, Gomez division, Compuware
Hinweis der Redaktion
Add a link to Public View
Photo source: AP
Source: http://benchmarks.gomez.com
Source: Gomez, Sampled 160 million pages across several Websites over a 30 day period from broadband users in the United States
Source: January 2010 “For Blazing Fast Web Site Performance, Caching Is King”
This is animoto. It’s an innocent-enough looking startup company that lets you turn photos and home movies into pretty cool little videos – PLAY – first video: “learn_more.m4v”This company lives entirely in the cloud and their business model is pretty interesting. Will go into it a bit here.
Graphics: (can we reproduce with animations for the red line and the call-outs?)They are the poster child for cloud scalability…and they are highly profitableAnd they plan to live entirely in the cloud – their e-mail is Gmail, their accounting, their HR, even their productivity suite is SaaS.And by getting everything in the cloud they aren’t investing in IT but instead are investing to expand their reach…you see the applicability of what they have built doesn’t stop with consumers…
Photo source: AP
Objects per page 345 San Jose, CA - AT&T 7.266057131 Quarry Bay, Hong Kong - CPCNet 7.564671247 London, UK - Global Crossing 8.594765267 Beijing,China - China Unicom 8.569770171 New York, NY - Sprint 8.852465203 Munich, Germany - Telefonica 10.414258212 Frankfurt, Germany - Deutsche Telekom 8.874623
Web applications are moving to the cloud - Percentage of web app transactions that include at least one object hosted on Amazon EC2So for 1 hr:42,368 unique tests1,010,751 unique test & Ips USEast USWest EUIreland AsiaPacSin AzureUSSouthCentralAzureUSNorthCentralAzureEUNorthAzureAsiaSoutheast----------- ----------- ----------- ----------- ------------------- ------------------- ------------ ------------------6861 279 1158 1 62 24 77 12
Issue here is that cloud can encourage bad behavior. Too easy to throw virtual hardware at a performance problem.
Issue here is that cloud can encourage bad behavior. Too easy to throw virtual hardware at a performance problem.
Enough scary news -
I think we want something that looks more like a stack of browsers on the left with some of that stack peeled off to hit a newly spun up instance. So, the top instance on the right might be @capacity, and the bottom one might say something like 'dynamically provisioned'.Also, in this case we want to make clear that the right hand side is your potential bottleneck.
Unique opp for optimization – Munich
Shard Non-shardIE 3.917 3.995FF 4.033 3.797iPad 24.470 23.821ajaxperformance.com-MSNBC.com-non-sharded at 23.821ajaxperformance.com-MSNBC.com-normal at 24.470
Opsource staticAmazon EC2 US East StaticAmazon S3 StaticGoGrid StaticGoogle AppEngine Static
SLA aligned to goals based on end-user availability and performanceAlign SLA to type of cloud What you should expect?