( uid_4656 | 2014. 05. 19., h – 16:35 )

Én is adnék néhány tippet-tanácsot.

Ha igazán szépen és jól skálázható architektúrát akarsz, akkor a következő "rétegekben" kell tudnod skálázhatóságot nyújtani:

- DNS --> a www.akarmi.com név mögött round-robin módon legyen több IP-cím
- az így használni kívánt IP-címeket oszd el eszközökre dinamikusan úgy, hogy ha eszközök halnak meg, akkor menjenek át az IP-k másik eszközökre (ebben segíthet pl. a hálózati eszközökön a VRRP belövése, linuxon a keepalived (szintén VRRP) vagy a pacemaker - alaposan nézd meg őket, különböznek sokmindenben)
- ezeken az IP-címeken hallgatózzon a kérések route-olásáért felelős szoftver (ez lehet haproxy vagy nginx - az igényeid alapján a haproxy ideális lehet, mivel szépen tudja nézegetni, hogy melyik backend webszerverek vannak életben éppen)
- a kiszolgált tartalmak elé lehet tenni cache-t, itt a varnish-t érdemes nézegetni, mást nagyon nem (de jöhetnek tippek nekem is ebben)
- a statikus tartalmakra az nginx tényleg jó, ami még jobb lehet az az, ha kiviszed valamilyen CDN felhőbe az adatokat (de akkor ne hozd haza őket a varnish-ba)
- a dinamikus tartalmak előállítására a php-fpm tényleg jó lehet (bár nem mindig a legjobb, de azt írtad, hogy kimérted)
- a dinamikus tartalmak mögé is lehet tenni cache-t, itt sok lehetőség van (memcache, redis, mongodb - a megfelelő alkalmazásokkal, a memcache sok node-ra nem skálázódik olyan jól, mint a többi, kevés node-ra viszont cserébe sokkal jobb és egyszerűbb)
- ami nincs a cache-ben, az adatbázisban lesz - ACID adatbázist skálázni viszont nem jó mulatság, ha teheted keress más megoldást (itt is segíthet az, ha nem adatbázisban, hanem csak mögöttes cache-ben gondolkodsz, esetleg a "tényleg fontos, hogy konzisztens legyen" adatok pillanatnyi állapotát időnként kiszinkronizálva egy klasszikus adatbázisba

Ez az alap, ezt már többnyire csak butítani kell. :-)

A konkrét kérdéseidre:

- haproxy
- haproxy
- NTP (illetve a sticky session-re (így hívják azt, hogy ugyanazt a klienst mindig ugyanarra az appserverre küldje a load balancer) - haproxy)
- elég, de én mondjuk szoktam localhost-on futtatni egy mail szervert és a localhost-ot adom meg - nagyobb levélforgalomra jobba skálázódik, képes lesz szétdobálni a leveleket több különböző kimenő SMTP szerverre stb.
- az NFS-t az egészből úgy ahogy van, kihagynám, ha tehetném, de pont az OS az, aminek az esetében nem igazán fog fájni, az OS fájljaihoz való nyúlkálás általában nem függvénye a bejövő HTTP kérések mennyiségének, így nem zavaró a dolog
- fogalmam sincs :-)