fbpx
Damir Špoljarič

Scaling je často skloňované slovo a zaklínadlo všech moderních online apps jako must have. Byť je často škálování považováno za výhradní atribut infrastruktury, pravdou je, že škálování ovlivňuje zejména aplikace a její technologické požadavky. Vysvětlíme si, čemu byste se měli jako vývojáři moderních aplikací pokusit vyhnout, aby byla zajištěna maximální možnost škálování.

Scaling, Autoscaling, Scale-up, Scale-out

Na začátek krátké vysvětlení základních pojmů. Škálování, tedy scaling, je navyšování výpočetních prostředků aplikací nebo paralelizace výpočetních jednotek (v zásadě stále „přidávání výkonu“). Pokud se má škálování odehrávat dynamicky a automaticky dle aktuální potřeby, jde o autoscaling. Autoscaling se rozhoduje podle různých metodik – load serveru, objem datových toků, počet requestů, latence requestu, množství chyb, které vrací aplikace z důvodu nemožnosti request odbavit.

V Zeropsu budeme u autoscaling podporovat téměř vše zde uvedené. Oproti AWS a jiným obdobným tradičním cloudovým službám však nebudeme uživatele trápit laděním metrik a Zerops provede nastavení podle best practices pro daný use case, zkrátka Zero Operations ;-).

škálování: scale up vs. scale out

Scale-up je model vertikálního škálování, což je nejtypičtější způsob škálování, na který aplikace nemusí být nijak zvlášť připravená. V zásadě jde o navyšování výkonu serveru. Tento model má tu nevýhodu, že často nejde provádět za běhu, jeho možnosti nejsou neomezené a je také možné, že některé aplikace již nedokáží takový výkon v rámci jednoho serveru utilizovat a bottleneck je poté někde „uvnitř“ aplikace.

Scale-out je škálování formou paralelizace výpočetních jednotek – přidávání serverů, virtuálních serverů, kontejnerů za load balancerem. Na tento způsob škálování musí být aplikace připravena, výhodou oproti tomu je větší rozsah možností škálování.

Scaling killer 1 – relační databáze

Nejtypičtějším zabijákem škálování jsou relační databáze (MySQL, PostgreSQL, …), což jsou produkty, které vznikly před více než 20 lety v době, kdy pojem škálování v tomto pojetí prakticky neexistoval. Podpora pro clusterování byla různě dolepována až následně, popř. řešena jinými produkty třetích stran. Nejdříve je tedy potřeba se zamyslet, zda vůbec relační databázi ve vaší aplikaci potřebujete používat.

Například e-shopy s objednávkami, fakturami, uživateli apod., vyžadující ukládání dat do něčeho, co splňuje vlastnosti ACID, se bez relační databáze neobejdou. Zamyslete se nad tím, zda není možné v případě vašeho use case použít některou z noSQL databází, které byly většinou už od začátku koncipovány jako clusterovatelné, tedy škálovatelné.

Stále se ještě setkávám s tím, že někdo do relační databáze ukládá logy, sessions a další, což jsou všechno věci, na které existují specializované nástroje (pro sessions například in-memory noSQL databáze redis, logy např. syslog apod.). Naprosto nejhorší z pohledu škálování a relačních databází jsou zápisové operace, kde je reálná možnost škálování pouze vertikálně.

U selectů je ještě možné provoz rozdělit. Například Amazon RDS umožňuje přidávat read-only replicy, Zerops bude podporovat Galera cluster jako službu a bude zajišťovat výrazně větší pohodlí z pohledu škálování. Nicméně princip nemožnosti škálovat zápisové operace horizontálně platí v obou případech. Měli byste se tak vyhnout například využívání relační databáze k ukládání různých statistik, číselných řad a dalších (přesně k tomuto účelu se hodí více noSQL databáze – mongo, ElasticSearch apod.).

Relační databázi z pohledu horizontálního škálování je třeba brát jako nutné zlo a operace, zejména zápisové, je potřeba maximálně omezit z pohledu náročnosti a intenzity.

Scaling killer 2 – sdílený filesystém

Moderní aplikace se bez sdíleného filesystému již obejdou, drtivá většina aplikací však stále ne. Aplikace předpokládá, že má v adresářové struktuře uloženy kromě aplikace i data – tedy obrázky, logy atd. Špatně napsané aplikace ukládají do adresářové struktury různé cache. Filesystém je další desítky let starou záležitostí, která již měla dávno zhynout.

Pokud se nebavíme o aplikaci globálního rozsahu a nepracuje se s filesystémem nekoncepčně, nejde zas o takový problém, protože se na limity pravděpodobně nemusí nikdy narazit. Pokud se ale s FS pracuje nekoncepčně, hrozí zásadní problém, který žádné škálování ničeho většinou nevyřeší, navíc jde často o problémy, které o sobě nedají vědět dříve, než se reálně projeví.

Typicky jde o :

  • špatnou adresářovou strukturu – ukládání statisíců (nebo mnohem více) objektů (souborů, adresářů) v jednom adresáři. Otevření takového adresáře pak mnohdy trvá spoustu minut.
  • velké množství operací s filesystémem – zbytečné operace při každém přístupu uživatele nad mnoha soubory a generování lstat operací (typicky jsou to funkce v PHPku na ověření existence obrázku při každém přístupu apod. nebo absence souborové cache, kdy aplikace při každém přístupu generuje přístup na filesystém)
  • ukládání cache do adresářové struktury – pokud ukládání do adresářové struktury, tak určitě ne do sdíleného filesystému mezi více servery, ale do ramdisku na lokálním serveru. Na sdíleném filesystému krok přetížení hrozí čekáním na soubor cache vlivem zámku souboru, který zrovna vytvořil jiný server, který s cache pracuje.
shared filesystem / sdílený filesystém

Jak si poradit bez sdíleného filesystému? Je nutné dodržovat základní filosofii rozdělení aplikace a dat. Aplikace by měla být provozuschopná i v read-only režimu (poté může běžet klidně v ramce) a neměla by vytvářet žádné lokální soubory (případný temp adresář pro dočasná nedůležitá data se řeší jako jeden zapisovatelný adresář umístění také na ramdisku). S daty se pracuje tak, že se použijí nástroje, které jsou k tomu určené – například syslog pro vzdálené logování, object storage pro práci s obrázky a dalšími uživatelskými daty, no a samozřejmě databáze.

Výše uvedení zabijáci škálování jsou nejčastější příčinou zhoršených možností škálování infrastruktury, se kterými se 11 let setkáváme u velkých internetových projektů.


vshosting~

Hned ze začátku nového roku se nejen hostingové firmy musely vypořádat s chybami na procesorech, které měly za následek doslova “restart internetu”. Jak jsme se s tím vypořádali my, a jaký vliv mělo první kolo prezidentské volby na špičky návštěvnosti zpravodajských portálů se dozvíte o pár řádků níže.

Bezpečnostní chyba procesorů a “restart internetu”

V procesorech se projevila dosud nejzávažnější bezpečnostní chyba, která postihuje více než 80 % serverů a počítačů po celém světě. Jako jedna z mála tuzemských hostingových firem jsme ihned začali připravovat aktualizace, testovat dopad na výkon a po vydání oficiálních aktualizací jsme se pustili do updatování, což znamená update a restart tisíců serverů. Stejně postupují i cloud providěři po celém světě. Jde o první událost, kdy se doslova „restartuje internet“.

Vánoce 2017 a prezidentská volba

VSHosting hostuje každý 3. e-shop v ČR a SR, a tak je vánoční sezóna vždy velkou zkouškou. I tentokrát vše dopadlo skvěle. Rovněž jsme se připravili, jako hosting velkých zpravodajských serverů a různých měřících nástrojů, které měří a de facto duplikují requesty největších zpravodajských portálů v ČR, na prezidentskou volbu. Kupodivu první kolo nepřineslo významné peaky v návštěvnosti, uvidíme co udělá 2. kolo.

CloudSpace finalizace

Finalizujeme službu CloudSpace, jejíž spuštění má drobné zpoždění, nicméně v lednu bychom měli vše dokončit a uveřejnit. CloudSpace umožní poskytnutí levného, prakticky neomezeného prostoru (až do řádu stovek TB) dostupného přes FTPS / SFTP / Rsync over SSH / webdav over SSL. Prostor je možné dynamicky zvětšovat a zmenšovat. Služba je postavena na technologii CEPH s trojnásobnou replikací dat a maximální bezpečností uložených dat. Služba bude vhodná pro odkládání velkých objemů méně prioritních dat, záloh apod.

Rozšiřování ServerParku

Kluci z HW/DC týmu pracují na rozšíření chlazení datacentra, díky čemuž bude ServerPark připraven na hostování dalších více než 1000 serverů. Blížíme se zaplnění, proto chystáme projekt ServerPark DC2, který bude v mnoha ohledech unikátním projektem v ČR. DC2 bude inspirován projekty jako je Facebook datacentrum a další.

100Gbps upgrade in progress …

Jako jediná hostingová firma v ČR a SR budeme disponovat 100Gbps upstreamy do globálního Internetu. Nemáme potřebu se chlubit vnitřním 100Gbps propojením, jako kdyby šlo o něco revolučního. Revoluční však je, že budeme mít 200Gbps+ do globálního Internetu, což zvyšuje propustnost linek a provozní bezpečnost při mimořádných událostech a neustále rostoucím trafficu.

Managed Tools

Připravili jsme pro naše managed zákazníky, kteří netrvají na klikacím control panelu, nástroj Managed Tools, který je poskytován k managed službám bezplatně a umožňuje provádět nejčastější operace s managed servery. Tyto funkce dále rozšiřujeme (managed tools podporuje například customizaci firewallu a nastavování výjimek apod.). Managed Tools je možné použít jen na nově instalovaných serverech.

Rozšíření VSHosting týmu a koho hledáme

V lednu do VSHostingu nastoupilo 6 nových kolegů a dalších 5 nastoupí v únoru. Rozšiřujeme týmy techniků, adminů, vývoje, HR, backoffice, obchodu, marketingu.. prakticky rozšiřujeme všechny týmy ;-). Jsme nejrychleji rostoucí firma v oboru v ČR/SR, pracujeme na spoustě nových zajímavých produktů a chystáme se na expanzi do zahraničí.

Koho aktuálně hledáme:

GDPR

Jak již bylo dříve avizováno, plánujeme, že našim klientům budeme nápomocni s plněním některých jejich povinností, vyplývajících z nařízení Evropského parlamentu a Rady 2016/679, označovaného nejčastěji jako GDPR. Toto nařízení nabývá účinnosti dne 28/5/2018. V případech, kde to stav smlouvy vyžaduje, podepíšeme s klienty dodatky ke smlouvám, které připravujeme, aby bylo vyhověno požadavkům nové regulace na obsah smlouvy ve věci zpracování osobních údajů, ve smyslu čl. 28 odst. 3 nařízení. Taktéž plánujeme, že klientovi poskytneme obecný popis technických bezpečnostních opatření přijatých naší společností při zpracování osobních údajů za účelem využití tohoto popisu klientem v rámci záznamů o zpracování osobních údajů ve smyslu čl. 30 odst. 1 písm. g) nařízení či čl. 30 odst. 2 písm. d) nařízení.

CloudMail zlepšení

CloudMail bude brzy rozšířen o následující funkce:

  • Plná podpora managesieve (konfigurovatelná i přes webmail) – filtry na straně serveru
  • Notifikace klientům o blížícím se zaplnění alokovaného limitu

Jaké nové produkty testujeme

V našem labu momentálně testujeme produkty HAProxy 1.8, která konečně podporuje http/2, ale zatím není nativně podporována v Debianu a MongoDB 3.6. Nově často nasazujeme na přání klientů již PHP 7.2.


Damir Špoljarič

Procesory obsahují dvě bezpečnostní chyby s názvy Meltdown a Spectre. Ty potenciálně umožňují útočným programům dostat se k datům, která jsou v počítači aktuálně zpracovávána. Meltdown je schopen přerušit bariéru, která je mezi uživatelskými aplikacemi a operačním systémem, a získat tak přístup do paměti v rámci stejného cloudu. Spectre umožňuje aplikacím dostat se do různých míst paměti. Chyba se týká x86-64 procesorů, tedy procesorů používaných ve všech cloudech po celém světě.

Náš bezpečnostní tým a tým infrastruktury na nápravách usilovně pracují. Po vydání updatů pro operační systémy, budeme úpravy nasazovat na všechny managed a interní servery. V médiích se objevují tvrzení o snižování výkonu až o desítky procent, což není aktuáně potvrzeno a bude to záležet na konkrétních případech. U serverů, kde by mohly nastat provozní komplikace v důsledku nedostatku výkonu, budeme klientům doporučovat preventivní navýšení výkonu.

V případě dotazů nás kontaktujte emailem na podpora@vshosting.cz

Doporučení:

Webové aplikace udržujte vždy kompatibilní s aktuálními verzemi PHP a dalších komponent, aby bylo možné udržovat aktuální verzi operačního systému, která je podporovaná komunitou či výrobcem včetně bezpečnostních aktualizací.

Dlouhodobě upozorňujeme uživatele na zastaralost PHP verzí až do verze 5.3 včetně (od jara 2018 od verze 5.4 dále). Zastaralost přináší komplikace z pohledu nutnosti provozování zastaralých verzí souvisejících knihoven a operačních systémů z důvodu kompatibility. Nové verze PHP (7+) navíc disponují výrazně větším výkonem. Nejde samozřejmě jen o verzi PHP, nicméně staré verze PHP nejčastěji tvoří blocker, a vytváří tak zbytečné bezpečnostní riziko.


Během 17 let jsme provedli úspěšnou migrací stovky klientů. Pomůžeme i vám.

  1. Domluvte se na konzultaci

    Stačí nám zanechat kontakt. Obratem se vám ozveme.

  2. Bezplatný návrh řešení

    Nezávazně probereme, jak vám můžeme pomoct. Navrhneme řešení na míru.

  3. Profesionální realizace

    Připravíme vám prostředí pro bezproblémovou migraci dle společného návrhu.

Zanechte nám svůj e-mail nebo telefon




    Nebo nás kontaktujte napřímo

    +420 246 035 835 V provozu 24/7
    konzultace@vshosting.cz
    Zkopírovat
    Obratem se vám ozveme