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.

rosti_master_5_App_Prmtrs

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í.

DSC_0060

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

DSC_0077

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.

DSC_0075

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.