nagy terhelésű webes rendszerek fejlesztése

48
Nagy terhelésű webes rendszerek fejlesztése Pásztor János

Upload: janos-pasztor

Post on 18-Dec-2014

1.278 views

Category:

Education


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Nagy terhelésű webes rendszerek fejlesztése

Nagy terhelésű webes rendszerek fejlesztésePásztor János

Page 2: Nagy terhelésű webes rendszerek fejlesztése
Page 3: Nagy terhelésű webes rendszerek fejlesztése

Mitől nagy terhelésű?

Page 4: Nagy terhelésű webes rendszerek fejlesztése

Tényleg szükség van rá?

Forrás: Rajcsányi Zoltán, partifotosok.hu

Page 5: Nagy terhelésű webes rendszerek fejlesztése

Mik az elvárások?

● Legyen magas rendelkezésre állású!

● Legyen skálázható!● Legyen nagyobb teherbírású!

Page 6: Nagy terhelésű webes rendszerek fejlesztése

Legyen magas rendelkezésre állású!Vagy mégsem?

Page 7: Nagy terhelésű webes rendszerek fejlesztése

LVS

Frontend

GFS2

DRBD

HA szoftverek

Page 8: Nagy terhelésű webes rendszerek fejlesztése

Együtt akár ilyenek is lehetnek

Page 9: Nagy terhelésű webes rendszerek fejlesztése
Page 10: Nagy terhelésű webes rendszerek fejlesztése

Legyen skálázható!Vagy mégsem?

Page 11: Nagy terhelésű webes rendszerek fejlesztése
Page 12: Nagy terhelésű webes rendszerek fejlesztése

Soft Launch„Launch early, launch crappy.”

Page 13: Nagy terhelésű webes rendszerek fejlesztése
Page 14: Nagy terhelésű webes rendszerek fejlesztése

Legyen nagyobb teherbírású!

Page 15: Nagy terhelésű webes rendszerek fejlesztése
Page 16: Nagy terhelésű webes rendszerek fejlesztése

DYNAMIC STATIC 2STATIC 1

Statikus tartalmak terjesztése

Page 17: Nagy terhelésű webes rendszerek fejlesztése

index.phpSzerver 1

login.phpSzerver 2

Munkamenetadatok

Munkamenet süti

Munkamenet süti

Munkamenet (session)

Page 18: Nagy terhelésű webes rendszerek fejlesztése

Felhasználókadatbázisa

Egyéb adatokadatbázisa

Webszerver

Feladatok bontása

Page 19: Nagy terhelésű webes rendszerek fejlesztése

Webszerver

Master

Master

Replikáció

Master-Master replika

Page 20: Nagy terhelésű webes rendszerek fejlesztése

Webszerver

Master

Slave

Replikáció

Slave

Írás

Olvasás

Olvasás

Master-Slave replika

Page 21: Nagy terhelésű webes rendszerek fejlesztése

Szolgáltatások lekapcsolása

Page 22: Nagy terhelésű webes rendszerek fejlesztése

Komplexitás

Page 23: Nagy terhelésű webes rendszerek fejlesztése

Mire lesz szükség?

Page 24: Nagy terhelésű webes rendszerek fejlesztése

Load balancer (Content Switch)

Page 25: Nagy terhelésű webes rendszerek fejlesztése

Switch

Page 26: Nagy terhelésű webes rendszerek fejlesztése

Szerver

Page 27: Nagy terhelésű webes rendszerek fejlesztése

Monitorozás

Page 28: Nagy terhelésű webes rendszerek fejlesztése

Monitorozó szoftverek

● Nagios● Munin● Monit● Collectd● NTop● Syslog-NG

Page 29: Nagy terhelésű webes rendszerek fejlesztése

Emberi tudás

Page 30: Nagy terhelésű webes rendszerek fejlesztése

Emberi tudás

● Hibakeresés● Wireshark, tcpdump, tcpflow● strace

● Erőforrás figyelés● top, ps, stb● Cachegrind

● SQL optimalizálás● Explain parancs használata● Maatkit● mysqltuner.pl

Page 31: Nagy terhelésű webes rendszerek fejlesztése

Kérdések eddig?(Még nincs vége...)

Page 32: Nagy terhelésű webes rendszerek fejlesztése

Építsünk blog szolgáltatást!

Page 33: Nagy terhelésű webes rendszerek fejlesztése
Page 34: Nagy terhelésű webes rendszerek fejlesztése
Page 35: Nagy terhelésű webes rendszerek fejlesztése
Page 36: Nagy terhelésű webes rendszerek fejlesztése
Page 37: Nagy terhelésű webes rendszerek fejlesztése
Page 38: Nagy terhelésű webes rendszerek fejlesztése
Page 39: Nagy terhelésű webes rendszerek fejlesztése
Page 40: Nagy terhelésű webes rendszerek fejlesztése

Kérdések ezzel kapcsolatban?

(Még mindig nincs vége...)

Page 41: Nagy terhelésű webes rendszerek fejlesztése

Global load balancing

Page 42: Nagy terhelésű webes rendszerek fejlesztése

CDN

● Statikus tartalmat szolgál ki● Globálisan load balance-olva● Megoldja a probléma 80-90%-át● Költséghatékony

Page 43: Nagy terhelésű webes rendszerek fejlesztése

Replikáció

MasterBudapest

SlaveUSA

● Lassú írások● Kötegelten célszerű megoldani● Hibakezelés kötelező

Page 44: Nagy terhelésű webes rendszerek fejlesztése

Adategységek mozgatása

● Jól skálázódik● Jó felhasználói élményt nyújt (gyors írások)● Több munka lefejleszteni● Csak bizonyos alkalmazások esetén működik

USA data node Budapest data nodeFelhasználó adatai

belépéskor

Page 45: Nagy terhelésű webes rendszerek fejlesztése

További olvasmányok● Andrew S. Tannenbaum, Albert S. Woodhull –

Operációs rendszerek (tervezés és implementáció)● Petrényi József – TCP/IP Alapok● Yahoo Developer Network - Best Practices for

Speeding Up Your Web Site● Adam Charnock – The Hitchhikers Guide to PHP

Load Balancing● Pásztor János – Nagy terhelésű rendszerek

fejlesztése (Weblabor)● David Heinemeier Hansson – The secret to making

money online

Page 46: Nagy terhelésű webes rendszerek fejlesztése

Még kérdések?(Most van vége.)

Page 47: Nagy terhelésű webes rendszerek fejlesztése

Képek

● http://www.wireshark.org/● http://kcachegrind.sourceforge.net/● http://www.monit.org/● http://www.munin.org/● http://www.nagios.org/● http://www.canihazcheezburger.com/● http://www.flickr.com/photos/djackmanson/3729849415/● http://www.flickr.com/photos/43235804@N04/4425128655● http://www.flickr.com/photos/gibbons/2294375187/

Page 48: Nagy terhelésű webes rendszerek fejlesztése

Jövő hétenSimon Bence: Objektum orientált programozás PHP nyelven

(második rész)

Akik segítettekBarabás Réka (DotRoll), Hirling Endre (DoclerWeb), Schmidt

Zoltán (Duodecad), Rajcsányi Zoltán (partifotosok.hu)

Linkshttp://www.doclerholding.com/

http://www.facebook.com/doclerakademiahttp://www.slideshare.net/janoszen