Nový zálohovací server, webový server a databázový server

V posledních několika dnech došlo k několika změnám, které by vám neměly uniknout. Administrace byla aktualizována na verzi v2, byl přidán úplně nový virtuální server pro aplikace a také nový server pro databáze a fyzický server pro zálohy.

Hříchy začátečníků

Jedním z nejpalčivějších problémů Roští je aktuálně virtuální server pandora.rosti.cz. Roští.cz za poslední tři roky ohromně vyrostlo. Z malého projektu se najednou stala služba okupující tři fyzické servery. Předtím ale byly většinu času aplikace uživatelů umístěny na jednom fyzickém serveru, takže je jasné, že teď máme jeden server, který je větší než bychom si přáli. Navíc jsou na něm zkombinované dva způsoby hostování aplikací, takže rozmigrování na různé servery není vůbec snadná.

Abychom problém neprohlubovali, koupili jsme před dvěma měsíci nový server, požádali o IP adresy a začali Roští virtualizovat. Po všech změnách jsme nyní mohli nasadit nový virtuální server donkie.rosti.cz, který bude obsluhovat zhruba 50 nových uživatelských aplikací. Pokud teď půjdete do administrace a vytvoříte novou aplikaci, už ji najdete na Donkiem. Po naplnění kvóty 50 aplikací se začnou aplikace sunout na úplně nový server.

Administrujeme s celery

Další změnou je aktualizace administrace PCP, kterou Roští.cz vyvíjí a používá. Zdrojové kódy jsou uvolněny na GitHubu a protože už je to docela velký projekt, začínají si ho všímat i další vývojáři. Pro ty je v současné době překážkou komplikovanější instalace. Z tohoto úhlu pohledu se změnilo následující:

  • Stará implementace aplikací je ve výchozím stavu vypnuta
  • GoPAY už není povinnou závislostí
  • Byly resetovány migrace

Hlavně poslední bod je důležitý, protože v migracích nebyl pořádek a bylo třeba řešit závislosti mezi jednotlivými migracemi. Nyní začínáme s čistým štítem a dáme si na ně pozor. Stará implementace hostování aplikací nekomplikovala ani tak instalační proces, jako se spíše pletla při konfiguraci. Nyní bude kompletně vypnuta, i když se některé části budou stále držet v paměti. Tento přežitek doby ne moc minulé budeme udržovat ještě dlouho, pravděpodobně několik let.

PCP přešlo také na jiné číslování verzí. Změny jsou často spontánní, podle plánu se jede jen částečně. Nedá se říct, která verze toho přidala víc nebo která je jen opravnou, takže se prostě budou označovat v1, v2, v3, v4 a tak dále. Aktuálně jsme na v2.

Velmi důležitý bod je integrace Celery, Paramika a přidání závislosti na Redis nebo jiný message broker. Celery umí asynchronně spouštět úkoly. Do nynějška když jste klikli na nějakou akci, která trvá déle (instalace virtualenvu), tak jste museli čekat několik dlouhých sekund, dokud nebyl virtualenv nainstalován. Nyní se tyto akce spouští přes Celery, které běží na pozadí a jenom přebírá zprávy od administrace. Na nic tedy nečekáte a můžete pracovat dál. Paramiko je pak jen malý doplněk. Jedná se o implementaci SSH2 v Pythonu. Před aktualizací administrace spouštěla přímo program ssh a předávala mu co se má udělat. To byla trochu komplikace, protože byl problém spouštět v otevřeném kanále víc jak jeden příkaz. Tohle Paramiko elegantně řeší a odpadá tedy závislost na kopírování skriptu pcp_runner na každý server.

Nakonec zmíním, že dnes dostalo Roští třetí server, který bude relativně nevýkonný a jeho jediným úkolem bude držet zálohy obrazů virtuálních strojů na druhých dvou serverech. Současný způsob zálohování je sice spolehlivý, ale data jsou od serverů daleko, což může mít v případě fatálního selhání hardwaru vliv na dobu obnovy.

High availability

Poslední část dnešního zápisku bych rád věnoval tomu co se chystá. Především to jsou FTP účty pro aplikace, těch si budete moct od další verze vytvořit pro každou aplikaci libovolné množství. V dalších týdnech bychom pak rádi představili novinku – HA hosting.

Pod písmeny HA se neschovává nic jiného než High Availability, tedy vysoká dostupnost. Aktuálně běží aplikace vždy na jednom serveru, takže když vypadne server, vypadne také aplikace. Selhání hardwaru postihlo Roští pouze jednou a nebyla to příjemná zkušenost. Naučila nás ale, že jedna věc je mít výpadek a druhá je ho včas vyřešit. Současná infrastruktura pomůže s obnovou havarijního stavu velmi rychle. Nejdůležitější jsou samozřejmě aplikace a ty jsme schopni obnovit řádově za desítky minut na úplně jiném hardwaru, který ani nemusí být náš.

Nějaké problémy s hardwarem bychom ale velmi rádi schovali za oponu, za kterou uživatel nedohlédne. To bohužel přináší náklady s každou takto jištěnou aplikací, takže vám ještě tento rok nabídneme takové řešení, které s minimálními úpravami umožní aplikaci rozložit na více fyzických serverů. Když se náhodou stane, že přijdeme o jeden či více serverů, vaše aplikace postavené na HA hostingu bude vašim uživatelům stále dobře sloužit.

Nakonec pár čísel

info