Jak se rodí nejrychlejší webhosting na trhu

[gtranslate]

V posledních měsících jsme nepsali žádné novinky o tom, co se u nás děje. Zkusíme to malinko napravit a prvním článkem bude pár informací o tom, jak jsme připravovali nejrychlejší hosting na trhu.

Poslední rok jsme připravovali nový webhosting. Na první pohled jej nepoznáte. Prodáváme jej jako původní službu, za původních podmínek, s původním názvem NoLimit a stále za stejnou cenu 25 Kč za měsíc.

Vzhledem k našim plánům expandovat do zahraničí jsme se rozhodli, že vytvoříme službu, která bude konkurenceschopná nejen v ČR (jako náš dosavadní hosting), ale neztratí se ani ve světě. Primárně jsme se zaměřili na rychlost a stabilitu.

Při přípravách a vývoji jsme si prošli mnoha slepými uličkami, ale výsledek stojí za to. Dovolíme si tvrdit, že jsme připravili nejrychlejší hosting na trhu 😉 

Hardware

Pro naše nové služby jsme opravdu dlouho a důkladně vybírali nové servery. Nakonec jsme se rozhodli, že všechny nové služby, včetně VPS ON, budeme provozovat na mimořádně výkonných serverech HPE Moonshot, Jeden takový “server” box obsahuje 45 samostatných serverů. Dohromady zaberou 4 a 1/3 U v racku, což je zhruba jedna desetina rackové skříně, ale výkonem překonají celý rack plný stávajících serverů. Součástí boxu jsou i dva switche.

Je to jedno z nejmodernějších řešení, které je na trhu. Každý ze 45 serverů je připojen do 2 různých nezávislých switchů rychlostí 10 Gbps (takže každý server má konektivitu 20 Gbps) a každý switch je propojen ven (do sítě) rychlostí 4 x 40 Gbps. Takže každý box má konektivitu 160 Gbps směrem ven nebo do jiných boxů. Konektivita je plně redundantní.

Každý z 45 serverů v HPE Moonshot může mít (v našem případě) 64 GB RAM a 4 x 1 TB SSD disk s NVMe rozhraním. Procesor, který má 4 rychlá jádra, 8 vláken s frekvencí 3-3,8 GHz. Servery také mají například grafické karty.

V jednom HPE Moonshot na minimálním prostoru tedy najdete 2 880 GB RAM, 180 TB prostoru na SSD NVMe discích a k tomu v součtu 1332 GHz CPU…

HPE Moonshotů u nás máme již nyní 15. Výše uvedená čísla si tedy vynásobte 15… Je to největší instalace podobných serverů v ČR a zároveň zřejmě půjde o jedno z největších cloudových řešení (HPE Moonshot jsou původně navržena speciálně pro potřeby cloudu). Vše v podstatě funguje v opravdickém cloudu (již brzo nabídneme klientům). Cloudem nemyslíme laický pojem úložiště, ale skutečnou cloudovou službu, kdy výpadek jednoho uzlu nemá vliv na provoz služby, protože provoz je okamžitě spuštěn jinde.

Výběru hardware a jeho testování jsme se věnovali rok a věříme, že naše rozhodnutí je zcela správné.

Úložiště

Od ledna do října 2017 jsme testovali a vybírali úložiště pro nové služby. Nakonec jsme se rozhodli pro distribuované síťové úložiště, které je rozprostřené přes výše uvedené servery. Při výpadku HPE Moonshot nebo jednotlivých serverů, by to nemělo mít vliv na provoz služeb. Nemělo by, ale o tom až o pár odstavců později…

Úložiště je aktuálně tvořené jako zrcadlo 1 + 1, přičemž zvažujeme zda nebudou v budoucnu 1 + 1 + 1. Nyní je to tedy tak, že veškerá data jsou na 2 různých místech v síti v kopii. Počítáme, že jedna kopie bude v jednom datacentru a druhá v druhém.

Všechna data jsou online. V případě, že by fatálně selhala až polovina serverů, tak to nebude mít dopad na služby. Pokud uděláme do budoucna změnu na 1 + 1 + 1 a měli bychom živá data 3x, tak by muselo vypadnou více jak dvě třetiny všech serverů, aby nastal problém a museli bychom sáhnout po zálohách.

Úložiště jsme testovali opravdu dlouho a důkladně. Provedli jsme obrovské množství testů a nakonec jsme si vybrali řešení, které považujeme za nejvhodnější pro naše služby. Jedná se o open source řešení na linuxu. 

Vyzkoušeli jsme většinu různých distribuovaných úložišť, která jsou na trhu a to jak free, tak placené verze. Byli jsme překvapeni, jaké jsou rozdíly ve výkonu a stabilitě.

Síť

Při přípravě nových služeb jsme se rozhodli, že celou naši síť musíme posílit nejen interně, ale i směrem do internetu. Jako první hosting v ČR jsme tedy přešli na síť 100 Gbps. Loni na jaře jsme vybírali nové routery a switche a také podepsali smlouvu na nové trasy 3 x 100 Gbps mezi Hlubokou a Prahou. 

Na podzim jsme routery a switche koupili, připravili plán na novou síťovou infrastrukturu a během vánočních svátků jsme se pustili do práce. 

Jen pro informaci dodáme, že aktuálně máme konektivitu směrem do internetu 3 x 100 Gbps, přes 3 různé nezávislé trasy od 2 různých poskytovatelů na 2 různá místa v Praze, kde jsme připojeni ke 3 dalším různým poskytovatelům. 

Díky nové topologii budeme ještě více odolnější proti útokům a budeme mít dostatek výkonu na další nové služby.

Dvě datacentra

Budujeme druhé datacentrum, kde nyní čekáme na dodání elektrorozvaděčů, motorgenerátorů (celkem jich bude 5!!!) a UPS. 

Jakmile nové datacentrum spustíme, tak budeme mít data rozprostřena přes obě budovy. A ani totální výpadek jedné z budov neohrozí provoz služeb.

Software

Vše máme založené na opensource řešeních. Prozradíme, že nový webhosting funguje kompletně na Dockeru. Nemáme tam žádnou klasickou virtualizaci. Máme oddělené servery pro PHP procesy, jiné budou již brzo pro statické stránky (proxy) a další oddělené servery pro databáze. Vše je propojené 2 x 10 Gbps a tak síť nic neomezuje.

Rozšíření týmu

Najali jsme i zkušeného kolegu ze zahraničí, který nám s tím pomáhá. Už je nás v práci 32, z toho 2 lidé z Polska, 2 z Ruska a 1 z Ukrajiny. Jsme rádi, že se nám daří držet stálý tým, který se rozšiřuje. Všichni jsou u nás spokojeni 🙂 

Samozřejmě šikovných lidí, kteří se chtějí učit nové věci a pracovat s nejnovějšími technologiemi není nikdy dost, a proto hledáme další kolegy.

A jsme u konce a fungujeme

Po necelém roce příprav jsme na podzim začali s testováním různých scénářů. Vše vypadalo dobře. Rozhodli jsme se, že spustíme službu na veřejné testy. Přihlásili se nám stovky klientů. Vše fungovalo krásně, a tak jsme spustili objednávky beta verze služby. Po 3 týdnech jsme službu pustili do ostrého provozu. Vše vypadalo dobře a vše bylo rychlé.

Jenže po cca dalších 3 týdnech provozu jsme začali mít první doposud neznámé problémy. Servery při větší zátěži kolabovaly. Z ničeho nic najednou load stoupl na mnohonásobek a následně došlo k pádu celého serveru, což znamená velký problém. Hledali jsme a pátrali jsme a zjistili jsme, že se jedná o bug v ovladači síťové karty. Udělali jsme úpravy a situaci se povedlo vyřešit a od té doby jsme se s tímto problémem nesetkali. První problém byl v polovině prosince a odstraněno to bylo před Vánoci.

Následovala další komplikace

Na serverech přibývaly služby a rostla zátěž. Bohužel tam skokově narostla zátěž tzv. metadata serverů. Softwarové úložiště, které používáme, funguje tak, že máte servery s daty v celé síti a webové servery (zpracovávající zákaznické požadavky) se dotazují tzv. metadata serverů, kde jsou příslušné soubory v síti uloženy. Kolem Vánoc narostl počet požadavků na tyto metadata servery na více než 300 tisíc za sekundu a postupně rostl na cca 520 tisíc dotazů za sekundu. To už je docela slušná zátěž. Tím se systém opět stal nestabilním a problematickým.

Situaci jsme řešili s vývojáři úložiště a nebyla snad noc, kdybychom nedělali různé změny nastavení a úpravy. Bohužel většina úprav znamenala celé pole zrestartovat a tím byl výpadek cca 3-5 minut. Snažili jsme se to dělat v noci. Situaci se zlepšila, ale nebylo to optimální.

A další komplikace?

Ano, přišla další komplikace. Na metadata serverech bylo tak velké množství požadavků, že jsme narazili na problém s výkonem přenosu požadavků mezi jádrem linuxového systému a ovladačem NVMe disků. Je to technologie rychlá, ale moc nová na to, aby bylo vše 100% odladěné. Při velkém množství požadavků došlo k poškození informací o metadatech. Jednou za den nebo dva dny se ztratila nějaká informace a od toho okamžiku došlo ke zpomalení celého sytému a jediná možnost nápravy byla možná restartem celého systému plus kontrolou filesystému na metadata serverech. Tím jsme museli servery odstavit na cca 20-25 minut. Plus následně probíhala synchronizace dat po dobu cca 1 hodiny, kdy byl celý cluster výrazně zpomalen.

Situaci jsme řešili opět s vývojáři. Řešili jsme i placenou podporu, ale nic nevedlo k cíli. Rozdělili jsme všechna data do více clusterů, navýšili počet serverů s metadaty, ale i tak to nebylo optimální. Problém se neobjevoval tak často, ale stejně jednou za týden jsme se s ním setkali. 

Co dále?

Udělali jsme mnoho úprav v nastavení, zkusili jsme další změny v nastavení celého řešení. Změnili jsme hodně věci, změnili jsme celou logiku služby a najednou jsme měli výrazně menší zátěž na metadataserverech. Řádově jsme zátěž snížili na tisícinu. 

Po otestování jsme zkusili nasadit úpravy na první dva servery. Vše bylo v pořádku, ale několikrát se nám stalo, že došlo k poškození nějakého souboru. Opět jsme měli detektivní práci a hledali příčinu a řešení. Po cca 4 dnech jsme přišli na řešení a od té doby vše bylo v pořádku.

Webservery jsou založené na Dockeru a tím jsme schopni jednak bezvýpadkově navyšovat parametry nebo řešit lépe a pružněji požadavky na výkon nebo snížit problém při možné výpadku webového serveru. Vše se hlídá automaticky, což přináší i některé problémy. Například v pátek 2. 2. jsme se setkali s problémem s dostupností u části serverů, protože na nás byl veden silný útok a systém vše logoval a při snížení volného místa pod 13% začal postupně preventivně pouštět weby jinde. Po dosažení hranice 87% zaplnění prostoru na všech serverech se preventivně vypnul a nedovolil zapnout dokud jsme neudělali nějaké úpravy v nastavení. Tohle byl problém, který jsme měli na části serverů v pátek a píšeme o tom v jiném článku.

Výsledek?

Postupně jsme změny nasadili na všech nových serverech a výsledkem je mimořádně rychlý hosting. Dovolíme si tvrdit, že jde o nejrychlejší hosting na trhu. Jsou tam nejen rychlé first byte, rychlý přístup k souborům, rychlá práce s administrací, ale i mimořádně rychlá práce s databází.

Vše je díky mnohaměsíčnímu vývoji a testování a ladění během posledních 6 týdnů, kdy jsme si skutečně hodně užili. Všem našim klientům, kteří se setkali s komplikacemi, se omlouváme. Posledních 14 dní jsme měli tyto nové služby bez výpadků a se 100% dostupností. Věříme, že tomu tak bude i nadále.

Co ještě chystáme?

Na vývoji ještě pracujeme a hned tak to neskončí. Chceme tam nyní přidat podporu IPv6 a IDS/IPS ochranu, která tam není. To by mělo být hotové v řádu dní. Potom chystáme proxy server a WPS (nebo WMS) a HA verzi služby (tedy vysokou dostupnost).

Proxy

Pro zrychlení odbavení všech požadavků připravujeme to, že všechny statické požadavky odbaví proxyserver. Tím se ještě výrazně zrychlí načítání stránek. 

WPS nebo WMS

Upravený webhosting bude možné do budoucna koupit ne jako sdílenou verzi, ale jako verzi s vyhrazenými prostředky.

Vysokou dostupnost

Dokončujeme druhé datacentrum, kde budeme chtít mít druhou kopii dat a druhou část webserverů. Budeme schopni nabídnout službu, která pojede ve 2 datacentrech současně, a tak problém v jednom se nepřenese do druhého a váš web pojede za všech okolností.