Podpora Node.js, hurá s JavaScriptem na server!

Tímto oznámením se Roští stane možná prvním hostingem v ČR, který podporuje Node.js. Roští se prozatím prezentovalo jako spíše Pythoní hosting a tolerancí PHP, ale od dnešního dne se rozrostlo. Node.js už je integrované do administrace a nic nebrání uživatelům Roští.cz, aby krotili JavaScript i na straně serveru.

nodelogo

Rozpohybovat Node.js aplikaci je o něco jednodušší než v případě Pythonu a stačí se držet návodu na Wiki. I když jsme podporu testovali, je zatím označena jako beta a může se stát, že dojde k nějakým problémům. Pro některé uživatele by mohla být také důležitá informace, že Node.js aplikace jsou umístěné na jiném serveru než dosavadní Python a PHP aplikace. Staré aplikace tedy novinky nějak neovlivní.

Tímto změny nekončí, ještě pracujeme na podpoře pro Gunicorn, což je webový server napsaný v Pythonu, který dokáže být alternativou k uWSGI. Na něm sice není nic špatného, ale je s každou novou verzí komplikovanější a nafouknutější. Gunicorn nenahrazuje uWSGI – budeme podporovat obě technologie.

Další novinka přijde snad příští týden a bude se jednat o podporu pro Ruby. Na Roští tedy půjde hostovat například Redmine, ale i jakékoli jiné projekty napsané v Ruby. Pokud bude alespoň nějaký zájem o Node.js, zapracujeme ještě tento rok na podpoře databází MongoDB a CouchDB, které si s Node.js aplikacemi dobře rozumí.

Novinky v uplynulém týdnu

Jak bylo slíbeno na Twitteru, o víkendu došlo k aktualizaci administrace. V té bylo provedeno několik zásadních změn v platebním systému a k nově vytvořeným aplikacím můžete nově přidat FTP účty dle potřeby.

Platební systém na Roští byl velmi benevolentní. Pokud vám začali docházet kredity, tak vám jednou za čas přišla notifikace o tom, že je máte doplnit a víceméně se nic nedělo. Našli se uživatelé, kteří nezaplatili a ty pak bylo nutné vypnout ručně. Občas to trvalo déle občas to bylo rychlé. Tento chaos chceme zkrotit, takže od minulého týdne vám chodí notifikace každý den, pokud máte kredit menší jak 10, tedy na nějakých 6 dní provozu jedné aplikace. Notifikace bude chodit každý den a s dvacátou notifikací budou vaše aplikace vypnuty a účet omezen. Po dalších 20 notifikacích pak budou ze serverů odstraněna všechna vaše data a váš účet vymazán.

Díky této změně budou podmínky mnohem více fér a systém bude pevný a nekompromisní. Navíc platby na účet už nejsou zpracovávány ručně, takže hned jak se peníze objeví na našem účtu, vám dorazí faktura. Budete mít zpětnou vazbu a nestane se, že bychom nějakou platbu přehlédli.

Co se týká plateb, tak na vás čeká ještě jedno vylepšení. Po odkliknutí nákupu kreditů, můžete zaplatit svým telefonem přes QR kód.

FTP účty

Na tuto vlastnost čekáte už dlouho. Od doby zavedení nové implementace hostingu aplikací po ní voláte a konečně ji máte. V info kartě aplikací můžete přidávat libovolný počet FTP účtů mířících i do podadresáře aplikace. Tuto funkci oceníte hlavně pokud spolupracujete na jedné aplikací ještě s dalšími lidmi. Zatím jsou FTP účty funkční na serveru Donkie, ale během dnešního dne (16.8.) budou fungovat i na Pandoře.

Výpadek

Poslední tři měsíce pracujeme na způsobu, kterým bychom zálohovaly celé obrazy našich virtuálních strojů. Postup, který jsme zvolili, není úplně efektivní a tak jsme se rozhodli o změnu. Bohužel tato změna vyžaduje výpadky jednotlivých serverů. Výpadky budou probíhat v sobotu a v neděli od 2:00 do 4:00. Pokud bychom celou akci nestihli, pokračovala by další týden ve stejných hodinách a dnech. Servery budou vesměs online, offline bude vždy jeden a délka výpadku bude záviset na velikosti serveru.

Výpadek fyzického serveru Deltora

Dnes došlo k výpadku jednoho z našich fyzických serverů. Výpadek postihl webový server Pandora a poštovní server Messenger. Databáze na serveru Store a webový server Donkie nebyly výpadkem nějak ovlivněny.

Server přestal reagovat přibližně v 15:36 a kolem 15:50, po restartu fyzického serveru, začaly služby opět nabíhat. V 15:55 už byly všechny webové aplikace dostupné. O 15 minut později také pošta. Bohužel se na disk z celé události neuložily logy, takže nemůžeme s jistotou říci, k čemu přesně došlo. Pravděpodobně může za celý incident nový systém zálohování.

Problému se budeme dále věnovat a postaráme se, aby se již neopakoval. Za vzniklé potíže se samozřejmě omlouváme.

I když naše infrastruktura prošla mnoha úpravami, aby služby běžely bez přerušení, občas se problém může objevit. Jedním z důležitých parametrů naší služby je, že před vámi výpadky netajíme a vždy se snažíme vysvětlit, co se stalo. Aktuální informace najdete vždy na našem Twitteru účtu. I když Twitter nemáte, zapište si někam následující adresu pro případ, že by nejela ani naše hlavní stránka a chcete vědět, co se děje. Děkujeme.

https://twitter.com/rosti_cz

 

Výpadek z důvodu opravy napájecího panelu

V COOLHOUSINGu, kde jsou umístěny servery Roští.cz, bohužel došlo k problému na napájecím panelu, kvůli kterému může dojít k neočekávané ztrátě napájení všech serverů. Dnes o půlnoci budou technici COOLHOUSINGu problém řešit. Servery je třeba vypnout a přibližně po dvaceti minutách budou opět zapnuty. Zásah je nevyhnutelný a uděláme vše pro to, aby vypnutí a zapnutí serverů proběhlo bez problémů a bez škod. Omlouváme se za jakékoli problémy, které vám tím vzniknou.

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