Zajimave.
Jak vyrobit DevOps peklo milionu slepenych utilitek snadno a rychle.
Ja osobne bych podobne reseni stavel na Java 17 + Spring Boot 2.6.x jako REST backend provider (skeleton vygenerovany na Spring starteru) a Vue3 s PrimeVUE komponentami, na grafovani Dygraphs.
Frontend kompletne v typescriptu, nejsme prasata.
Trochu slozitejsi setup projektu, vysledek snaze udrzovatelny a DevOps je deployment jednoho FAT JAR, kteremu staci nastavit chmod +x a primo jej nechat ovladat systemd.
Tisic lidi, tisic chuti.
Tady autor prvniho komentare a castecne (bohuzel) i DevOps :)
Kde je konkretne problem a rozdil?
- mate javu + vecicky okolo + Maven
- mate Python + pip
V obou pripadech se nekde v pred-deployi (podle nastaveni) vytvori image aplikace a ta se po probehnuti CI/CD pipeliny nasazuje. Jestli je to JAR uz je prece jedno, kdyz se pracuje s jednou uz hotovou image. Btw mam tady i programy v Go a je to to stejny porad dokola, s tim, ze namisto fat jar je tam primo spustitelna binarka bez dalsich zavislosti (krome glibc).
Jinak ten clanek je o pozadavku na itranetovej tool bezici nad S3/Miniem, kterej je idealne hotovej za tech pul hodiny + dalsich 7,5 hodiny se to vykazuje, aby se nezvysovala latka :p Ale rad bych (skutecne rad) videl ten projekt napsanej v technologiich, ktere zminujes, bylo by to zajimave porovani (jsem se ptal na JS reseni, ale Java je taky fajne).
13. 5. 2022, 10:02 editováno autorem komentáře
Zavisi od toho ako velmi to chces robit do buducna (teda napr. responzivny design, lokalizacia, automaticky refresh atd.) - na jednorazovu utilitku co bude pouzivana z desktop je to uplne v pohode, neviem ako by to fungovalo na mobile/tablete.
Najjednoduchsie JS riesenie by IMO bolo postavene na Next.js (https://nextjs.org/) s deployom na Vercel. Mozes spravit v podstate to iste (server-side predgenerovat data a pushnut uz celu stranku na klienta cez https://nextjs.org/docs/basic-features/data-fetching/get-server-side-props), UI a popupy cez MaterialUI (https://mui.com/) a grafy bud v canvas element v browseri cez chart.js (https://www.chartjs.org/) / D3.js (https://d3js.org/) alebo urobit endpoint co vygeneruje JPG/PNG na serveri (napr. image-charts https://www.npmjs.com/package/image-charts kedze to bezi na strane servera tak sa medze nekladu a moze to byt aj Python skript).
MinIO klient je dostupny priamo ako balicek pre Node.js (https://github.com/minio/minio-js) takze s tym by nemal byt problem. Ak mas data natahane v MinIO a pojdes so standardnou temou na MaterialUI tak ratam ze tych cca 30 minut - 1 hodina to bude trvat tiez ak vies co a ako pouzit.
Ak bude zaujem tak to mozno cez vikend spacham a hodim to sem.
13. 5. 2022, 23:20 editováno autorem komentáře
Bylo by zajimave, kdyby tam nekde byl odkaz na bezici vzorek. Nebo yt video, aby bylo zrejme, jak vypada vysledek.
Za sebe - mereni z pythonu, do influxu a grafana do nej chodi tahat data. Vetsinu prace tu uz udelal nekdo jiny.
Ale diky za zajimave podnety, neni mi jasne, kde je silna stranka minio - to se mohlo trochu rozebrat.
Výsledek by měl být aspoň trošku vidět ze screenshotů. Prostě jediná stránka s odkazy, které vedou k zobrazení popup okna s tabulkou popř. s grafem. Nikde se nic viditelně nepřekresluje, protože pod kapotou to není request-response, ale neustále propojení BE s FE.
Minio je tady použito jen jako lokální náhrada za S3 (navíc plně open source, nemusíte si na AWS tvořit testovací account atd.). Meze změny kódu (jen přepísem URL a obou klíčů) to jde přesměrovat na plnohodnotnou produkční S3.