Publicidad
Publicidad

Más contenido relacionado

Más de Develcz(20)

Publicidad

Tomáš Corej: Od sdíleného hostingu po server

  1. Od hostingu k serveru @tomas_corej @websupport_cz tomas.corej@websupport.sk
  2. Kto som / Kto sme ● Systémový administrátor @ websupport.sk @ websupport.cz – 5,5 roka – Prevádzka a support – Programátor webu je pre nás často prostredníkom medzi klientom a nami Prevažne LAMP stack – Linux Apache MySQL PHP ● ● websupport.sk / websupport.cz – Najvačší hosting na Slovensku – Rast 1008 % ● ● Unlimited hosting Custom hosting
  3. Webovy projekt Všetci chcú, aby ich webové projekty išli rýchlo a spoľahlivo.
  4. Rýchlosť a spoľahlivosť ● Výber správneho produktu je klúčom – – Nesnažte sa napchať slona do chladničky – ● Nechoďte s kanonom na vrabce Odhadnút to však nie je jednoduché Počet premenných – – ● Prostredie s vyššou komplexnosťou trpí zložitejšími interakciami Empiricky sa ukázalo, že rýchlosť a spoľahlivosť rastie s dedikáciou zdrojov vyhradených pre web Škálovateľnosť aplikácie – “na localhoste mi to funguje”
  5. Zdieľaný hosting ● Zdieľaný hosting – Podmienky sa denno – denne menia – Provider je schopný ovplyvniť to, čo sa spúšťa na serveri, iba v obmedzenej miere Stovky/tisícky klientov na jednom serveri – Nízka cena – Predmetom optimalizácií – Zdrojov je skôr menej ako viac ● ● Nerozhodujte sa podľa meračov dostupnosti – ● dôležité sú detaily infraštruktúry providera Webová aplikácia by mala byť – Najjednoduchšia, ako sa dá – Spotrebovavať, čo najmenej zdrojov ● Napr. cachovanie
  6. Hosting – webserver ● Počet súborov – Cachovanie do adresára => milióny súborov ● PHP cache ● PHP parametre – ( memory_limit | post_max_size ) > 256M => niečo je zlé s aplikáciou ● Includovanie remotných súborov ● Zrušenie safe_mode/open_basedir ● Nezávislosť na umiestnení v adresárovej štruktúre
  7. Hosting – neustále pod útokom ● Používajte najaktuálnejšiu verziu CMS – Automatizované vyhľadávanie chybných CMS botnetom Rozosielanie SPAMu ● Označovanie webu ako malware Útok môže prísť aj cez FTP ● ● – ● Zavírené klientské počítače Fórum SPAM – Jednoduché galérie so stovkami tisíc správ
  8. Hosting – databáza (MySQL) ● Storage engine – ● Databáza lokálne a vzdialene robí rozdiel – ● nano vs mili query cache môže byť vypnutá alebo nastavená na DEMAND – ● MyISAM, InnoDB, Archive... SELECT SQL_CACHE ... SPAM – Nechránené formuláre ● Temporary tabuľky ● Indexy ● Správne dátové typy ● CMS majú možnosť zapnúť cachovanie DB – APC, memcache, filesystem...
  9. Hosting – emaily ● Emaily môžu lagovať ● Hromadné rozosielanie emailov – Roztiahnuť, čo do najdlhsieho časového intervalu Intenzívne rozosielanie je považované za agresívne Používať odladene implementácie mailerov ● ● PHPmailer Vyhnút sa SPAM prvkom ● ● – Zle zostavený email/hlavička – Chybné HTML emaily – VEĽKÉ PÍSMENÁ V PREDMETE SPRÁVY
  10. Hosting ● Webová aplikácia by mala čo najmenej zaberať zdrojov – ● Tak neskôr dôjde k interakcii Používať cachovanie, kde sa dá Ideálne do RAM ● Pozor na veľa malých súborov V prípade CMS ● ● – mať aktuálnu verziu ● Webové vstupy zaistiť cez CAPTCHA ● Používať najnovšiu verziu db – Ak je to možné, zvoliť vhodný storage engine tabuľky
  11. Virtuálne servery
  12. VPS ● Prechodom na virtualny server / cloud – Znížili sme komplexnosť na serveri – Iba naše aplikácie Máme pod kontrolou operačný systém ● ● Skrytá komplexnosť – Virtualizačná infraštruktúra môže byť veľmi komplikovaná – Nemáme na ňu dosah
  13. DevOps ● Programátor administrátorom – Programátor rozumie aplikácii lepšie ako admin – Admin rozumie lepšie prostrediu ako aplikácii – Premostenim tejto medzery DevOpsom vznikne lepšie fungujúca aplikácia
  14. LAMP ● Apache + mod_php – ● Defaultná konfigurácia môže spotrebovať veľa zdrojov Existuje veľa alternatív – Nedajú sa dobre aplikovať na zdieľaný hosting – Významne zrýchlia a zrobustnia web ● Občas si to však vyžaduje úpravu kódu => DevOps
  15. Aplikacie ● Apache (mod-php) vs Nginx ● php-fpm ● Varnish ● Memcache ● PHP cache – APC, xcache, eaccelerator ● MySQL alternatívy ● Konfiguračný manažment – CFEngine3, Puppet, Chef
  16. Nginx ● Veľmi optimálny webserver – Nízka konštantá spotreba RAM – Nízky overhead (10 000 spojeni = 2.5MB RAM) Vyborný na servovanie statiky - multimédia, HTML Podpora jazykov cez Fast CGI,uwsgi ● ● ● Reverzná proxy / load balancer – ● Vhodný, ako obrana pred niektorými útokmi Nemá podporu pre mod_rewrite pravidlá – Treba ich prepísať do inej syntaxe
  17. php-fpm ● FPM (FastCGI process manager) – Manager – fcgi procesov, ktorí spracúvajú PHP – Vhodný doplnok k nginx ● Vhodný na stránky s vačším trafficom
  18. Varnish ● Reverzná cachovacia proxy – – Sila spočíva v cachovaní statického obsahu do RAM – ● Ide pred web server Veľmi rýchle a konštantné odozvy Dramatický pokles loadu – ● Aj pri najnáročnejších weboch Efekt cachovania zavisí od aplikácie – Cookieless domain – ESI (pre prihlásených používateľov) – Yahoo - Best practices for speeding up your site
  19. memcache ● key=value db do RAM – Samozrejmosťou pri veľkých weboch ● Písaná s ohľadom na O(1) ● Vhodná na cachovanie výstupov z DB – Value max. do 1MB ● Ale aj templátov a iných dočasných dát ● Podpora v bežných CMS a frameworkoch – apt-get install php5-memcache memcached
  20. PHP cache ● APC, Xcache, eaccelerator... ● Odpadáva nutnosť parsovať PHP kód – Znižuje CPU záťaž – Mierne zvyšuje spotrebu pamäte zdieľanej Majú taktiež vlastnú key=value db ● ● – Integrácia s CMS
  21. MySQL alternativy ● Fork projektu MySQL ● MySQL vs MariaDB vs Percona Server – – MariaDB = komunita – Percona Server = vlastná verzia komunitnej verzie MySQL – ● MySQL = Oracle Drop-in replacement Cirkulácia patchov medzi projektami
  22. Konfiguračný manažment ● Infrastructure as a code – Predpis opisujúci konfiguráciu servera, serverov a aplikácii – Udržiavanie tejto konfigurácie Automatizácia – Change management ● Správa cez git Nástroje ● ● – Puppet (ruby) – Chef (ruby) – CFEngine3 ( C ) – A mnoho iných...
  23. Fyzické servery Od 1 po n
  24. K.I.S.S. ● Prechodom na fyzický server – Zbavili sme sa ďalšej (virtualizačnej) vrstvy – Jediná možnosť interakcie s vonkajškom je sieť ● Menej komponentov ktoré sa môžu pokaziť Už máme na starosti veci, ktoré sme skôr nemali: ● ● ● ● Správu OS Zálohovanie Monitoring (RAID)
  25. Risk manažment ● “Čo ak mi zlyhá server?” – Môže sa to stať aj pri iných službách – Zlyhávajú: Disky – RAID je povinnosť ● Zdroje – Je vždy dobré mať 2 ● CPU, motherboard – Ale to sa ešte nestalo (klop – klop) Ak sme už nevieme ubrať, alebo dôsledky rizika priveľké ● ● – Treba začať škálovať – Replikácia
  26. Záver ● Výber správneho produktu je veľmi dôležitý ● Ak musíte byť na hostingu – ● Aplikácia môže zmeniť chovanie s nárastom používateľov – ● Skúste znížiť svoj footprint na minimum Nedôverujte svojmu kódu na localhoste Na virtuálnom serveri – – ● Môžte znížíť svoje náklady výberom vhodných technológií Zvýšiť robustnosť Fyzický server – Najjednoduchšie zvýšenie rýchlosti a stability – Následne uvažovať o serverovej farme
  27. Ďakujem za pozornosť! @tomas_corej tomas.corej@websupport.sk
Publicidad