SlideShare a Scribd company logo
1 of 16
Download to read offline
Geographic Distribution
for Global Web Application Performance




                          Jacob Rosenberg
                        Operations Architect
                                           1
Agenda


• An Introduction to Geographic Distribution
     – How modern web architecture makes latency important
     – Setting realistic goals for latency and application performance
• Key Technique 1: Delivering static bits via content delivery networks
     – Don’t do more work than necessary - let content distribution networks deliver
       static bits of your site to your end users.
• Key Technique 2: Going Multi-Site - Challenges and Opportunities
     – Deliver your application simultaneously from multiple locations to improve the
       user experience and survive disasters.
• Q&A




                                                                                        2
Applications on the web are getting bigger
Most modern web pages are built out of dozens of individual objects…




                                                                       3
So, how does latency affect all these objects?
Initial connection and content delivery time are increased by latency




                                                                        4
So, what are the real numbers around latency?

Example: Keynote tests of a single-site web application (okay, it was
  Digg.com) delivered from the West Coast of the US to:
- San Jose, CA: 403ms (.4 seconds)
- New York, NY: 1,993 ms (2.0 seconds)
- Frankfurt, Germany: 3,658 ms (3.7 seconds)
- Bangalore, India: 6,224 ms (6.2 second)

Object Breakdown:
- 66 total objects
- 54 were static
     -   1 CSS
     -   12 javascript
     -   41 images




                                                                        5
So, what should my latency goal be?
- How fast is “good enough”?
     -   Akamai/Jupiter 4 second report: A study commissioned by Akamai found that users of
         commerce sites were unlikely to wait more than 4 seconds for a page. Full study can be
         found at http://www.akamai.com/4seconds
     -   Usability Researchers: Dr. Jakob Nielsen offers up basic advice for usability at
         http://www.useit.com/papers/responsetime.html suggesting 0.1 seconds for
         direct UI manipulation (e.g., drop or drag, fiddle with an AJAX widget, etc), and a 1
         second limit for a sense that the user is “freely navigating the command space”.
- Check it out yourself
     -   View your site with a latency emulator
     -   Recruit a geographically diverse beta community
     -   Remember: nobody every complains a site runs too quickly
- Rough guidelines
     -   First impressions are important: get the site entry point under 2 seconds
     -   AJAX applications go from cool to sluggish around 100ms per request
     -   Plan to use big multimedia? Send down a 25k loader, and fetch the rest later.
     -   Make sure to test on low speed links -- modems may be history but crowded WiFi can be
         worse




                                                                                                  6
Techniques to Reach Web
Performance Goals
Technique 1: Deliver static bits via Content Delivery Networks

• What is a Content Delivery Network?
    – For the purpose of this discussion, a CDN is a system of Web Cache Servers
      offered as a service to allow parts of your web application to be delivered to
      your end-users from a network location with better proximity.
    – Differing from a regular web cache (which fetches pages from any internet
      sites for end-users at a specific location or ISP), a CDN is a reverse proxy
      which caches content from a specific publisher to be delivered to users on the
      web at large.
    – To improve performance on your site, a CDN will need to have multiple
      distribution points in geographically diverse areas near your intended
      user communities, and some technology to localize users to the closest site.
    – Many companies operate CDNs commercially -- the largest is still Akamai. In
      addition, some sites build their own smaller scale CDN -- Wikipedia is a good
      example of this as they reveal all their hosting details.
    – In addition to providing performance improvement for your users, the CDN will
      offload traffic from your server complex (called the origin servers) which may
      result in reduced hosting costs or increased capacity.




                                                                                       8
Technique 1: Deliver static bits via Content Delivery Networks

• What do I do to implement a CDN?
    – Establish a relationship with a CDN provider of your choice.
    – Select an alternate name from which to serve static content.
        • If your site is at www.mysite.com, consider cdn.mysite.com
        • Preferably, chose an alternate base domain and keep it cookie free
    – Provision the name on your CDN provider via their process. Typically, provide:
        • The new hostname you have selected
        • The hostname where the content lives now (called the origin server)
        • Let them know how long to cache your content
    – When provisioning is complete, they will ask you to make DNS changes.
    – Finally, modify your site so that content is sourced from the CDN:
        <img src=“/images/logo.gif”>
        might become
        <img src=“http://cdn.mysite.com/images/logo.gif”>
    – Remember to modify all of your files including javascript and CSS which might
      have embedded links to static content. You can also move javascript and CSS
      files to the CDN as well, as long as they aren’t dynamically generated.




                                                                                       9
Technique 1: Deliver static bits via Content Delivery Networks

• Why should this technique be used?
    – Most of your site is probably static content
        • Count up your images, style sheets, javascript files, media, and other blobs
           of static content. I’ll bet it’s 75% of your object count.
        • Think creatively about what “static” really means -- anything that gets
           served the same to everyone, even if it changes every 5 minutes -- could
           be served as a static object.
    – Latency affects small objects in a disproportionate fashion
        • That 1k image will pay the same 100ms penalty to cross the Atlantic ocean
           that a 10 megabyte download will.
        • Many of the early page objects (especially CSS) download serially
    – It’s a fairly cheap fix
        • Plenty of competition means CDN costs compare favorable with what you’re
           probably paying for bandwidth, plus you’ll take load off your origins
    – It’s pretty easy
        • A little DNS and a few tweaks to your pages, and you’re set.
        • Get results in hours or days, not weeks or months



                                                                                     10
Technique 1: Deliver static bits via Content Delivery Networks

• When is this technique inappropriate?
    – Content which cannot be cached
       • CDNs rely on use of a cache to deliver content locally.
       • Personalized content typically cannot be cached.
       • Ad delivery which requires cache busting also is inappropriate for CDNs.




                                                                                    11
Technique 2: Going Multi-site -- Challenges and Opportunities

• What does it mean when you go multi-site?
    – Typically, a web product is served from one or more machines in a single
      physical location. Multi-site delivery is served from geographically diverse
      locations, typically for high availability and performance reasons.
    – Going multi-site requires design analysis to ensure that the application will
      continue to work as expected once split across multiple locations.
    – Frequent problems include:
        • Applications which keep a session on front-end servers, requiring the use of
          “sticky” or “cookie-based” load balancing, as this is difficult to maintain with
          multiple locations.
        • Applications with extremely large, high-volume content repositories, where
          maintaining data consistency across multiple locations may be difficult.
        • Applications which do back-end communication for clustering via broadcast
          or anycast, as linking together multiple sites may be difficult.




                                                                                         12
Technique 2: Going Multi-site -- Challenges and Opportunities

• What do I do to get my application to run multi-site?
    – Select appropriate geographically diverse locations to host your application.
       • Choose locations which can provide coverage with the latency you need
       • Network connectivity can be more important than physical geography
       • Consider diverse providers and networks to reduce risks
    – Deploy your application, making modifications as necessary
       • Strive to keep all locations as similar as possible (complexity drives cost)
       • Design to tolerate network interruptions between sites
       • Try to make the web tier as stateless as practical
    – Add a Global Server Load Balancing product to localize users
       • DNS-based GSLB with performance localization (not just Round Robin)
       • Available in some form on most every switch vendor (F5, Citrix, Cisco, etc)
       • Also offered as a service (UltraDNS, CDN providers, etc)
       • Make your GSLB servers the DNS authority for your distributed sites




                                                                                        13
Technique 2: Going Multi-site -- Challenges and Opportunities

• Why should this technique be used?
    – Going multi-site gets your entire product localized, dynamic and static
       • Some applications are almost exclusively dynamic content
       • In other cases, significant localization is easiest with multiple sites
    – Covering certain regions requires a physical presence (legal reasons)
       • Privacy/data retention laws (European Union)
       • Special network filtering requirements (China)
    – Building multiple, redundant sites reduces provider risk
       • Depend on multiple unrelated backbones and power grids
       • Protect against provider disputes, financial instability, growing pains
       • Avoid undue impact due to natural and man-made disasters




                                                                                   14
Technique 2: Going Multi-site -- Challenges and Opportunities
• When is this technique inappropriate?
    – Cost
       • Building more sites will probably cost more money
       • Geographically diverse sites will need some local staff
    – Application Design
       • Some applications just don’t work well when distributed
       • A few applications don’t benefit from lower latency




                                                                   15
Thanks!




          Questions?




                       email: jacob@aol.com


                                          16

More Related Content

What's hot

Dcs cloud architecture-high-level-design
Dcs cloud architecture-high-level-designDcs cloud architecture-high-level-design
Dcs cloud architecture-high-level-designIsaac Chiang
 
Ceph and openstack at the boston meetup
Ceph and openstack at the boston meetupCeph and openstack at the boston meetup
Ceph and openstack at the boston meetupKamesh Pemmaraju
 
Getting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick StinematesGetting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick StinematesAtlassian
 
Microservices, Kubernetes, and Application Modernization Done Right
Microservices, Kubernetes, and Application Modernization Done RightMicroservices, Kubernetes, and Application Modernization Done Right
Microservices, Kubernetes, and Application Modernization Done RightLightbend
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud ComputingSiva Arunachalam
 
Cloud computing - Latest Trend
Cloud computing - Latest TrendCloud computing - Latest Trend
Cloud computing - Latest Trendpoojanov04
 
Cloud computing and Service Platforms
Cloud computing and Service Platforms Cloud computing and Service Platforms
Cloud computing and Service Platforms Vibhawa Nirmal
 
How to Migrate to Cloud with Complete Confidence and Trust
How to Migrate to Cloud with Complete Confidence and TrustHow to Migrate to Cloud with Complete Confidence and Trust
How to Migrate to Cloud with Complete Confidence and TrustApcera
 
Cloud Foundry OpenTour Kiev Keynote
Cloud Foundry OpenTour Kiev KeynoteCloud Foundry OpenTour Kiev Keynote
Cloud Foundry OpenTour Kiev KeynotePatrick Chanezon
 
The Architecture of Continuous Innovation - OSCON 2015
The Architecture of Continuous Innovation - OSCON 2015The Architecture of Continuous Innovation - OSCON 2015
The Architecture of Continuous Innovation - OSCON 2015Chip Childers
 
Week 8 lecture material
Week 8 lecture materialWeek 8 lecture material
Week 8 lecture materialAnkit Gupta
 
Cloud computing and Cloud Enabling Technologies
Cloud computing and Cloud Enabling TechnologiesCloud computing and Cloud Enabling Technologies
Cloud computing and Cloud Enabling TechnologiesAbdelkhalik Mosa
 
Introduction to Cloud Computing - CCGRID 2009
Introduction to Cloud Computing - CCGRID 2009Introduction to Cloud Computing - CCGRID 2009
Introduction to Cloud Computing - CCGRID 2009James Broberg
 
Cloud presentation
Cloud presentationCloud presentation
Cloud presentationnich2533
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud ComputingUOS
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterpriseBert Poller
 
Scaling up to 30 m users
Scaling up to 30 m usersScaling up to 30 m users
Scaling up to 30 m usersYoav Avrahami
 
Cloud service models 101
Cloud service models 101Cloud service models 101
Cloud service models 101Nagaraj Shenoy
 

What's hot (20)

Dcs cloud architecture-high-level-design
Dcs cloud architecture-high-level-designDcs cloud architecture-high-level-design
Dcs cloud architecture-high-level-design
 
Ceph and openstack at the boston meetup
Ceph and openstack at the boston meetupCeph and openstack at the boston meetup
Ceph and openstack at the boston meetup
 
Getting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick StinematesGetting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick Stinemates
 
SQL Saturday San Diego
SQL Saturday San DiegoSQL Saturday San Diego
SQL Saturday San Diego
 
Microservices, Kubernetes, and Application Modernization Done Right
Microservices, Kubernetes, and Application Modernization Done RightMicroservices, Kubernetes, and Application Modernization Done Right
Microservices, Kubernetes, and Application Modernization Done Right
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud Computing
 
Cloud computing - Latest Trend
Cloud computing - Latest TrendCloud computing - Latest Trend
Cloud computing - Latest Trend
 
Cloud computing and Service Platforms
Cloud computing and Service Platforms Cloud computing and Service Platforms
Cloud computing and Service Platforms
 
How to Migrate to Cloud with Complete Confidence and Trust
How to Migrate to Cloud with Complete Confidence and TrustHow to Migrate to Cloud with Complete Confidence and Trust
How to Migrate to Cloud with Complete Confidence and Trust
 
Farming Dinosaurs
Farming DinosaursFarming Dinosaurs
Farming Dinosaurs
 
Cloud Foundry OpenTour Kiev Keynote
Cloud Foundry OpenTour Kiev KeynoteCloud Foundry OpenTour Kiev Keynote
Cloud Foundry OpenTour Kiev Keynote
 
The Architecture of Continuous Innovation - OSCON 2015
The Architecture of Continuous Innovation - OSCON 2015The Architecture of Continuous Innovation - OSCON 2015
The Architecture of Continuous Innovation - OSCON 2015
 
Week 8 lecture material
Week 8 lecture materialWeek 8 lecture material
Week 8 lecture material
 
Cloud computing and Cloud Enabling Technologies
Cloud computing and Cloud Enabling TechnologiesCloud computing and Cloud Enabling Technologies
Cloud computing and Cloud Enabling Technologies
 
Introduction to Cloud Computing - CCGRID 2009
Introduction to Cloud Computing - CCGRID 2009Introduction to Cloud Computing - CCGRID 2009
Introduction to Cloud Computing - CCGRID 2009
 
Cloud presentation
Cloud presentationCloud presentation
Cloud presentation
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterprise
 
Scaling up to 30 m users
Scaling up to 30 m usersScaling up to 30 m users
Scaling up to 30 m users
 
Cloud service models 101
Cloud service models 101Cloud service models 101
Cloud service models 101
 

Similar to Geographic Distribution for Global Web Apps

Contents Localization Initiatives to get better User Experience
Contents Localization Initiatives to get better User ExperienceContents Localization Initiatives to get better User Experience
Contents Localization Initiatives to get better User ExperienceBangladesh Network Operators Group
 
Cloud CDN Hosting
Cloud CDN HostingCloud CDN Hosting
Cloud CDN HostingComputeHost
 
Hybird Cloud - An adoption roadmap
Hybird Cloud - An adoption roadmapHybird Cloud - An adoption roadmap
Hybird Cloud - An adoption roadmapJohn Georgiadis
 
Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...
Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...
Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...Amazon Web Services
 
LOAD BALANCING ALGORITHMS
LOAD BALANCING ALGORITHMSLOAD BALANCING ALGORITHMS
LOAD BALANCING ALGORITHMStanmayshah95
 
Understanding application requirements
Understanding application requirementsUnderstanding application requirements
Understanding application requirementsCloud Genius
 
Improve Customer Experience with Multi CDN Solution
Improve Customer Experience with Multi CDN SolutionImprove Customer Experience with Multi CDN Solution
Improve Customer Experience with Multi CDN SolutionCloudxchange.io
 
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...Amazon Web Services
 
AWS Summit London 2014 | Dynamic Content Acceleration (300)
AWS Summit London 2014 | Dynamic Content Acceleration (300)AWS Summit London 2014 | Dynamic Content Acceleration (300)
AWS Summit London 2014 | Dynamic Content Acceleration (300)Amazon Web Services
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computingchrismik
 
IWMW 2003: C7 Bandwidth Management Techniques: Technical And Policy Issues
IWMW 2003: C7 Bandwidth Management Techniques: Technical And Policy IssuesIWMW 2003: C7 Bandwidth Management Techniques: Technical And Policy Issues
IWMW 2003: C7 Bandwidth Management Techniques: Technical And Policy IssuesIWMW
 
Delivering High Performance Websites with NGINX
Delivering High Performance Websites with NGINXDelivering High Performance Websites with NGINX
Delivering High Performance Websites with NGINXNGINX, Inc.
 
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008codebits
 
Auto Scaling for Multi-Tier Containers Topology
Auto Scaling for Multi-Tier Containers TopologyAuto Scaling for Multi-Tier Containers Topology
Auto Scaling for Multi-Tier Containers TopologyJelastic Multi-Cloud PaaS
 
Practical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter SvenssonPractical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter Svenssonrajivmordani
 
What is Nginx and Why You Should to Use it with Wordpress Hosting
What is Nginx and Why You Should to Use it with Wordpress HostingWhat is Nginx and Why You Should to Use it with Wordpress Hosting
What is Nginx and Why You Should to Use it with Wordpress HostingWPSFO Meetup Group
 

Similar to Geographic Distribution for Global Web Apps (20)

Contents Localization Initiatives to get better User Experience
Contents Localization Initiatives to get better User ExperienceContents Localization Initiatives to get better User Experience
Contents Localization Initiatives to get better User Experience
 
Cloud CDN Hosting
Cloud CDN HostingCloud CDN Hosting
Cloud CDN Hosting
 
Hybird Cloud - An adoption roadmap
Hybird Cloud - An adoption roadmapHybird Cloud - An adoption roadmap
Hybird Cloud - An adoption roadmap
 
CDN
CDNCDN
CDN
 
Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...
Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...
Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...
 
Transforming the web into a real application platform
Transforming the web into a real application platformTransforming the web into a real application platform
Transforming the web into a real application platform
 
LOAD BALANCING ALGORITHMS
LOAD BALANCING ALGORITHMSLOAD BALANCING ALGORITHMS
LOAD BALANCING ALGORITHMS
 
Understanding application requirements
Understanding application requirementsUnderstanding application requirements
Understanding application requirements
 
Improve Customer Experience with Multi CDN Solution
Improve Customer Experience with Multi CDN SolutionImprove Customer Experience with Multi CDN Solution
Improve Customer Experience with Multi CDN Solution
 
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
 
AWS Summit London 2014 | Dynamic Content Acceleration (300)
AWS Summit London 2014 | Dynamic Content Acceleration (300)AWS Summit London 2014 | Dynamic Content Acceleration (300)
AWS Summit London 2014 | Dynamic Content Acceleration (300)
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
IWMW 2003: C7 Bandwidth Management Techniques: Technical And Policy Issues
IWMW 2003: C7 Bandwidth Management Techniques: Technical And Policy IssuesIWMW 2003: C7 Bandwidth Management Techniques: Technical And Policy Issues
IWMW 2003: C7 Bandwidth Management Techniques: Technical And Policy Issues
 
Delivering High Performance Websites with NGINX
Delivering High Performance Websites with NGINXDelivering High Performance Websites with NGINX
Delivering High Performance Websites with NGINX
 
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
 
Auto Scaling for Multi-Tier Containers Topology
Auto Scaling for Multi-Tier Containers TopologyAuto Scaling for Multi-Tier Containers Topology
Auto Scaling for Multi-Tier Containers Topology
 
Practical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter SvenssonPractical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter Svensson
 
What is Nginx and Why You Should to Use it with Wordpress Hosting
What is Nginx and Why You Should to Use it with Wordpress HostingWhat is Nginx and Why You Should to Use it with Wordpress Hosting
What is Nginx and Why You Should to Use it with Wordpress Hosting
 
Best
BestBest
Best
 
Unit 4 PART 1.pdf
Unit 4 PART 1.pdfUnit 4 PART 1.pdf
Unit 4 PART 1.pdf
 

More from kkjjkevin03

World press photo 10
World press photo 10World press photo 10
World press photo 10kkjjkevin03
 
等等等的哲學
等等等的哲學等等等的哲學
等等等的哲學kkjjkevin03
 
大紅包子高高掛....掛
大紅包子高高掛....掛大紅包子高高掛....掛
大紅包子高高掛....掛kkjjkevin03
 
20091128 芒芒人海
20091128 芒芒人海20091128 芒芒人海
20091128 芒芒人海kkjjkevin03
 
時間管理幸福學
時間管理幸福學時間管理幸福學
時間管理幸福學kkjjkevin03
 
寫對廣告文案,讓銷售量提升3倍以上!
寫對廣告文案,讓銷售量提升3倍以上!寫對廣告文案,讓銷售量提升3倍以上!
寫對廣告文案,讓銷售量提升3倍以上!kkjjkevin03
 
成為文件指揮家!
成為文件指揮家!成為文件指揮家!
成為文件指揮家!kkjjkevin03
 
張忠謀:大學生要做的十一件事
張忠謀:大學生要做的十一件事張忠謀:大學生要做的十一件事
張忠謀:大學生要做的十一件事kkjjkevin03
 
你的孩子中文夠好嗎?
你的孩子中文夠好嗎?你的孩子中文夠好嗎?
你的孩子中文夠好嗎?kkjjkevin03
 
絕妙賺錢配方
絕妙賺錢配方絕妙賺錢配方
絕妙賺錢配方kkjjkevin03
 
做個跨國企業人
做個跨國企業人做個跨國企業人
做個跨國企業人kkjjkevin03
 
打動人心的企畫書
打動人心的企畫書打動人心的企畫書
打動人心的企畫書kkjjkevin03
 
競爭、野心、快樂秘方
競爭、野心、快樂秘方競爭、野心、快樂秘方
競爭、野心、快樂秘方kkjjkevin03
 
人對了,事就對了
人對了,事就對了人對了,事就對了
人對了,事就對了kkjjkevin03
 
學校沒教的大能力
學校沒教的大能力學校沒教的大能力
學校沒教的大能力kkjjkevin03
 
贏得尊敬,就贏了財富
贏得尊敬,就贏了財富贏得尊敬,就贏了財富
贏得尊敬,就贏了財富kkjjkevin03
 
預言中國大未來
預言中國大未來預言中國大未來
預言中國大未來kkjjkevin03
 

More from kkjjkevin03 (20)

World press photo 10
World press photo 10World press photo 10
World press photo 10
 
等等等的哲學
等等等的哲學等等等的哲學
等等等的哲學
 
大紅包子高高掛....掛
大紅包子高高掛....掛大紅包子高高掛....掛
大紅包子高高掛....掛
 
20091128 芒芒人海
20091128 芒芒人海20091128 芒芒人海
20091128 芒芒人海
 
時間管理幸福學
時間管理幸福學時間管理幸福學
時間管理幸福學
 
寫對廣告文案,讓銷售量提升3倍以上!
寫對廣告文案,讓銷售量提升3倍以上!寫對廣告文案,讓銷售量提升3倍以上!
寫對廣告文案,讓銷售量提升3倍以上!
 
郭台銘語錄
郭台銘語錄郭台銘語錄
郭台銘語錄
 
好事吸引力
好事吸引力好事吸引力
好事吸引力
 
成為文件指揮家!
成為文件指揮家!成為文件指揮家!
成為文件指揮家!
 
張忠謀:大學生要做的十一件事
張忠謀:大學生要做的十一件事張忠謀:大學生要做的十一件事
張忠謀:大學生要做的十一件事
 
你的孩子中文夠好嗎?
你的孩子中文夠好嗎?你的孩子中文夠好嗎?
你的孩子中文夠好嗎?
 
高薪的秘密
高薪的秘密高薪的秘密
高薪的秘密
 
絕妙賺錢配方
絕妙賺錢配方絕妙賺錢配方
絕妙賺錢配方
 
做個跨國企業人
做個跨國企業人做個跨國企業人
做個跨國企業人
 
打動人心的企畫書
打動人心的企畫書打動人心的企畫書
打動人心的企畫書
 
競爭、野心、快樂秘方
競爭、野心、快樂秘方競爭、野心、快樂秘方
競爭、野心、快樂秘方
 
人對了,事就對了
人對了,事就對了人對了,事就對了
人對了,事就對了
 
學校沒教的大能力
學校沒教的大能力學校沒教的大能力
學校沒教的大能力
 
贏得尊敬,就贏了財富
贏得尊敬,就贏了財富贏得尊敬,就贏了財富
贏得尊敬,就贏了財富
 
預言中國大未來
預言中國大未來預言中國大未來
預言中國大未來
 

Recently uploaded

Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...itnewsafrica
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialJoão Esperancinha
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessWSO2
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 

Recently uploaded (20)

Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorial
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 

Geographic Distribution for Global Web Apps

  • 1. Geographic Distribution for Global Web Application Performance Jacob Rosenberg Operations Architect 1
  • 2. Agenda • An Introduction to Geographic Distribution – How modern web architecture makes latency important – Setting realistic goals for latency and application performance • Key Technique 1: Delivering static bits via content delivery networks – Don’t do more work than necessary - let content distribution networks deliver static bits of your site to your end users. • Key Technique 2: Going Multi-Site - Challenges and Opportunities – Deliver your application simultaneously from multiple locations to improve the user experience and survive disasters. • Q&A 2
  • 3. Applications on the web are getting bigger Most modern web pages are built out of dozens of individual objects… 3
  • 4. So, how does latency affect all these objects? Initial connection and content delivery time are increased by latency 4
  • 5. So, what are the real numbers around latency? Example: Keynote tests of a single-site web application (okay, it was Digg.com) delivered from the West Coast of the US to: - San Jose, CA: 403ms (.4 seconds) - New York, NY: 1,993 ms (2.0 seconds) - Frankfurt, Germany: 3,658 ms (3.7 seconds) - Bangalore, India: 6,224 ms (6.2 second) Object Breakdown: - 66 total objects - 54 were static - 1 CSS - 12 javascript - 41 images 5
  • 6. So, what should my latency goal be? - How fast is “good enough”? - Akamai/Jupiter 4 second report: A study commissioned by Akamai found that users of commerce sites were unlikely to wait more than 4 seconds for a page. Full study can be found at http://www.akamai.com/4seconds - Usability Researchers: Dr. Jakob Nielsen offers up basic advice for usability at http://www.useit.com/papers/responsetime.html suggesting 0.1 seconds for direct UI manipulation (e.g., drop or drag, fiddle with an AJAX widget, etc), and a 1 second limit for a sense that the user is “freely navigating the command space”. - Check it out yourself - View your site with a latency emulator - Recruit a geographically diverse beta community - Remember: nobody every complains a site runs too quickly - Rough guidelines - First impressions are important: get the site entry point under 2 seconds - AJAX applications go from cool to sluggish around 100ms per request - Plan to use big multimedia? Send down a 25k loader, and fetch the rest later. - Make sure to test on low speed links -- modems may be history but crowded WiFi can be worse 6
  • 7. Techniques to Reach Web Performance Goals
  • 8. Technique 1: Deliver static bits via Content Delivery Networks • What is a Content Delivery Network? – For the purpose of this discussion, a CDN is a system of Web Cache Servers offered as a service to allow parts of your web application to be delivered to your end-users from a network location with better proximity. – Differing from a regular web cache (which fetches pages from any internet sites for end-users at a specific location or ISP), a CDN is a reverse proxy which caches content from a specific publisher to be delivered to users on the web at large. – To improve performance on your site, a CDN will need to have multiple distribution points in geographically diverse areas near your intended user communities, and some technology to localize users to the closest site. – Many companies operate CDNs commercially -- the largest is still Akamai. In addition, some sites build their own smaller scale CDN -- Wikipedia is a good example of this as they reveal all their hosting details. – In addition to providing performance improvement for your users, the CDN will offload traffic from your server complex (called the origin servers) which may result in reduced hosting costs or increased capacity. 8
  • 9. Technique 1: Deliver static bits via Content Delivery Networks • What do I do to implement a CDN? – Establish a relationship with a CDN provider of your choice. – Select an alternate name from which to serve static content. • If your site is at www.mysite.com, consider cdn.mysite.com • Preferably, chose an alternate base domain and keep it cookie free – Provision the name on your CDN provider via their process. Typically, provide: • The new hostname you have selected • The hostname where the content lives now (called the origin server) • Let them know how long to cache your content – When provisioning is complete, they will ask you to make DNS changes. – Finally, modify your site so that content is sourced from the CDN: <img src=“/images/logo.gif”> might become <img src=“http://cdn.mysite.com/images/logo.gif”> – Remember to modify all of your files including javascript and CSS which might have embedded links to static content. You can also move javascript and CSS files to the CDN as well, as long as they aren’t dynamically generated. 9
  • 10. Technique 1: Deliver static bits via Content Delivery Networks • Why should this technique be used? – Most of your site is probably static content • Count up your images, style sheets, javascript files, media, and other blobs of static content. I’ll bet it’s 75% of your object count. • Think creatively about what “static” really means -- anything that gets served the same to everyone, even if it changes every 5 minutes -- could be served as a static object. – Latency affects small objects in a disproportionate fashion • That 1k image will pay the same 100ms penalty to cross the Atlantic ocean that a 10 megabyte download will. • Many of the early page objects (especially CSS) download serially – It’s a fairly cheap fix • Plenty of competition means CDN costs compare favorable with what you’re probably paying for bandwidth, plus you’ll take load off your origins – It’s pretty easy • A little DNS and a few tweaks to your pages, and you’re set. • Get results in hours or days, not weeks or months 10
  • 11. Technique 1: Deliver static bits via Content Delivery Networks • When is this technique inappropriate? – Content which cannot be cached • CDNs rely on use of a cache to deliver content locally. • Personalized content typically cannot be cached. • Ad delivery which requires cache busting also is inappropriate for CDNs. 11
  • 12. Technique 2: Going Multi-site -- Challenges and Opportunities • What does it mean when you go multi-site? – Typically, a web product is served from one or more machines in a single physical location. Multi-site delivery is served from geographically diverse locations, typically for high availability and performance reasons. – Going multi-site requires design analysis to ensure that the application will continue to work as expected once split across multiple locations. – Frequent problems include: • Applications which keep a session on front-end servers, requiring the use of “sticky” or “cookie-based” load balancing, as this is difficult to maintain with multiple locations. • Applications with extremely large, high-volume content repositories, where maintaining data consistency across multiple locations may be difficult. • Applications which do back-end communication for clustering via broadcast or anycast, as linking together multiple sites may be difficult. 12
  • 13. Technique 2: Going Multi-site -- Challenges and Opportunities • What do I do to get my application to run multi-site? – Select appropriate geographically diverse locations to host your application. • Choose locations which can provide coverage with the latency you need • Network connectivity can be more important than physical geography • Consider diverse providers and networks to reduce risks – Deploy your application, making modifications as necessary • Strive to keep all locations as similar as possible (complexity drives cost) • Design to tolerate network interruptions between sites • Try to make the web tier as stateless as practical – Add a Global Server Load Balancing product to localize users • DNS-based GSLB with performance localization (not just Round Robin) • Available in some form on most every switch vendor (F5, Citrix, Cisco, etc) • Also offered as a service (UltraDNS, CDN providers, etc) • Make your GSLB servers the DNS authority for your distributed sites 13
  • 14. Technique 2: Going Multi-site -- Challenges and Opportunities • Why should this technique be used? – Going multi-site gets your entire product localized, dynamic and static • Some applications are almost exclusively dynamic content • In other cases, significant localization is easiest with multiple sites – Covering certain regions requires a physical presence (legal reasons) • Privacy/data retention laws (European Union) • Special network filtering requirements (China) – Building multiple, redundant sites reduces provider risk • Depend on multiple unrelated backbones and power grids • Protect against provider disputes, financial instability, growing pains • Avoid undue impact due to natural and man-made disasters 14
  • 15. Technique 2: Going Multi-site -- Challenges and Opportunities • When is this technique inappropriate? – Cost • Building more sites will probably cost more money • Geographically diverse sites will need some local staff – Application Design • Some applications just don’t work well when distributed • A few applications don’t benefit from lower latency 15
  • 16. Thanks! Questions? email: jacob@aol.com 16