( gejzir | 2017. 08. 22., k – 17:26 )

Nem értem sokaknak mi a bajuk az alkalmazás szerverekkel és a containerrel. Olyan dolgokat old meg a szabványos fix API-val, amikkel te biztosan nem akarsz vagy tudsz foglalkozni, de általában találkozol vele később. Gyárilag meg van oldva a modularizáció (jar, war, ear), az auto discovery akár clusteres környezetben, dinamikus deploy futó szerverbe, distributed tranzakciók, singleton-ok, distributed cache, messaging stb., és +1x mindez alapjaiban fix szabványos API-val, ami alatt cserélhető az implementáció, bár nyilván mindegyik kicsit eltér.

Nekem éppen a spring boot-tól, meg a dockertől áll fel a szőr a hátamon (értem, hogy mostanában divat). Volt olyan nagy nemzetközi projekt ahol a német architekt bele volt szerelmesedve a spring boot-ba meg a microservice-ekbe, minden egyszerű alap REST-es service-t külön spring boot-os containerbe pakolt. Aztán az egészet ki kellett egészíteni olyan szolgáltatásokkal, librarykkel (auto discovery, routing, load balancing, monitoring) amik egyenként megfeleltethetők voltak a JavaEE stack belső szolgáltatásainak, amiket az alkalmazás szerver biztosít. Mindez http(s) fölött, baromi körülményesen és lassan. Ahhoz, hogy az alkalmazás elinduljon mondjuk egy fejlesztői gépen (8-12 spring boot service), kevés volt a 16GB Ram a gépekbe.

Kérdések:
Miért is kell minden spring boot service-nek önálló környezetet, saját web servert, jpa-t stb. indítani, mikor az érdemi alkalmazás egyébként pár kilobyte bytekód? Szerintem ez pazarlás, ráadásul ezek között a modulok között a kommunikáció (rest, http, https) sokkal lassabb mint egy bináris (akár udp) belső szinkronizációs protokoll.

Miért kell minden szerver komponenst beágyazni a saját alkalmazásba ráadásul saját spring boot-os configgal elfedni az adott modul configját? Elvileg ettől csereszabatos lesz pl. a web szerver, de próbálj meg egy exotikus szerver paramétert megfelelően beállítani.

A docker meg szintén megér egy misét, érdemes végigolvasni: https://thehftguy.com/2016/11/01/docker-in-production-an-history-of-fai…

Ennek ellenére nem mondom, hogy JavaEE az üdvözítő út, de a spring boot biztosan nem az.