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

Nagy terhelésű webes rendszerek fejlesztése

Dec 18, 2014

Download

Education

János Pásztor

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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