• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
7 Stages of Scaling Web Applications
 

7 Stages of Scaling Web Applications

on

  • 72,397 views

Slides from LinuxWorld presentation by John Engates, CTO of Rackspace. Posted by permission.

Slides from LinuxWorld presentation by John Engates, CTO of Rackspace. Posted by permission.

Statistics

Views

Total Views
72,397
Views on SlideShare
67,398
Embed Views
4,999

Actions

Likes
253
Downloads
1
Comments
8

90 Embeds 4,999

http://www.rackspace.com 895
http://visionhack.de 893
http://ithelp.ithome.com.tw 402
http://www.excedesoft.com 351
http://hi-load.php.com.ua 319
http://local.sf2excedesoft.dev 305
http://www.webyantra.net 272
http://www.profyclub.org 243
http://webcrunch.ru 193
http://www.slideshare.net 163
http://www.hasanozgan.com 94
http://local.excedesoft2.com 82
https://twitter.com 77
http://wiki 77
http://local.excedesoft.com 65
http://www.i-knowledge.ru 41
http://www.saasburst.com 41
http://hi-load.social.php.com.ua 38
http://ipv6.excedesoft.com 29
http://www.ipv6.excedesoft.com 28
http://blog.ultrainno.com 27
http://yekmer.posterous.com 27
http://local.excedesoft-ale.com 27
http://www.cnblogs.com 25
http://siad.com.ar 23
http://www.mentormob.com 18
http://yekmer.blogspot.com 17
http://swdevlittleinfos.blogspot.com 14
http://feeds.feedburner.com 14
http://www.scoop.it 11
http://excedesoft.com 11
http://www.techiegyan.com 10
http://boand.ru 10
http://php.com.ua 10
http://www.schoox.com 9
http://207.97.206.44 9
http://ord.wip.rackspace.com 8
http://social.php.com.ua 8
http://www.excedesoft.com.ar 8
http://www.brijj.com 7
http://www.jasonslater.co.uk 7
http://profyclub.org 6
http://local.excedesoft.symf2.com 5
http://localhost 5
http://yok.to 5
http://grumpy.junta.com.au 4
http://wiki.body.local 4
http://tms.ivmx.pl:8080 4
http://www.devbrijj1.infoedge.com 3
http://kowidi.com 3
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

18 of 8 previous next Post a comment

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • simple and good!
    Are you sure you want to
    Your message goes here
    Processing…
  • Great work.

    Thanks for sharing.
    http://www.clickandsendparcel.com
    Are you sure you want to
    Your message goes here
    Processing…
  • Coast dresses with different vitality and color. This is your wardrobe an instant update of all those signals through the main trends for the coming occassion dresses fashion. Cheap coast clothing on sale, In order to buy coast dress you must keep yourself aware of the sale events happening in you town or local market. wedding dress which are in fashion may not be in trend in coming season. So the shops, small manufacturer and even designer offer Coast dress Bridal at the end of a season. You can buy it easily.Finding a Coast dress Black Tie Event at discount rate or cheap rate does not mean that the Coast dress Races are of poor quality or it is a defective piece. http://www.coastdresses-uk.net
    Are you sure you want to
    Your message goes here
    Processing…
  • Nice One ...
    Are you sure you want to
    Your message goes here
    Processing…
  • 7 stages to scale
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    7 Stages of Scaling Web Applications 7 Stages of Scaling Web Applications Presentation Transcript

    • The 7 Stages of Scaling Web Apps: Strategies for Architects John Engates CTO, Rackspace Presented: LinuxWorld Conference & Expo, San Francisco August 6, 2008
    • Agenda
      • Desirable Properties in a Web App
      • Typical Growth Scenario
      • Best practices
      • Q & A
    • Desirable Properties of a Web App
      • Scalability
      • High Availability
      • Performance
      • Manageability
      • Low Cost
      • Feature Rich
      • Generates $$$
    • High Availability Defined
      • High Availability (HA) is a design and implementation that ensures a certain degree of operational continuity.
      • In other words…
        • The site is up
        • The users are happy
        • The business is not losing money due to outages
        • (And the system doesn’t cost more than it’s worth)
    • Scalability Defined
      • What scalability is:
        • Scalability is a desirable property of a system which indicates its ability to either handle growing amounts of work in a graceful manner, or to be readily enlarged as demands increase.
      • What scalability is not :
        • Raw speed or performance (2 GHz vs. 3 Ghz)
        • About the operating system (Solaris vs. Linux)
        • About a particular software technology (Java vs. Python vs. Rails)
        • About a particular hardware platform (AMD vs. Intel)
        • About optimized code (10 lines of code vs. 1000)
        • About storage technology (SAN vs. NAS)
    • PERFORMANCE AND SCALABILITY ARE NOT THE SAME…
    • Performance
    • Scalability
    •  
    • Performance
    • Scalability
    • More Scalability
    • Truth #1
      • It won’t scale if it’s not designed to scale.
    • Truth #2
      • Even if it’s designed to scale, there’s going to be pain!
    • Pain Scale Back
    • Typical Growth Scenario
      • Stage 1 – The Beginning
      • Simple architecture
        • Firewall and load balancer
        • A pair of web servers
        • Database server
        • Internal storage
      • Low complexity and overhead means quick development and lots of features, fast
      • No redundancy, low operational cost – great for startups
    • Typical Growth Scenario
      • Stage 2 – More of the same, just bigger
      • Business is becoming successful – risk tolerance low
      • Add redundant firewalls, load balancers
      • Add more web servers for performance
      • Scale up the database and optimize with DBA help
      • Add database redundancy
      • Database storage moves to SAN or DAS
      • Still relatively simple from an application perspective
    • Typical Growth Scenario
      • Stage 3 – The Pain Begins
      • Publicity hits (Digg, Slashdot)
      • Squid or Varnish reverse proxy, or high end load balancers – to cache static content
      • Add even more web servers
        • Managing content becomes painful
      • Single database can’t cut it anymore
        • Split reads and writes - all writes go to a single master server with read-only slaves
      • May require some re-coding of the app
    • Scaling Through Database Replication
    • Typical Growth Scenario
      • Stage 4 – The Pain Intensifies
      • Caching with memcached
      • Replication doesn’t work for everything
        • Single “writes” database - Too many writes - Replication takes too long
      • Database partitioning starts to make sense
        • Certain features get their own database
      • Shared storage makes sense for content
      • Requires significant re-architecting of the app and DB
        • Devs may not have done this stuff before
    • Typical Growth Scenario
      • Stage 5 – This Really Hurts!
      • Panic sets in. Hasn’t anyone done this before?
        • Re-thinking entire application / business model
        • Why didn’t we architect this thing for scale?
      • Can’t just partition on features – what else can we use?
        • Partitioning based on geography, last name, user ID, etc
        • Create user-clusters
      • All features available on each user-cluster
      • Use a hashing scheme or master DB for locating which user belongs to which cluster
    • Typical Growth Scenario
      • Stage 6 – Getting (a little) less painful
      • Scalable application and database architecture
      • Acceptable performance
      • Starting to add new features again
      • Optimizing some of the code
      • Still growing, but it’s manageable
    • Typical Growth Scenario
      • Stage 7 – Entering the unknown…
      • Where are the remaining bottlenecks?
        • Power, Space
        • Bandwidth, CDN, Hosting provider big enough?
        • Firewall, Load balancer bottlenecks
        • Storage
        • People and process
        • Database technology limits – scalable, key-value store anyone?
      • All eggs in one basket?
        • Single datacenter
        • Single instance of the data
        • Difficult to replicate data and load balance geographically
    • Good Practices
      • Don’t re-invent the wheel, copy someone else
      • Think Simplicity
        • Everything should be made as simple as possible -- but not simpler. A. Einstein
      • Think horizontal…not vertical…on everything
        • “ How many?” vs. “how fast?”
      • Use commodity equipment
      • Make troubleshooting easy
        • Design for operation
        • Isolate services
        • Don’t change lots of things at once
    • More good practices…
      • Don’t spend your time over-optimizing
        • Get your architecture right, adjust often, optimize later (or never)
      • Test your ability to scale with appropriate load testing
        • Get a baseline before you think you need it
      • Use caching wherever it makes sense
      • Lots of memory and 64-bit architecture helps
      • Evaluate every feature vs. performance/scalability impact
        • Nice to have vs. have to have
    • Managing Change Protects Availability
      • Don’t underestimate the need for process and documentation
      • Release Management
        • Develop – Test – Release
        • Procedures in place to support these activities
      • Source Control
        • RCS, CVS, Subversion
      • Issue Tracking
      • Coding Standards
      • Change Management
        • Plan – Test – Implement
        • Critical for high availability infrastructure
      • Cloud Computing …
      • The Future?
    • Questions?
      • jengates “at” rackspace.com
    • http://racklabs.com
    • Help Wanted!