Upload
steve-abatangle
View
222
Download
0
Embed Size (px)
Citation preview
7/31/2019 Scribd on Scaling
1/23
!"#$
%&'#(")$*+,-.$
/0+-,&1$2)"."+#,'&!
"#$%!&'!"()*+!,--.#/!
,(%!012!3114!
5(6-7!86)-79('!:;(6-7=&9?!('7!
@)AB&'!C-6'+.(9!:.)AB&'=&9?
mailto:[email protected]:[email protected]7/31/2019 Scribd on Scaling
2/23
/('3-4$5'3$6'#(")$7,#($
.0+-,&18$
!D-**2!).!7-/-'7+!
!C#.!)E!%F6-!*(#'=B)'G!(!+.(6.#/2!/6&$($*%!
!@B-!$-+.!H(%!.&!*(#'=B!(!+.(6.#/!.B-+-!7(%+!)+!.&!G-.!).!&'!@-=BI6#'=B2!J)GG2!"-77).2!-.=>!
!K!7&'F.!G-.!(+!9#=B!.)9-!.&!G6&H!
&6G(')=(**%!(+!%!#+-7!.&!
!K!&'*%!G-.!&'-!*(#'=B!L!7&'F.!H('.!%!
+).-!.&!E(**!&M-6
7/31/2019 Scribd on Scaling
3/23
9("$2)"4"0"..').$
!N.B-6!G6-(.!/*(=-+!.&!*&&A!E&6!)'E&!&'!.B)+!
! /&&=+>'-.!@B-!O7M-'.#6-+!&E!P=(*)'G!"()*+!
B../QRR/&&=+>'-.R311SRTR0TR.B-U(7M-'.#6-+U&EU+=(*)'GU+.(G-U0!
!P.-/B-'!V(-+!WX-6E&69('=-!"()*+Y!B../QRR6()*+-Z/6-++>7-R$*&GRE)*-+R+*)7-+R6#$%-'6()*+311S>/7E!
!"&$&.I&&/!$*&G!('7!G-9+!
B../QRRHHH>6&$&.=&&/>=&9R(6.)=*-+R311SR01R01R.B-U+&E.H(6-U('7UB(67H(6-U.B(.U6#'+UU+).-+!
!NF6-)**%!$&&A!W[)GB!X-6E&69('=-!,%P\]Y!
! ^.F+!'&.!6()*+2!$#.!).F+!6-(**%!#+-E#*
http://www.robotcoop.com/articles/2006/10/10/the-software-and-hardware-that-runs-our-siteshttp://railsexpress.de/blog/files/slides/rubyenrails2006.pdfhttp://poocs.net/2006/3/13/the-adventures-of-scaling-stage-17/31/2019 Scribd on Scaling
4/23
:,1$2,0#3)"$
!@B)+!/6-+-'.(.)&'!H)**!=&'=-'.6(.-!&'!HB(.F+!
7)EE-6-'.!E6&9!/6-M)+!H6).)'G+2!'&.!(!
=&9/6-B-'+)M-!&M-6M)-H!
!OM()*($*-!(.!B../QRRHHH>+=6)$7>=&9R$*&G
http://www.scribd.com/blog7/31/2019 Scribd on Scaling
5/23
;('$7"$+)"$
!P=6)$7>=&9!
! ])A-!WK@#$-!E&6!7&=#9-'.+Y!
! ](#'=B-7!)'!,(6=B2!3114!![('7*-+!_0,!6-`#-+.+!/-6!7(%
7/31/2019 Scribd on Scaling
6/23
7/31/2019 Scribd on Scaling
7/23
=3))"$/0),64$+)0(,#"0#3)"$
! 0!D-$!P-6M-6!
! T!J(.($(+-!P-6M-6+!
! T!J&=#9-'.!=&'M-6+)&'!+-6M-6+!!@-+.!('7!$(=A#/!9(=B)'-+!
!O9(d&'!PT
7/31/2019 Scribd on Scaling
8/23
/")>")$?+)47+)"$
!J#(*2!7#(*U=&6-!H&&7=6-+.+!(.!Ta[d!
! 0SaC!&E!9-9&6%!
! e!0fV!PIPI^!B(67!76)M-+!)'!(!"O^J!01!!D-!*-(6'-7Q!7)+A!+/--7!)+!)9/&6.('.!
!J&'g.!+A)9/h!%F6-!'&.!a&&G*-2!('7!).g+!
-(+)-6!.&!+=(*-!#/!.B('!.!!P&E.*(%-6!)+!(!G6-(.!7-7)=(.-7!B&+.)'G!
=&9/('%
7/31/2019 Scribd on Scaling
9/23
@+),'3.$.'A#7+)"$4"#+,-.$
!I-'.NP!
!O/(=B-R,&'G6-*!
!,-9=(=B-72!"&$&.I&&/F+!9-9=(=B-U=*)-'.!!P.-E('!V(-+F!P\]P-++)&'P.&6-!
! C-+.!H(%!.&!+.&6-!/-6+)+.-'.!+-++)&'+!
!,&').2!I(/)+.6('&!!X&+.E)Z
7/31/2019 Scribd on Scaling
10/23
B)+1C"$=+0(,&1$
! iD-!7&'F.!#+-!('%!/(G-!&6!E6(G9-'.!
=(=B)'G>i!U!6&$&.=&&/!
! iX*(%!H).B!E6(G9-'.!=(=B)'G!>>>!'&!
)9/6&M-9-'.2!=B('G-+!H-6-!6-M-6.-7!(.!(!
*(.-6!.)9->i!U!/&&=+>'-.!
!D-**2!9(%$-!).g+!(//*)=(.)&'!+/-=)E)=!
!P=6)$7!#+-+!E6(G9-'.!=(=B)'G!-Z.-'+)M-*%2!
-'&69+!/-6E&69('=-!)9/6&M-9-'.
7/31/2019 Scribd on Scaling
11/23
/0)""&/('#
7/31/2019 Scribd on Scaling
12/23
?'7$#'$D."$B)+1C"$=+0(,&1$
! ^G'&6-!(**!$#.!.B-!9&+.!E6-`#-'.*%!(==-++-7!/(G-+!
! ]&&A!E&6!/)-=-+!&E!.B-!/(G-!.B(.!7&'g.!=B('G-!&'!-M-6%!/(G-!M)-H!('7!(6-!-Z/-'+)M-!.&!=&9/#.-!
! 5#+.!H6(/!.B-9!)'!(!jk!=(=B-:gA-%'(9-l?!7&!km!
n!
jk!-'7!km!
! J&!.)9)'G!.-+.!$-E&6-!('7!(E.-6H(67+h!$(=A.6(=A!#'*-++!+)G')E)=('.!/-6E&69('=-!G()'+!
! D-!+--!m!01o
7/31/2019 Scribd on Scaling
13/23
EFG,),&1$A)+1C".H$IJ$9,C"$6+."4$
!K!+B*7!6-(**%!#+-!9-9=(=B-7!E&6!+.&6)'G!E6(G9-'.+!! C-..-6!/-6E&69('=-!
! p(+)-6!.&!+=(*-!.&!9#*.)/*-!+-6M-6+!!,&+.!)9/&6.('.Q!(**&H+!.)9-U$(+-7!-Z/)6(.)&'!
!b+-!/*#G)'!B../QRR(G)*-H-$7-M-*&/9-'.>=&9R/*#G)'+R9-9=(=B-qE6(G9-'.+qH).Bq.)9-q-Z/)6%!
!J-(7!-(+%Q!
jk!=(=B-!gA-%'(9-l2!Q-Z/)6-!rm!01>9)'#.-+!7&!km!
>>>!jk!-'7!km
http://agilewebdevelopment.com/plugins/memcache_fragments_with_time_expiry7/31/2019 Scribd on Scaling
14/23
EFG,),&1$A)+1C".H$KJ$L+&3+--5$
!s&!'--7!.&!+-6M-!+.(*-!7(.(!
! 5#+.!#+-Q!
I(=B->7-*-.-:iE6(G9-'.QR/(6.)(*+RHB(.-M-6i?!!I*-(6!E6(G9-'.+!HB-'-M-6!7(.(!=B('G-+!
!OG()'2!-(+)-6!H).B!9-9=(=B-7
7/31/2019 Scribd on Scaling
15/23
9)+AA,0$%&+-5#,0.$
!a&&G*-!O'(*%.)=+!)+!')=-2!$#.!.B-6-!(6-!(!*&.!&E!
6-(+&'+!.&!6&**!%!&H'!.6(EE)=!('(*%.)=+!.&&!
! I('!$-!9#=B!9&6-!/&H-6E#*!
! K!=('!H6).-!P\]!.&!('+H-6!(6$).6(6%!`#-+.)&'+!
! I('!-Z/&+-!.&!#+-6+
7/31/2019 Scribd on Scaling
16/23
/0),64M.$+&+-5#,0.$
N.0)""&.('#.O
7/31/2019 Scribd on Scaling
17/23
:3,-4,&1$#)+AA,0$+&+-5#,0.H$G+)#$I$
! =6-(.-q.($*-!W/(G-qM)-H+Y!7&!t.t!
.>=&*#9'!W#+-6q)7Y2!Q)'.-G-6!
.>=&*#9'!W6-`#-+.q#6*Y2!Q+.6)'G2!Q*)9).!rm!311!
.>=&*#9'!W+-++)&'Y2!Q+.6)'G2!Q*)9).!rm!T3!
.>=&*#9'!W)/q(776-++Y2!Q+.6)'G2!Q*)9).!rm!0S!
.>=&*#9'!W6-E-6-6Y2!Q+.6)'G2!Q*)9).!rm!311!
.>=&*#9'!W#+-6q(G-'.Y2!Q+.6)'G2!Q*)9).!rm!311!
.>=&*#9'!W=6-(.-7q(.Y2!Q.)9-+.(9/!
-'7!
! O77!(!HB&*-!$#'=B!&E!)'7-Z-+2!7-/-'7)'G!&'! #-6)-+
7/31/2019 Scribd on Scaling
18/23
:3,-4,&1$#)+AA,0$+&+-5#,0.H$G+)#$K$
!I6-(.-!(!X(G-u)-H!&'!-M-6%!6-`#-+.!
!D-!#+-7!(!B('7U$#)*.!P\]!`#-6%!.&!.(A-!.!
.B-!O=.)M-"-=&67!&M-6B-(7!&'!.B)+!
!,)GB.!.6%!,%P\]F+!W)'+-6.!7-*(%-7Y!
!O'(*%.)=+!`#-6)-+!(6-!#+#(**%!B('7U=&7-7!
P\]!
!b+-!W-Z/*()'!+-*-=.Y!.&!9(A-!+#6-!,%P\]!)+!
#+)'G!.B-!)'7-Z-+!%!-Z/-=.
7/31/2019 Scribd on Scaling
19/23
:3,-4,&1$9)+AA,0$%&+-5#,0.H$G+)#$P$
!P=(*-+!/6-..%!H-**!
!Cb@!('(*%.)=+!`#-6)-+!-Z/-'+)M-2!=('!=*&G!#/!
9()'!JC!+-6M-6!
!N#6!+&*#.)&'Q!
! #+-!.H&!JC!+-6M-6+!)'!(!9(+.-6R+*(M-!+-.#/!
! 9&M-!(**!.B-!('(*%.)=+!`#-6)-+!.&!.B-!+*(M-
7/31/2019 Scribd on Scaling
20/23
*+,-.$7,#($C3-#,G-"$4+#+6+.".H$G+)#$I$
! iO.!.B)+!/&)'.!)'!.)9-!.B-6-F+!'&!E(=)*).%!)'!"()*+!.&!.(*A!.&!9&6-!.B('!&'-!7(.($(+-!(.!(!.)9->i!U!O*-Z!X(%'-2!@H)..-6!7-M-*&/-6!
! D-**!.B(.g+!.6#-!
! C#.!+-..)'G!.B)'G+!#/!%+-*E!)+!($.!01!*)'-+!&E!=&7->!
! @B-6-!(6-!'&H!(*+&!.H&!G6-(.!/*#G)'+!E&6!7&)'G!.B)+Q!
,(G)=!9#*.)U=&''-=.)&'+!
B../QRR9(G)=9&7-*+>6#$%E&6G->&6GR9(G)=q9#*.)q=&''!-=.)&'+R!
O=.+!(+!6-(7!&'*%($*-U!B../QRR6#$%E&6G->&6GRE6+RvG6/q)7rTef0
http://rubyforge.org/frs/?group_id=3451http://magicmodels.rubyforge.org/magic_multi_connections/7/31/2019 Scribd on Scaling
21/23
*+,-.$7,#($C3-#,G-"$4+#+6+.".H$G+)#$K$
!O.!P=6)$7!H-!#+-!.B)+!.&!+-'7!/6-U7-E)'-7!
-Z/-'+)M-!`#-6)-+!.&!(!+*(M-!
!@B)+!=('!$-!M-6%!)9/&6.('.!E&6!7-(*)'G!H).B!
*&=A!=&'.-'.)&'!)++#-+!
!K!=*7!(*+&!7&!(#.&9(.)=!*&(7!$(*('=)'G2!
$#.!+%'=B6&')d(.)&'!$-=&9-+!9&6-!
=&9/*)=(.-7!:6-(7!(!P\]!$&&A2!'&.!(!"()*+!)++#-?
7/31/2019 Scribd on Scaling
22/23
*+,-.$7,#($C3-#,G-"$4+#+6+.".H$0'4"$
! ^'!7(.($(+->%9*!+*(M-0Q!
B&+.Q!0w>ew>eT>3x!!y!%!+*(M-F+!^X!
7(.($(+-Q!/6&7#=.)&'!
#+-6'(9-Q!6&&.!
/(++H&67Q!/(++!
! J-E)'-!(!9&7-*!P*(M-0>6$!
=*(++!P*(M-0!j!O=.)M-"-=&67QQC(+-!
+-*E>($+.6(=.q=*(++!r!.6#-!
-+.($*)+Bq=&''-=.)&'!Q+*(M-0!-'7!
! DB-'!%!'--7!.&!6#'!(!`#-6%!&'!.B-!+*(M-2!;#+.!7&!
P*(M-0>=&''-=.)&'>-Z-=#.-:i+-*-=.!z!E6&9!+&9-q.($*-i?
7/31/2019 Scribd on Scaling
23/23
/(+C"-"..$/"-AQ2)'C'#,'&$
!P=6)$7>=&9Q!uIU$(=A-7!('7!B)6)'G!
! 5#+.!T!/-&/*-!+&!E(6c!m01!$%!-'7!&E!%-(6>!
!
OH-+&9-!+(*(6%R-`#).%!=&9$)'(.)&'!! ^E!%F6-!6-(7)'G!.B)+2!%F6-!/6&$($*%!.B-!
6)GB.!A)'7!&E!/-6+&'!
!C#)*7)'G!.B-!H&6*7g+!*(6G-+.!&/-'!7&=#9-'.!
*)$6(6%!
!p9()*Q!B(=A-6+=&9