Každý commit se počítá
Možná víte, že většina nových funkcí na Roští vzniká během pravidelných hackathonů, které se konají jednou za měsíc. Zbytek měsíce službu udržujeme, opravujeme chyby a sbíráme podněty na další hackathon. Poslední víkend jeden hackathon proběhl, nazvali jsme ho HackX+1 a tady je malý souhrn.
Nejdříve název. Je to první hackathon, při jehož přípravě jsme použili milestony z GitLabu a protože netušíme, kolikátý hackathon už to je, použili jsme X + 1. Až zjistíme hodnotu X, samozřejmě nahradíme 🙂 Milestone jsme připravovali 14 dní a nakonec vybrali 18 issues, které musely být opraveny, aby se vám administrace dobře používala.
Ohromně nám pomohla vaše odezva za posledních 14 dní. Chat, který máme na webu od Smartsupp využíváte hojně a dáváte nám vědět o všem, děkujeme za to. Navíc když dojde k nějaké chybě a my o ní dostaneme hlášení, hned to s vámi přes něj řešíme a vysvětlujeme vám situaci. Chat vnímáme jako velký boost naší podpory a víme, že vy taky.
Mazání PostgreSQL databází
A teď k novinkám. První týden od nasazení jsme hodně bojovali s PostgreSQL databází, konkrétně s mazáním databází. Pokaždé, kdy jsme si mysleli, že je problém odstraněný se objevil někde znovu. Během hackathonu jsme kód znovu prošli a našli poslední místo, kde se tato chyba ještě schovávala. Teď už je to v pořádku.
Máme i Redis a Cron
Potřebovali jsme vám dát už v administraci někde vědět, že můžete použít Redis, Memcached, Cron a supervisor. V tom nám pomohla záložka Servicy a malé info u databáze.
Oddělení vypnutých aplikací
Jeden z našich uživatelů nás upozornil, že by bylo dobré oddělit aplikace, které neběží od těch, které běží. Už na starém Roští jste po nás chtěli možnost aplikaci vypnout, což jsme v nové implementovali a teď už to je i vidět 🙂 Na screenshotu si všimněte také flagu “Zastaralý obraz“, který se bude zobrazovat, pokud bude existovat nová verze obrazu pro technologii, kterou aplikace používá. Nový obraz většinou obsahuje opravy chyb a novou verzi technologie v minoritní částí označení. Třeba aktualizace PHP 5.6.7 na 5.6.11.
Překlad údajů v History tabu
Toto máme zatím upraveno napůl. Byly tu chyby, které dělaly History tab úplně nepoužitelný. Teď už je na jeho výstup spolehnutí, ale utekly nám překlady akcí, které se provádějí. Abyste pochopili, že to není úplně triviální problém, vysvětlím, jak to funguje. Když dojde k nějaké akci jako je vytvoření aplikace nebo restart aplikace, přesune se tato úloha do pozadí. To děláme pomoci python-rq. Ten funguje tak, že mu nahrajeme do Redisu co se má dělat a on si to v úplně jiném procesu začne zpracovávat nezávisle na tom, co děláte na webu. Nemusíte díky tomu čekat několik sekund, než se vám načte administrace, ale tento proces na pozadí nemá vůbec představu pro “koho pracuje”, nemá k dispozici původní request a nastavení jazyka. Výchozím jazykem je angličtina a tak jsou tyto hlášky anglicky. Pokusíme se to dořešit v jednom z dalších hackathonů.
Vychozí DNS záznamy se vytvářeli na pozadí
Při přidání nové domény docházelo k malému nedorozumění. Hned po přidání vás administrace hodila na seznam DNS záznamů, který byl .. prázdný. Vytváření výchozích záznamů jsme přesunuli na pozadí, takže k němu docházelo až několik sekund po přidání domény. Takže jste nám začali přidávat záznamy vlastní, ale než jste uložili první, už tam byly ty výchozí. Chyba je tedy odstraněna a myslím, že bude lepší, když na ní všichni zapomeneme 🙂
Dokumentace
Minulý týden jsme psali dokumentaci a během hackathonu v tom pokračovali. Dokončili jsme stránky o:
- Emailech
- Ruby
- Supervisoru
- Memcached
- Redisu
- a rozebrali jsme základní pojmy
Na výsledek se můžete podívat zde na https://docs.rosti.cz/.
Změna hesla
Během posledního roku, kdy vyvíjíme novou administraci, jsme si nevšimli, že jsme neimplementovali formulář na změnu hesla. Děkujeme trpělivému uživateli, který nás na to upozornil.
Narazili jsme během implementace na to, že pokud přijdete přes Twitter, nemáme váš e-mail, takže není možné se do administrace přihlásit i když máte heslo. Administrace vás tedy upozorní, že je e-mail potřeba nastavit. Pomůže nám to i při řešení problémů, které se mohou objevit.
Nové kontejnery
Aktualizovali jsme všechny kontejnery. PHP můžete používat ve verzích 5.4.43, 5.5.27, 5.6.11, Node.js 0.10.40, 0.12.7, Ruby 1.9.3, 2.2.2 a Python 2.7.10, 3.4.3 a teď nově 3.5.0b3. Chtěli bychom přinášet buildy zatím beta větví jednotlivých technologií, ale musíme k tomu připravit nějakou automatizaci. I když vytvořit image s novou verzí je jednoduché, trvá to skoro hodinu ho dostat do produkce.
Malou novinkou pro všechny PHP aplikace je ještě možnost editovat nastavení Apache. Užívejte s rozvahou 🙂
Ukazatel využití RAMky a diskového prostoru
Na Roští účtujeme aplikace na základě využité paměti RAM a diskového prostoru, nicméně jsme vám neukázali, kolik toho vlastně aplikace bere. Osobně mám z této novinky největší radost a to nejen proto, že jsem ji implementoval sám 🙂 Je to prostě super mít nějaká metadata. Na pozadí navíc sbíráme historii za posledních 24h, takže vám během dalšího hackathonu dáme snad i nějaký graf.
Pokud žádná data nevidíte, běžte do karty Parametry a klikněte na uložit. U aplikací vytvořených před víkendem se musí zrebuildnout kontejner, což se dělá právě takto. Rebuild provedeme za vás, ale pravděpodobně až o víkendu. Data se zobrazí během 10 minut.
A to je zatím vše
Na závěr bychom se vám chtěli omluvit, protože jedna ze změn, konkrétně graf využití paměti, si vyžádala restart serveru. Byly tu i další důvody, třeba přechod na poslední verzi Docker API, ale to jsme mohli pozdržet, nebylo to blokující. Každopádně jsme se dohodli, že napíšeme na Twitter, že dojde k výpadku, ale už jsme se nedohodli na tom, kdo to udělá. V noci z neděle na pondělí, kolem 1:00 došlo k půlhodinovému výpadku, který jsme, ač neúmyslně, nehlásili.
Výpadky hlásíme do speciálního Twitter účtu https://twitter.com/rosti_cz_status, tak pokud máte na Roští důležité aplikace a chcete být informovaní, mrkněte občas tam.
Děkujeme za přízeň a zůstaňte s námi. Čeká nás totiž ještě spousta nových a skvělých věcí. Mám nakousnout? Tak jo, ale jen trochu. Prioritou pro příště je pro nás předělat správu domén u aplikací, což povede k tomu, že si budete moci sami bez naší pomoci přidat k doméně SSL certifikát, také možnost doménu registrovat u nás a nebo koupit SSL certifikát u nás na jeden klik. Kromě toho se budeme soustředit také na platby přes GoPay.
GoPay je taková věc, které se k nám nechce. Martin ho už měl skoro hotový, ale pořád se mu nelíbily některé detaily. Místo toho, aby kód odeslal do GITu třeba i nedokončený, spoléhal se na svůj domácí stroj, kterému pak ze dne na den odešel SSD disk. A jaké z toho plyne ponaučení? Každý commit se počítá!
A to už je opravdu všechno, dobrou noc! 🙂