SlideShare a Scribd company logo
1 of 28
Od hostingu k serveru
@tomas_corej
@websupport_cz
tomas.corej@websupport.sk
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
Webovy projekt

Všetci chcú, aby ich webové projekty išli
rýchlo a spoľahlivo.
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”
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
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
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
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...
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
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
Virtuálne servery
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
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
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
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
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
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
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
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
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
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
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...
Fyzické servery
Od 1 po n
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)
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
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
Ďakujem za pozornosť!

@tomas_corej
tomas.corej@websupport.sk

More Related Content

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

ONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhosting
ONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhostingONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhosting
ONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhostingKatarína Molnárová
 
The New Distrowatch – Bachelor's thesis (SK)
The New Distrowatch – Bachelor's thesis (SK)The New Distrowatch – Bachelor's thesis (SK)
The New Distrowatch – Bachelor's thesis (SK)Jakub Žitný
 
Čo sú to webové aplikácie ?
Čo sú to webové aplikácie ?Čo sú to webové aplikácie ?
Čo sú to webové aplikácie ?Drahoslav Madar
 
Správa pamäte
Správa pamäteSpráva pamäte
Správa pamätejerrycek
 
Zutom: Uvažujete o cloude? Spoznajte služby poskytovateľa cloudu a tých, ktor...
Zutom: Uvažujete o cloude? Spoznajte služby poskytovateľa cloudu a tých, ktor...Zutom: Uvažujete o cloude? Spoznajte služby poskytovateľa cloudu a tých, ktor...
Zutom: Uvažujete o cloude? Spoznajte služby poskytovateľa cloudu a tých, ktor...ASBIS SK
 
BarCamp - Zváračský kurz na Web
BarCamp - Zváračský kurz na WebBarCamp - Zváračský kurz na Web
BarCamp - Zváračský kurz na WebJuraj Michálek
 
Require.JS & Backbone.JS
Require.JS & Backbone.JSRequire.JS & Backbone.JS
Require.JS & Backbone.JSsrigi
 
ONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhosting
ONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhostingONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhosting
ONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhostingKatarína Molnárová
 
AppMonitor Insight Edition
AppMonitor Insight EditionAppMonitor Insight Edition
AppMonitor Insight EditionAdam Lieskovsky
 
Node.js @ Rubyslava
Node.js @ RubyslavaNode.js @ Rubyslava
Node.js @ RubyslavaIvan Srba
 
DataCore Software - The one and only Storage Hypervisor
DataCore Software - The one and only Storage HypervisorDataCore Software - The one and only Storage Hypervisor
DataCore Software - The one and only Storage HypervisorASBIS SK
 
Zváračský kurz na BlazeDS a Google App Engine
Zváračský kurz na BlazeDS a Google App EngineZváračský kurz na BlazeDS a Google App Engine
Zváračský kurz na BlazeDS a Google App EngineJuraj Michálek
 
Ako si vybudovat Digitalny Ekosystem 2017 - Miroslav Pikus - Cloud meni firmu
Ako si vybudovat Digitalny Ekosystem 2017 - Miroslav Pikus - Cloud meni firmuAko si vybudovat Digitalny Ekosystem 2017 - Miroslav Pikus - Cloud meni firmu
Ako si vybudovat Digitalny Ekosystem 2017 - Miroslav Pikus - Cloud meni firmuTeesys
 
WebJET Cloud pre hosting partnerov
WebJET Cloud pre hosting partnerovWebJET Cloud pre hosting partnerov
WebJET Cloud pre hosting partnerovlubosbalat
 
Zimbra: Vytvorte si privátny email cloud za 10 minút. Zadarmo.
Zimbra: Vytvorte si privátny email cloud za 10 minút. Zadarmo.Zimbra: Vytvorte si privátny email cloud za 10 minút. Zadarmo.
Zimbra: Vytvorte si privátny email cloud za 10 minút. Zadarmo.ASBIS SK
 
Posun od Microsoft Exchange ku Google Apps
Posun od Microsoft Exchange ku Google AppsPosun od Microsoft Exchange ku Google Apps
Posun od Microsoft Exchange ku Google AppsInnova Apps
 
Samuel Hopko & Daniel Rajčan - Cloud Computing
Samuel Hopko & Daniel Rajčan - Cloud ComputingSamuel Hopko & Daniel Rajčan - Cloud Computing
Samuel Hopko & Daniel Rajčan - Cloud ComputingDavinci software
 

Similar to Tomáš Corej: Od sdíleného hostingu po server (20)

ONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhosting
ONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhostingONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhosting
ONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhosting
 
Php sec
Php secPhp sec
Php sec
 
The New Distrowatch – Bachelor's thesis (SK)
The New Distrowatch – Bachelor's thesis (SK)The New Distrowatch – Bachelor's thesis (SK)
The New Distrowatch – Bachelor's thesis (SK)
 
Čo sú to webové aplikácie ?
Čo sú to webové aplikácie ?Čo sú to webové aplikácie ?
Čo sú to webové aplikácie ?
 
Správa pamäte
Správa pamäteSpráva pamäte
Správa pamäte
 
Zutom: Uvažujete o cloude? Spoznajte služby poskytovateľa cloudu a tých, ktor...
Zutom: Uvažujete o cloude? Spoznajte služby poskytovateľa cloudu a tých, ktor...Zutom: Uvažujete o cloude? Spoznajte služby poskytovateľa cloudu a tých, ktor...
Zutom: Uvažujete o cloude? Spoznajte služby poskytovateľa cloudu a tých, ktor...
 
BarCamp - Zváračský kurz na Web
BarCamp - Zváračský kurz na WebBarCamp - Zváračský kurz na Web
BarCamp - Zváračský kurz na Web
 
Require.JS & Backbone.JS
Require.JS & Backbone.JSRequire.JS & Backbone.JS
Require.JS & Backbone.JS
 
ONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhosting
ONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhostingONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhosting
ONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhosting
 
AppMonitor Insight Edition
AppMonitor Insight EditionAppMonitor Insight Edition
AppMonitor Insight Edition
 
GAMO Cloud
GAMO CloudGAMO Cloud
GAMO Cloud
 
Node.js @ Rubyslava
Node.js @ RubyslavaNode.js @ Rubyslava
Node.js @ Rubyslava
 
DataCore Software - The one and only Storage Hypervisor
DataCore Software - The one and only Storage HypervisorDataCore Software - The one and only Storage Hypervisor
DataCore Software - The one and only Storage Hypervisor
 
Zváračský kurz na BlazeDS a Google App Engine
Zváračský kurz na BlazeDS a Google App EngineZváračský kurz na BlazeDS a Google App Engine
Zváračský kurz na BlazeDS a Google App Engine
 
Ako si vybudovat Digitalny Ekosystem 2017 - Miroslav Pikus - Cloud meni firmu
Ako si vybudovat Digitalny Ekosystem 2017 - Miroslav Pikus - Cloud meni firmuAko si vybudovat Digitalny Ekosystem 2017 - Miroslav Pikus - Cloud meni firmu
Ako si vybudovat Digitalny Ekosystem 2017 - Miroslav Pikus - Cloud meni firmu
 
WebJET Cloud pre hosting partnerov
WebJET Cloud pre hosting partnerovWebJET Cloud pre hosting partnerov
WebJET Cloud pre hosting partnerov
 
Zimbra: Vytvorte si privátny email cloud za 10 minút. Zadarmo.
Zimbra: Vytvorte si privátny email cloud za 10 minút. Zadarmo.Zimbra: Vytvorte si privátny email cloud za 10 minút. Zadarmo.
Zimbra: Vytvorte si privátny email cloud za 10 minút. Zadarmo.
 
Posun od Microsoft Exchange ku Google Apps
Posun od Microsoft Exchange ku Google AppsPosun od Microsoft Exchange ku Google Apps
Posun od Microsoft Exchange ku Google Apps
 
Puppet Enterprise presented by Elostech
Puppet Enterprise presented by ElostechPuppet Enterprise presented by Elostech
Puppet Enterprise presented by Elostech
 
Samuel Hopko & Daniel Rajčan - Cloud Computing
Samuel Hopko & Daniel Rajčan - Cloud ComputingSamuel Hopko & Daniel Rajčan - Cloud Computing
Samuel Hopko & Daniel Rajčan - Cloud Computing
 

More from Develcz

Daniel Steigerwald: WYSIWYG je šik! (když funguje)
Daniel Steigerwald: WYSIWYG je šik! (když funguje)Daniel Steigerwald: WYSIWYG je šik! (když funguje)
Daniel Steigerwald: WYSIWYG je šik! (když funguje)Develcz
 
Ondřej Hlaváček: Životní cyklus featury
Ondřej Hlaváček: Životní cyklus featuryOndřej Hlaváček: Životní cyklus featury
Ondřej Hlaváček: Životní cyklus featuryDevelcz
 
Martin Hassman: Jak se tvoří addony pro World of Warcraft
Martin Hassman: Jak se tvoří addony pro World of WarcraftMartin Hassman: Jak se tvoří addony pro World of Warcraft
Martin Hassman: Jak se tvoří addony pro World of WarcraftDevelcz
 
Ondřej Voves: Jak přepsat monolit do mikroslužeb
Ondřej Voves: Jak přepsat monolit do mikroslužebOndřej Voves: Jak přepsat monolit do mikroslužeb
Ondřej Voves: Jak přepsat monolit do mikroslužebDevelcz
 
Marcel Šulek: Zpraste svoje kódy
Marcel Šulek: Zpraste svoje kódyMarcel Šulek: Zpraste svoje kódy
Marcel Šulek: Zpraste svoje kódyDevelcz
 
Michal Illich: Vývojáři staví letadlo
Michal Illich: Vývojáři staví letadloMichal Illich: Vývojáři staví letadlo
Michal Illich: Vývojáři staví letadloDevelcz
 
Ondřej Kokeš: Zpracování dat z veřejných zdrojů
Ondřej Kokeš: Zpracování dat z veřejných zdrojůOndřej Kokeš: Zpracování dat z veřejných zdrojů
Ondřej Kokeš: Zpracování dat z veřejných zdrojůDevelcz
 
Patrick Zandl: Open source software, hardware, 3D tiskárny a tvrdý business -...
Patrick Zandl: Open source software, hardware, 3D tiskárny a tvrdý business -...Patrick Zandl: Open source software, hardware, 3D tiskárny a tvrdý business -...
Patrick Zandl: Open source software, hardware, 3D tiskárny a tvrdý business -...Develcz
 
Štěpán Bechynský: Hardware pro IoT projekty nejen pro hobby, ale i pro průmysl
Štěpán Bechynský: Hardware pro IoT projekty nejen pro hobby, ale i pro průmyslŠtěpán Bechynský: Hardware pro IoT projekty nejen pro hobby, ale i pro průmysl
Štěpán Bechynský: Hardware pro IoT projekty nejen pro hobby, ale i pro průmyslDevelcz
 
Tomáš Vondra: Paralelizace dotazu a partitioning v PostgreSQL
Tomáš Vondra: Paralelizace dotazu a partitioning v PostgreSQLTomáš Vondra: Paralelizace dotazu a partitioning v PostgreSQL
Tomáš Vondra: Paralelizace dotazu a partitioning v PostgreSQLDevelcz
 
Tomáš Zvěřina: Flutter.io - multiplatformní vývoj mobilních aplikací
Tomáš Zvěřina: Flutter.io - multiplatformní vývoj mobilních aplikacíTomáš Zvěřina: Flutter.io - multiplatformní vývoj mobilních aplikací
Tomáš Zvěřina: Flutter.io - multiplatformní vývoj mobilních aplikacíDevelcz
 
Jakub Vrána: Dokazatelná bezpečnost
Jakub Vrána: Dokazatelná bezpečnostJakub Vrána: Dokazatelná bezpečnost
Jakub Vrána: Dokazatelná bezpečnostDevelcz
 
Roman Schejbal: From Madness To Reason
Roman Schejbal: From Madness To ReasonRoman Schejbal: From Madness To Reason
Roman Schejbal: From Madness To ReasonDevelcz
 
Michal Illich: Zuri aneb Vývojáři staví letadlo
Michal Illich: Zuri aneb Vývojáři staví letadloMichal Illich: Zuri aneb Vývojáři staví letadlo
Michal Illich: Zuri aneb Vývojáři staví letadloDevelcz
 
Ondřej Šika: Docker, Traefik a CI - Mějte nasazené všeny větve na kterých pra...
Ondřej Šika: Docker, Traefik a CI - Mějte nasazené všeny větve na kterých pra...Ondřej Šika: Docker, Traefik a CI - Mějte nasazené všeny větve na kterých pra...
Ondřej Šika: Docker, Traefik a CI - Mějte nasazené všeny větve na kterých pra...Develcz
 
David Majda: Autoformátování kódu
David Majda: Autoformátování kóduDavid Majda: Autoformátování kódu
David Majda: Autoformátování kóduDevelcz
 
David Grudl: Open source: The Good, the Bad and the Ugly
David Grudl: Open source: The Good, the Bad and the UglyDavid Grudl: Open source: The Good, the Bad and the Ugly
David Grudl: Open source: The Good, the Bad and the UglyDevelcz
 
Ondřej Machulda: Začíná zlatá doba end-to-end testů!
Ondřej Machulda: Začíná zlatá doba end-to-end testů!Ondřej Machulda: Začíná zlatá doba end-to-end testů!
Ondřej Machulda: Začíná zlatá doba end-to-end testů!Develcz
 
Adam Kudrna: Headless WordPress/Drupal
Adam Kudrna: Headless WordPress/DrupalAdam Kudrna: Headless WordPress/Drupal
Adam Kudrna: Headless WordPress/DrupalDevelcz
 
Jaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světě
Jaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světěJaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světě
Jaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světěDevelcz
 

More from Develcz (20)

Daniel Steigerwald: WYSIWYG je šik! (když funguje)
Daniel Steigerwald: WYSIWYG je šik! (když funguje)Daniel Steigerwald: WYSIWYG je šik! (když funguje)
Daniel Steigerwald: WYSIWYG je šik! (když funguje)
 
Ondřej Hlaváček: Životní cyklus featury
Ondřej Hlaváček: Životní cyklus featuryOndřej Hlaváček: Životní cyklus featury
Ondřej Hlaváček: Životní cyklus featury
 
Martin Hassman: Jak se tvoří addony pro World of Warcraft
Martin Hassman: Jak se tvoří addony pro World of WarcraftMartin Hassman: Jak se tvoří addony pro World of Warcraft
Martin Hassman: Jak se tvoří addony pro World of Warcraft
 
Ondřej Voves: Jak přepsat monolit do mikroslužeb
Ondřej Voves: Jak přepsat monolit do mikroslužebOndřej Voves: Jak přepsat monolit do mikroslužeb
Ondřej Voves: Jak přepsat monolit do mikroslužeb
 
Marcel Šulek: Zpraste svoje kódy
Marcel Šulek: Zpraste svoje kódyMarcel Šulek: Zpraste svoje kódy
Marcel Šulek: Zpraste svoje kódy
 
Michal Illich: Vývojáři staví letadlo
Michal Illich: Vývojáři staví letadloMichal Illich: Vývojáři staví letadlo
Michal Illich: Vývojáři staví letadlo
 
Ondřej Kokeš: Zpracování dat z veřejných zdrojů
Ondřej Kokeš: Zpracování dat z veřejných zdrojůOndřej Kokeš: Zpracování dat z veřejných zdrojů
Ondřej Kokeš: Zpracování dat z veřejných zdrojů
 
Patrick Zandl: Open source software, hardware, 3D tiskárny a tvrdý business -...
Patrick Zandl: Open source software, hardware, 3D tiskárny a tvrdý business -...Patrick Zandl: Open source software, hardware, 3D tiskárny a tvrdý business -...
Patrick Zandl: Open source software, hardware, 3D tiskárny a tvrdý business -...
 
Štěpán Bechynský: Hardware pro IoT projekty nejen pro hobby, ale i pro průmysl
Štěpán Bechynský: Hardware pro IoT projekty nejen pro hobby, ale i pro průmyslŠtěpán Bechynský: Hardware pro IoT projekty nejen pro hobby, ale i pro průmysl
Štěpán Bechynský: Hardware pro IoT projekty nejen pro hobby, ale i pro průmysl
 
Tomáš Vondra: Paralelizace dotazu a partitioning v PostgreSQL
Tomáš Vondra: Paralelizace dotazu a partitioning v PostgreSQLTomáš Vondra: Paralelizace dotazu a partitioning v PostgreSQL
Tomáš Vondra: Paralelizace dotazu a partitioning v PostgreSQL
 
Tomáš Zvěřina: Flutter.io - multiplatformní vývoj mobilních aplikací
Tomáš Zvěřina: Flutter.io - multiplatformní vývoj mobilních aplikacíTomáš Zvěřina: Flutter.io - multiplatformní vývoj mobilních aplikací
Tomáš Zvěřina: Flutter.io - multiplatformní vývoj mobilních aplikací
 
Jakub Vrána: Dokazatelná bezpečnost
Jakub Vrána: Dokazatelná bezpečnostJakub Vrána: Dokazatelná bezpečnost
Jakub Vrána: Dokazatelná bezpečnost
 
Roman Schejbal: From Madness To Reason
Roman Schejbal: From Madness To ReasonRoman Schejbal: From Madness To Reason
Roman Schejbal: From Madness To Reason
 
Michal Illich: Zuri aneb Vývojáři staví letadlo
Michal Illich: Zuri aneb Vývojáři staví letadloMichal Illich: Zuri aneb Vývojáři staví letadlo
Michal Illich: Zuri aneb Vývojáři staví letadlo
 
Ondřej Šika: Docker, Traefik a CI - Mějte nasazené všeny větve na kterých pra...
Ondřej Šika: Docker, Traefik a CI - Mějte nasazené všeny větve na kterých pra...Ondřej Šika: Docker, Traefik a CI - Mějte nasazené všeny větve na kterých pra...
Ondřej Šika: Docker, Traefik a CI - Mějte nasazené všeny větve na kterých pra...
 
David Majda: Autoformátování kódu
David Majda: Autoformátování kóduDavid Majda: Autoformátování kódu
David Majda: Autoformátování kódu
 
David Grudl: Open source: The Good, the Bad and the Ugly
David Grudl: Open source: The Good, the Bad and the UglyDavid Grudl: Open source: The Good, the Bad and the Ugly
David Grudl: Open source: The Good, the Bad and the Ugly
 
Ondřej Machulda: Začíná zlatá doba end-to-end testů!
Ondřej Machulda: Začíná zlatá doba end-to-end testů!Ondřej Machulda: Začíná zlatá doba end-to-end testů!
Ondřej Machulda: Začíná zlatá doba end-to-end testů!
 
Adam Kudrna: Headless WordPress/Drupal
Adam Kudrna: Headless WordPress/DrupalAdam Kudrna: Headless WordPress/Drupal
Adam Kudrna: Headless WordPress/Drupal
 
Jaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světě
Jaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světěJaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světě
Jaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světě
 

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.
  • 4. Webovy projekt Všetci chcú, aby ich webové projekty išli rýchlo a spoľahlivo.
  • 5. 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”
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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...
  • 10. 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
  • 11. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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...
  • 25. 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)
  • 26. 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
  • 27. 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