Výpadek serveru alpha-node-7 v září

Někteří z vás si všimli, že jsme měli v září velký výpadek jednoho ze serverů, který máme u služby Scaleway. Šlo o alpha-node-7, původně Pluto. Mrzí nás že k tomuto došlo a snažili jsme se to vyřešit jak nejrychleji to šlo obnovou ze zálohy. Tu jsme měli shodou okolností jen 30 minut starou. Mrzí nás to i pohledu, že jsme u Scaleway více než rok a tohle se nám nikdy nestalo. S jejich podporou jsme měli vždy nejlepší zkušenosti, natož aby nám vypadávaly nějaké servery.

Tento stroj ani nebyl první, kterému se v září stal stejný problém, ale v předchozím případu se stal v mnohem vhodnější dobu – ve večerních hodinách.

Jak se ale ukázalo, tak na podpoře bohužel řeší primárně administrativní problémy a technické předávají někam dál, kde jsou striktně v pracovní dny od 9:00 do 17:00. Platili jsme jim za podporu a SLA 99.95 %. Po tomto problému jsme s nimi měli dlouhou diskusi nad tím, co to vlastně znamená, když tento konkrétní server spadl na 99.1 %. Stejně jako u mnoha jiných služeb, je to jen číslo na webu a žádná reálná statistika za tím bohužel není.

Investovali jsme do migrace spoustu času a od konce srpna celé nové Roští už běží na serverech Scaleway. Na našich fyzických serverech zůstala jen pošta a staré Roští. Byla to nepříjemná situace, ale bohužel k ní může dojít jak u Scaleway, tak u jiných providerů.

 

Proto jsme se rozhodli, že nabídneme možnost hostovat aplikace na více serverech najednou. Zatím půjde o oddělené kontejnery, ale až nasbíráme zpětnou vazbu od uživatelů, tak přidáme i synchronizaci dat mezi nimi. Na této funkci teď pracujeme a je to naší největší prioritou. Měla by být dostupná v následujících týdnech.

Děkujeme za pochopení a omlouváme se za způsobené komplikace.

Víkendový výpadek

V sobotu krátce po 22:00 došlo k výpadku serveru alpha-node-6. V době psaní tohoto příspěvku ještě netušíme co je za problémem. Zdroj je někde na infrastruktuře Scaleway a pravděpodobně souvisí s výpadkem minulý týden, kdy došlo k odpojení síťových disků.

Pár minut před výpadkem došlo k nárůstu I/O operací a loadu, ale podle nás nebyla důvodem žádná nečekaná zátěž, ale spíše hardwarový problém. Podle podpory se jedná o problém se sítí na konkrétním nodu. Bohužel to nedokázali ani po 24 hodinách vyřešit a tak považujeme server za ztracený.

Nicméně jsme server obnovili ze zálohy a už ráno byly v provozu. Zvládli bychom to mnohem dřív, ale využili jsme příznivé denní doby a čekali, zda se podpoře nepodaří problém vyřešit a my nemuseli zahodit data za celý pátek. Databází se problém nedotkl.

Výpadkům se jen tak nevyhneme ať už používáme jakoukoli platformu. Díky přechodu do cloudu se nám otevírají nové možnosti, jak případné problémy řešit. Příští týden budeme hledat způsob, jak se zajistit rychlejší archivaci aplikací a jejich nahození na jiné servery, ideálně automaticky. Když ztratíme server, chceme se dostat s jeho obnovením pod hodinu. I když používáme Ansible, tak stále zůstává hodně manuálním úkonů, ve kterých máme ještě mezery.

Hodina se může zdát možná hodně, ale pracujeme s více než 100 GB dat na každém serveru, někde i více a jejich přenesení chvíli trvá. Není tedy problém spustit další server do pár minut, ale dostat na něj rychle data ze zálohy.

Stěhování do cloudu

Roští se už několikrát stěhovalo a když to bylo naposled, nešlo to úplně dobře. Nyní ho čeká další stěhování, ale z jiných důvodů, chceme totiž omezit počet vlastních serverů. Důvodem je, že nikdo z nás už se nežije v Praze a dostat se k serverům nám tak zabere minimálně hodinu a půl. Jdeme tedy do Cloudu.

Poslední rok testujeme službu Scaleway. Jedná se o poskytovatele cloudových serverů ať už baremetal nebo virtuálních. Nejedná se o nic luxusního jako je třeba Azure nebo AWS, ale tomu také odpovídá cena, která je velmi podobná vlastnímu hardware s housingem. Scaleway toho dosáhlo tím, že dostali přes 700 serverů do jednoho racku.

Testování probíhalo na ostro, server alpha-node-4, alpha-node-5 a alpha-node-6 běží ve Scaleway. Bylo pro nás důležité jak to budou vnímat naši zákazníci, protože servery v Paříži jsou od nás asi 20ms, ale žádné negativní reakce nedorazily. Mimo odezvy nás zajímala spolehlivost, Scaleway je totiž hodně levné, ale stojí za ním velká korporace (Online.net), takže úplně špatně spočítané být nemůže. Začala nás tedy zajímat spolehlivost. Celkem provozujeme ve Scaleway jedenáct serverů a během roku došlo k jednomu problému se sítí, kdy byl jeden z nich odpojen na hodinu a půl a pak k druhému problému, kdy se odpojilo síťové úložiště.

V prvním případě podpora zareagovala rychleji než jsme si toho všimli my a celou věc s námi komunikovali. Druhý případ se týkal jen našeho serveru a tam se nepodařilo najít příčinu.

Výkonově servery nejsou žádné hvězdy, ale ukázalo se, že pro potřeby naší služby máme ještě velké rezervy. Pro jistotu jsme ale implementovali omezení na dvě jádra u nejmenšího balíčku a postupné zvyšování u vyšších balíčků. Od té doby nemáme problém s tím, že by jedna aplikace „sežrala“ výkon celého serveru.

A teď to důležité, v příštích dvou týdnech se bude zbytek nového Roští stěhovat do Scaleway. Jedná se o tři aplikační servery a jeden databázový a všechny čtyři se musejí přenést najednou, resp. přepnout ze starého na nový v jednom okamžiku.

Tento víkend budeme připravovat nové prostředí, což bude vyžadovat přenos přibližně 500 GB dat. Kdy dojde k přepnutí ještě netušíme, ale v plánu máme příští nebo ten další víkend, tedy 26. až 27. srpna nebo 2. až 3. září.

Nemělo by dojít k velkým výpadkům. Je možné, že budete mít během víkendu problémy připojit se na SSH a během noci se mohou weby na pár hodin odmlčet. Důvodem je, že chceme udržet přenos konzistentní a to se nejlépe dělá, když služba neběží. Výpadek se bude týkat všech čtyř serverů najednou. Pokusíme se to provést mezi půlnoci a třetí ráno v noci z pátka na sobotu.

Díky tomuto kroku budeme schopni řešit problémy rychleji. Nebude pro nás ani problém spustit nový server a nasadit na něj zálohu, takže v případě fatálního selhání pronajatého hardwaru budeme schopni zprovoznit službu hned jak se zkopírují data na nový server.

Na fyzických serverech zůstává zatím pošta, staré Roští a zálohování. Výhledově chceme nechat dva fyzické servery. Jeden je velmi výkonný 1U Dell s SSD disky. Druhý je slabý stroj s prostorem 8 TB určený k zálohování.

Co se dělo

Trochu nervózně koukám, že poslední příspěvek na tomto blogu je ještě z minulého roku. Rád bych to tedy napravil a řekl vám, co jsme poslední půl rok dělali. Důvodem bylo, že jsme udělali špatné rozhodnutí, které nás poslalo o několik měsíců dozadu. Takovým rozhodnutím si dřív nebo později projde každý a tak to bereme hlavně jako zkušenost. Nakonec nám to pomohlo si ujasnit priority a jimi se pak řídit.

Před rokem nás kontaktovala firma, která chtěla skončit s poskytováním hostingu pro pythoní projekty a nabízela nám jejich zákazníky. Bohužel jsme si nepoložili tu nejdůležitější otázku a to je PROČ, v tomto případě „Proč to dělají?“. Po dlouhých odkladech jsme nakonec migraci začali realizovat a narazili na několik věcí, které byly vyloženě nůž do zad.

Servery byly staré, na jednom běžel ještě Debian Lenny a migrace na něco jiného nepřipadala v úvahu. Souhlasili jsme se stejnými cenovými podmínkami po dobu jednoho roku a tak by se nám investice do kompletního migrování pod naši administraci nevyplatila.

Náklady byly o třetinu vyšší než nám bylo řečeno, protože na poslední chvíli k tomu přibyl třetí server. Dokonce byly o kousek větší než příjem.

Fakturační údaje jsme dostaly v Google Spreadsheetu s nepřesnostmi. Kvůli jinému typu fakturace jsme museli upravovat administraci. Fakturaci jsme řešili poslední dva měsíce.

Byla nám slíbena změna nastavení DNS, ale nedošlo k ní u všech webů. I tři měsíce po vypnutí původních serverů, se občas někdo ozve, že mu nejede web.

Podařilo se nám s tím nějak poprat. Upravovali jsme administraci, aby zvládala platby i mimo svoji oblast, přemigrovali jsme aplikace a poštu z jednoho serveru pod administraci a srazili náklady na další dva servery. Celkově jsme asi na třetině. Do budoucna plánujeme zrušení těchto dvou serverů a nabídku na migraci pro konkrétní klienty a tak bychom se těchto serverů mohli během příštího roku zbavit.

Pracovali jsme na tom od března. Vyvinuli jsme spoustu jednoúčelových nástrojů, které nám jsou už k ničemu a museli jsme do administrace implementovat věci, které pravděpodobně na nic jiného nevyužijeme.

I přes to všechno, když na to kouknu zpětně, to nebylo zas tak zlé rozhodnutí, protože víme, že do něčeho podobného už nikdy nepůjdeme. Budeme se soustředit primárně na službu jako takovou a nesystémové věci přenecháme ostatním.

Doufám, že je tato kapitola za námi a můžeme se podívat na to, co nás čeká. Ale to až v dalším postu.

Nový ceník

Když jsme před dvěma lety začali pracovat na novém Roští, cenová politika byla jedním z velkých otazníků. Neměli jsme zkušenosti s vedením firmy a věděli jsme, že špatně nastavenou cenou bychom mohli potopit Roští ještě před tím, než se rozjede. Máme nyní data ze dvou let provozu a rozhodli jsme se proto upravit ceník tak, abychom mohli Roští dlouhodobě dále rozvíjet.

Nebylo to jednoduché rozhodování a strávili jsme spoustu času debatami nad výší jednotlivých částek. Dnes víme kolik v průměru stojí každá aplikace, takže počítání bylo jednoduché. Nicméně je tu i psychologický aspekt, který řeší každý projekt „Bude to konkurenceschopná cena?“, „Budou to uživatelé ochotni zaplatit?“.

Roští není hosting, který by mířil na masy. Nabízí toho svým uživatelům hodně. Každá aplikace má velmi blízko k prostředí virtuálního serveru a to pro nás dělá správu o poznání komplikovanější než u běžných hostingů, kde je jen PHP a centrem všeho je Apache. Pokud jsme tedy něco za ty dva roky zjistili, tak je to to, že nemůžeme nabízet hosting za 26 Kč měsíčně.

A se současným ceníkem jsme měli ještě jeden problém, nebyli jsme schopni s uživateli komunikovat kolik je vlastně bude hosting stát. Neměli jsme pevné mantinely, do kterých by mohli svou aplikaci zařadit a tak se ptali na otázku, na kterou jsme neznali odpověď: „Kolik mě bude hostingu u vás stát?“. Podle nového ceníku už tedy nebudeme počítat aplikace dynamicky, ale vytvořili jsme 4 balíčky, u kterých budeme schopni říct, k čemu jsou vhodné.

Změnou tedy vyřešíme dva palčivé problémy, které nás aktuálně trápí. Doufáme, že přestaneme odrazovat uživatele, kteří se s ceníkem neztotožnili a zbavíme se aplikací, které jsou pro nás aktuálně ztrátové. U těch nejmenších aplikací (myšleno ve velikosti RAM) dojde k nejcitelnějšímu zdražení. U průměrných aplikací (192 a 256 MB RAM) to už není tak znatelné.

Nemá to smysl dále protahovat, tady je aktuální náhled na balíčky, které budeme od tohoto týdne nabízet:

Start Normal PRO business
256 MB RAM
2 GB prostoru
99 Kč
512 MB RAM
10 GB prostoru
189 Kč
1024 MB RAM
25 GB prostoru
499 Kč
4096 MB RAM
50 GB prostoru
999 Kč

Máte teď asi nějaké otázky, tak na některé zkusím odpovědět a pokud nenajdete odpovědi níže, tak se klidně ptejte v komentářích.


Proč je minimum 256 MB RAM?

Requesty na aplikace s 64 a 128 MB RAM jsou často sestřelovány OOM killerem, protože kontejner nemá dostatek paměti. Hranice 256 MB RAM je rozumná pro 80 % projektů, které aktuálně na Roští hostují. Poběží v tom WordPress i Django a dají se v tom provozovat i velké projekty, pokud jsou dobře napsané. Zatím bohužel nemáme jak detekovat, pokud se OOM killer přihlásí ke slovu, ale rozjeli jsme ukazatel využité RAMky a zkusíme implementovat notifikace, když se bude obsazení paměti dlouhodobě blížit 100 %.

Co za cenu navíc dostanu?

Rozrostli jsme se o dalšího člena týmu, který se věnuje vývoji full time. Pomalu přecházíme na cloudové služby, takže jsme přestali kupovat vlastní hardware. Díky tomu máme více možností na zabezpečení provozu aplikací například před DDOS útoky a také jsme schopni rychleji reagovat na problémy se servery.

Od kdy začnou balíčky platit?

Podporu v administraci máme nasazenou, takže všechny nové aplikace už používají balíčky.

Musím na balíčky přejít?

Zatím ne, ale od nového roku přepneme současné aplikace na nový způsob účtování. Chceme vám tímto dát čas zvážit změny v našem ceníku a rozhodnout se, zda u nás zůstanete nebo použijete alternativní služby.


Změny ceníku, zvlášť když dochází ke zdražení, nejsou nikdy příjemné a chápeme to. Snažíme se s vámi komunikovat důvody, které nás k tomu vedly. Nový ceník je založen na číslech z reálného provozu a všechny alternativní možnosti jsou horší než tato. Omlouváme se za špatné zprávy a doufáme, že na nás i přes to nezanevřete.