Nový backed pro kontejnery

Nový backed pro kontejnery

Během příštích dvou týdnů bychom rádi nasadili nový backend pro kontejnery. Snažíme se, aby se toho moc nezměnilo, ale přeci jen se pár detailů, které vám snad udělají radost, najde.

Než se vůbec dostanu k tématu dnešního blogpostu, chtěl bych vám říct, že jsme zase dostupní na live chatu. Pokud tedy budete mít problém nebo se jen chcete na něco zeptat, stačí jednou kliknout a psát.

Novinka z titulku se týká hlavně nás, protože nám usnadní vývoj. Postupně přesunujeme veškerou logiku z administrace do malých oddělených služeb a teď přišel čas na kontejnery. Není to poprvé, co v administraci něco přepisujeme a nová architektura nám umožňuje nejen navrhnout část systému znovu, ale zvolit i nejlepší technologie pro daný problém. Navíc se nové funkce dají vyvíjet bez dostupnosti kompletního stacku.

Zpětnou kompatibilitu se starým systémem jsme zachovali. Stará implementace byla značně univerzální a ukázalo se, že to je vlastnost, co nepotřebujeme a spíše stojí v cestě. Nová je šitá na míru Roští a díky tomu budeme moct z administrace odstranit čtvrtinu kódu a lépe optimalizovat.

Bodově tedy co se novinek týká:

  • Z administrace bude možné zvolit technologii,
  • stejně bude možné povolit memcached a redis,
  • node, kam se umístí nová aplikace, bude vybírán automaticky podle obsazení,
  • nový systém je zpětně kompatibilní,
  • zmizí zastaralé obrazy.
  • a bude možné povolit Redis a Memcached přímo z administrace.

Nutnost se přihlásit do kontejneru přes SSH pro volbu technologie považujeme aktuálně za největší překážku pro nové uživatele. U PHP aplikací je to jediný důvod, proč SSH využít, abyste tam dostali alespoň "hello world", takže jedním tlačítkem uděláme nasazení aplikace o poznání jednodušší.

Screenshot z vývojové verze

Memcached a Redis bude nově k dispozici v sekci služby u každé aplikace a půjdou tam i aktivovat. Kromě cronu by tak měly být všechny funkce z rosti.sh implementované v administraci,

Screenshot z vývojové verze

V současné době ručně přepínáme nody, kam jdou nové aplikace. Nové Node API sleduje stav jednotlivých nodů a podle indexu obsazenosti aplikaci umístí. Mělo by nám to pomoci lépe plnit servery a nebude se stávat, že nové aplikace jdou na přeplněný stroj. Zvlášť teď, když jsme začali používat menší nody to hodně pomůže.

Staré obrazy budou naplno nahrazeny novými Runtime obrazy s čímž souvisí nová verze Runtime 2020.08-1. Kromě aktualizací balíčků i PHP, Pythonu a Node.js v ní je upravená utilitka rosti.sh, která nyní aktivování technologie z administrace podporuje.

Během migrace znepřístupníme administraci. Dostupnost služeb nebude jakkoli ovlivněna, ale je nutné, aby se nám data neměnila pod rukama až začneme. S kódem jsme hotovi a aktuálně zbývá několik kroků:

  • Doplnit překlady,
  • připravit servery,
  • otestovat migraci na reálných datech.

Myslím, že je reálné, abychom se o migraci pokusili už tento víkend, v noci z pátka na sobotu. Pokud bychom narazili na nějaký problém, zkusili bychom to znovu v noci ze soboty na neděli. Jak jsem již jednou psal, během procesu bude fungovat vše kromě administrace. Pokud byste narazili na nějaký problém, budeme dostupní na live chatu, případě na emailu.

Plány na další kvartál

V případě, že se nezasekneme na nějakých problémech, tak po nasazení Node API se chceme naplno soustředit na platby. Aktuálně nás trápí:

  • Platba kartou není automatická,
  • doba, kdy bude potřeba dobít kredit lze jen složitě odhadnout,
  • ve statistikách mícháme cenu aplikaci a příplatků k ní jako je diskový prostor,
  • nejsou k dispozici detailní statistiky za co jste u nás nechali peníze,
  • chybí affiliate a slevové kódy.

I logiku plateb odstraníme z administrace a vytvoříme pro ně vlastní microservice, která bude s administrací komunikovat přes API, stejně jako tomu je u DNS, load balanceru a brzy bude i u kontejnerů.