Checklist pro 2021

Minulý rok jsme nepředstavili žádnou velkou novinku, která by změnila Roští od základů a mám pocit, že ani ten další nebude jiný. Soustředíme se hlavně na oblasti, kde můžeme Roští zlepšit a i pro rok 2021 máme několik nápadů, které by měly Roští posunout o kousek dopředu.

Než ale budeme pokračovat, mrkněme, co jsem zde psal před rokem:

  • Runtime prostředí pro běh aplikací postavené na Debianu 10, // podařilo se
  • aktualizace databází, // nedotáhli jsme do konce
  • aktualizace všech nodů, // také jsme nedotáhli
  • interní změny v systému pro správu aplikací // hotovo a nasazeno
  • platby kartou bez prostředníka (Fakturoid) přímo z administrace, // stále ve vývoji
  • nové balíčky, // nepodařilo se
  • grafy. // hotovo a nasazeno

Nové prostředí (Runtime) jsme nasadili začátkem roku a myslím, že se docela podařilo. Během roku jsme pak přidali několik inkrementálních změn. Problémem ovšem byla aktualizace systému na databázích a nodech. Narazili jsme na problém, kdy při aktualizaci nodu na Debian 10 přestalo fungovat spojení s databází, která běží na Debianu 8. Nepodařilo se nám najít příčinu, ale přesunuli jsme mezitím databáze pod Docker, tak je nemáme závislé na systému a můžeme s nimi teď hýbat.

V půlce roku 2020 jsme dokončili nový backend pro aplikace. Administrace tak už nekomunikuje s dockerem přímo, ale používá mezivrstvu, která je implementovaná na jednotlivých nodech. Je to API, které administraci poskytuje všechny důležité funkce, které potřebuje. Díky tomu jsme mohli odstranit třetinu kódu z celé administrace, což bylo kolem 6000 řádků kódu. Nová implementace pak zabrala 2000 řádků a celou řadu procesů dost zjednodušila. Tohle beru jako největší úspěch za celý rok.

Platební systém máme stále ve vývoji a budeme se mu příští rok věnovat. Zatím ale nemáme nastavený žádný termín. Nové balíčky se nám také nepodařilo přinést, ale možná to je dobře, protože na rok 2021 plánujeme přidat do současných balíčků výrazně více paměti.

Třešničkou na dortu jsou grafy s využitím CPU a paměti, které se zobrazují v administraci. Sem bychom chtěli ještě přidat statistiky z load balanceru.

Pojďme se ale podívat na plán na rok 2021:

  • Aktualizace load balanceru,
  • dokumentace,
  • víc paměti,
  • konec Kubernetes,
  • dokončení aktualizací databází,
  • Ruby a Deno,
  • společný SSH server,
  • nová homepage,
  • platební systém,
  • konec FTP,
  • Docker registry,
  • snapshoty aplikací a databází.

Snažil jsme se jednotlivé položky srovnat podle priority, ale na některých věcech pracujeme průběžně. Co nejdříve bychom chtěli vydat novou dokumentaci. Chceme se v ní soustředit na co nejpřehlednější návod, jak dostat hello world do našich kontejnerů a odtud vás budeme odkazovat na pokročilejší témata.

Poslední dva roky jsme měli naše servery u DigitalOcean a neměli jsme tam sebemenší problém. DigitalOcean se ale pomalu mění a začíná upřednostňovat dražší varianty virtuálních serverů. Myslíme si, že jejich Basic tarify časem zmizí, protože se DigitalOcean transformuje do oblasti managed služeb místo pronájmu čistého výkonu, kde jsou lepší marže než při pronájmu serverů.

To nás vede trochu do pasti, protože pokud DigitalOcean nenabídne levnější virtuální servery, my nemůžeme jít s parametry naší služby nahoru. Pro rok 2021 jsme si vytyčili cíl mít pro každou aplikaci minimálně 512 MB paměti za současnou cenu 99 Kč bez DPH a upravíme podle toho i vyšší balíčky.

Půjde o docela velký zásah do naší infrastruktury a tak bychom chtěli změnit během toho ještě pár dalších věcí, které nám s tím pomohou. Při migraci dojde k aktualizaci systému, kde běží databáze a sjednotíme SSH přístup do kontejnerů pod jednu doménu. Tedy už žádné node-X.rosti.cz, ale jen něco na způsob ssh.rosti.cz pro všechno. A pokud to půjde, zrušíme podporu FTP protokolu i u starších aplikací (node-14 a novější už FTP nemají). Sjednocení SSH přístupu k aplikacím nám umožní stěhovat servery a dokonce i jednotlivé aplikace bez nutnosti komunikace nového přístupu přes SSH.

Chtěli bychom také tento rok zahodit Kubernetes. Běží nám v něm administrace a pár podpůrných služeb jako InfluxDB, Sentry, Grafana, phpMyAdmin, Adminer a pár dalších. Některé služby převedeme pod náš hosting a administrace poběží na svém virtuálním serveru na DO. Kubernetes byla dobrá zkušenost, ale z dlouhodobého hlediska je pro nás spíše na obtíž. Nepotřebujeme totiž škálovat a nenasazujeme jednu službu za druhou a v takovém případě je Kubernetes vcelku komplexní vrstva, která toho zas tolik nepřináší. Pokud se ke Kubernetes někdy vrátíme, bude to backend pro hostované aplikace.

V posledních dnech byste měli pocítit stabilnější response time u vašich aplikací, protože jsme výrazně posílili výkon našeho load balanceru, který teď zvládá špičky provozu, které se tam pravidelně objevují. S load balancerem ještě plánujeme aktualizaci, která bude hotová během příštího týdne. Máme už od Masteru připravený nový stroj s Debianem 10, kam jsme zkopírovali konfiguraci a tak čeká jen na vhodný okamžik.

Docker mění ceník za privátní obrazy, který nám docela výrazně zvedá náklady. Chceme tedy přejít na vlastní registry postavené na Harbor.io.

Co se týče hostingu samotného, tak někdy z kraje roku přidáme nový Runtime 2020.01, kde bude dostupné Ruby a Deno. Deno je alternativou k Node.js, ale je rychlejší a má vyřešené některé věci, které se do Node.js dostávají složitěji. Máme s ním výborné zkušenosti a tak ho před vámi nebudeme schovávat. Ruby už je připravené, ale nemáme ještě hotovou welcome stránku, která se zobrazuje po instalaci nové aplikace. Během roku pak chceme přidat podporu pro snapshoty aplikací a databází. Z těch půjde obojí obnovit a půjdou i stáhnout pro potřeby offline zálohy.

Platební systém se ukázal být složitější než se na první pohled zdálo a protože nám do jeho vývoje skočily jiné projekty, tak jsme ho na chvíli odložili. Během 2021 bude ale snad hotový.

Doufám, že si v chystaných změnách najdete něco, co vám udělá radost a také vám chci za celé Roští popřát vše nejlepší do roku 2021.

Úvodní obrázek patří Free-Photos na Pixabay.