Hackathon: vývoj administrace v časovém presu

Před týdnem a kousek jsme si já (Adam Štrauch) a Martin Voldřich střelili takový malý hackethon. Strávili jsme tři dny téměř jen a jen vývojem nové administrace. Teď vám ukážeme, co se nám podařilo.

Design nové administrace již máme nějaký čas. Připravil ho pro nás Vladimír Bareš a odvedl opravdu pořádný kus práce.

Takhle to finálně vypadat nebude 🙂 Ne dělám si srandu, tohle je nový design administrace, ale posuvníky se smrsknou jen na paměť a CPU shares. Přecházíme totiž na Docker, takže spousta věcí půjde nastavit uvnitř kontejneru a vaše aplikace bude omezena jen pamětí a právě parametrem CPU shares, což je číslo, které v kontextu s ostatními čísly určuje, kolik procesoru váš kontejner dostane. U svých aplikací pravděpodobně na nějaké omezení nenarazíte, ale nám to ohromně pomůže omezit aplikace, které byly nějakým způsobem zkompromitovány a využívají kapacitu serveru k tomu, aby třeba rozeslali co nejvíce spamů. Na Roští se to naštěstí moc nestává, ale občas se s tím setkáme.

Další velkou výhodou pro nás je, že kontejner, ve kterém vaše aplikace poběží, je značně osekán, takže v Pythoním kontejneru nepustíte Perl nebo PHP skript. Ve správě ale omezeni nebudete, protože přístup k datům budete mít z jiného, maintenance kontejneru, kde všechny potřebné nástroje najdete. Ten bude zase omezen pamětí.

S tímto přístupem se změní i způsob, jakým budeme za hosting účtovat peníze. Ještě nemáme úplně rozmyšlené částky, ale primárně se zaměříme na RAM. I když teď prezentujeme 512 MB RAM, ve skutečnosti se jedná o maximální množství naadresované virtuální paměti, což nemusí nutně být jen RAM a reálná hodnota je kousek nad 1 GB. Nově bude základ 128 MB RAM a za nějaký malý peníz půjde přidat více. Řešíme totiž problém, kdy zákazníkům říci, že jejich aplikace požírá více systémových prostředků než je zdrávo. Špatně se to měří a kde nejsou čísla nemohou být rozumné argumenty. 128 MB RAM možná nevypadá tak super jako 512, ale věřte, že 80 % aplikací na Roští si bere 60 až 80 MB RAM. Finální číslo se ještě může změnit.

A kam jsme se dostali

Administrace není ještě zdaleka hotová, ale to hlavní, backend hotové je. Už jsme schopni si povídat s Dockerem přes jeho API, umíme vytvářet nové aplikace a měnit jejich parametry. Máme takové hotový master panel, ze kterého budeme schopni řešit problémy, které nám posíláte na podporu.

Poslední půl rok jsme si hodně hráli s tím, jak bude administrace vypadat. Měli jsme třeba implementované API a k němu frontend v Angular.js, ale nakonec trval vývoj déle než bylo únosné, takže jsme se vrátili zpátky ke klasickému webu, který se na každý klik načítá znovu.

Pak jsme během tohoto období narazili na práci se současnými aplikacemi. Strávili jsme dlouhou dobu implementací současného backendu do nového frontendu a nakonec skončili na rozcestí, které jsme už nerozsekli. Z tohoto období máme ale implementovanou práci s poštou, takže to nebyl úplně zahozený čas.

Oba tyto faily nás dost demotivovali a tak jsme si od administrace dali na nějaký čas pauzu. Teď už jsme si jistí, že současná cesta, cesta Dockeru, je ta správná a budeme se ji držet, Nyní pracujeme na fakturaci a práci s databází. To by mělo být hotové během září a někdy poté novou administraci spustíme. Vzhledem k tomu, že bude potřeba naimportovat staré uživatele na novou administraci, poběží nová administrace chvilku vedle té staré. Migraci ještě nemáme úplně promyšlenou, takže se do ní nebudeme v blízké době ani pouštět.