ivo jansch - the art of scalability
DESCRIPTION
Tweakers.net Developer Summit - presentatie Ivo Jansch - The art of scalability.TRANSCRIPT
http://[email protected]
@egeniq
Tweakers.net Developer Summit, March 24 2011Ivo Jansch / @ijansch
The Art of Scalability
What is Scalability?
“[...] Scalability is the ability of a system, network, or process, to handle growing
amounts of work in a graceful manner or its ability to be enlarged to accommodate that
growth.” - Wikipedia
2
Different levels of scale
3
Site Pageviews/month # Servers Views / server
Facebook 200B 30K 6.6M
Netlog 4B 600 6.6M
Hyves 6.5B 3000 2.1M
Tweakers 60M 15 4M
Nu.nl 340M 14 24M
(See end of slide deck for sources)
‣Content Delivery Network• http://www.akamai.com/
‣Search Engine• http://sphinxsearch.com/• (Also have a look at http://lucene.apache.org/solr/)
‣Database Replication
Some of the tools at Netlog
4
‣Caching• http://memcached.org/
‣Lightweight webserver• http://nginx.org/
‣Automated deployment• http://puppetlabs.com/
Some of the tools at Hyves
5
‣Content pre-generation
‣Varnish Edge Side Includes• http://www.varnish-software.com/
‣Distributed Job Queues• http://gearman.org/ *
* nu.nl uses a custom job queue but this is one I can recommend
Some of the tools at Nu.nl
6
Some of the tools at Facebook
‣PHP -> C++ compiler• https://github.com/facebook/hiphop-php
‣Distributed Logging• https://github.com/facebook/scribe
‣NoSQL Storage• http://cassandra.apache.org/
7
How can you scale?Start with the basics
8
Scaling with Hardware
If you run your app on multiple servers today, would it work?
Typical problem areas:‣ Sessions
‣ Files
9
Elasticity
10
A scalable funnel
Load balancer
11
WebServer
WebServer
WebServer
WebServer
WebServer
AppServer
AppServer
AppServer
Database Services
Load balancer
Load balancer
Logical/Functional partitioning
12
Scalable Architectures
‣Service Oriented Architecture
‣Component Based Design
‣Abstraction
13
Scalability in Software
‣Caching
‣Graceful Degradation
14
Food for ThoughtScaling Wisely
15
Food for thought
Remember, this talk is called:
“The Art of Scalability”
16
This is Art
17
“House of Stairs”M.C. Escher
But this is Art, too
18
“Composition with Blue”
Piet Mondriaan
Moral of this story
Scalability is about the ability to scale.
Don’t scale prematurely.
Keep it simple.
19
“You’re doing it wrong!”
“Scalability is the ability of a system, network, or process, to handle growing large amounts
of work in a graceful manner or its ability to be enlarged to accommodate that growth.”
20
Sources
The slide with servers and pageviews was based on:
‣ http://cns.ucsd.edu/lecturearchive09.shtml#Roth (Facebook)
‣ http://technologie.hyves.nl/ (Hyves)
‣ http://www.slideshare.net/folke/netlog-what-we-learned-about-scalability-high-availability-430211 (Netlog)
‣ http://www.slideshare.net/peter_ibuildings/surviving-a-plane-crash (Nu.nl)
‣ http://tweakers.net/reviews/331/5/tweakers-punt-net-faq-plans-stats-servers-en-site-software.html (Tweakers)
Credits
The following Creative Commons pictures were used in this presentation:
‣ ‘Datacenter Work’ by Leonardo Rizzi - http://www.flickr.com/photos/stars6/4381851322/
‣ ‘Rubber Band Man’ by Abe Novy - http://flickr.com/photos/thenovys/3791884189/
‣ ‘You’re doing it wrong’ by Adam Swank - http://www.flickr.com/photos/adeepbreath/3952587062/