( kallaics | 2024. 05. 07., k – 17:56 )

Szerkesztve: 2024. 05. 07., k – 18:04

Szia!

Microservice architektúrát használtok vagy egy nagy app az egész?

Ha microservice architektúrát használtok, akkor VM esetében pm2-vel lehet érdemes futtatni, természetesen cluster módban. Ha gondoljátok át lehet tenni az egészet Kubernetesre, ami miatt elosztottabb lesz a rendszer és könnyebben skálázható.

A fejlesztő nézze meg, hogy lehet-e aszinkron futást belevinni, ahogy fentebb is írták.

Azt fontos tudni, hogy az "Akármilyen".JS-re való váltás nem mindig hoz teljesítmény növekedést.  Illetve nem minden alkalmazás darabolható fel értelmesen microservice-ekre. Sok helyen inkább divat, de a végén kiderül,  hogy drágább, mint a régi rendszer. Egy jó PoC meg tudja mutatni, hogy mit érdemes Javascriptbe és mit nem migrálni.

Az erőforrás felhasználást ki kell mérni az egyes app-oknál és az után adni neki limitet. Ha a limit túl magas, akkor nem jut másik microservice több erőforráshoz, pedig kéne neki. Ha túl alacsony, akkor belassul a microservice. A PM2-re lehet telepíteni a pm2-metrics csomagot, amivel lehet exportálni a CPU és memória használatot (per App) Prometheus-ba. Prometheus és Grafana párossal remekül lehet nézni az adatokat. A méreshez javasolt egy teszt, amivel ki lehet hajtani a rendszert és utána van esély a jó CPU és memória limit hasznalatára.

Azt nézzétek meg, hogy van-e barmilyen vírusvédelem a rendszeren, mert a JS sok kicsi fájllal dolgozik és a kettő együtt is meg tudja pörgetni a gépet.

Sajnos Zabbix-szal való összedrótozással nincs tapasztalatom. Találtam megoldást, de évek óta nem fejlesztik, így a linket nem tenném ide.

Ha már megvannak az alapok és megy az egész, akkor lehet gondolkodni, hogy lesz az egész stateless, csomagolás Docker image-be és mehet Kubernetesre. Ha van egy futó környezet, akkor jöhet hozzá egy kis GitOps szemlélet, egy FluxCD vagy ArgoCD a deployment automatizáláshoz, de ne szaladjunk ennyire előre...