Microservices - temat ogólny

0

Chciałbym założyć ogólny temat o Microservices w Java, bo to raczej w niej mamy najdojrzalsze środowisko pod ten rodzaj architektury.
Nie wiem do końca czy powinienem zakładać w dziale Java ten temat, ponieważ nie jest on ściśle związany z konkretną technologią.

Mam nieco doświadczenia ze stackiem około Spring Boot / Netflxowym. I generalnie wydaje się, ze najpopularniejsze jest podejście spring boot na dockerze + swarm itp. itd.
Z tym, że dalej mam wrażenie, że jest to nieco zasobożerne.

Widziałem niedawno wpisy Adama Biena, który reklamuje, i nie tylko on -> Jave EE do microservices = dockery. Próbują to sprzedać jako najlżejszy framework do tego rodzaju zabaw.
I w sumie jak się trochę tym człowiek pobawi to wiele w tym racji i niewiele w tym magii zazwyczaj. Chociaż jeśli się zna to pierwsze to jednak Spring stack wydaje się dużo wygodniejszy. Szczególnie jeśli chodzi o testowanie.

Java EE według mnie jednak miałaby szansę nadrobić jeśli coś wyjdzie z Java EE 8 albo Microprofile. Chociaż widać, że Wildfly i Payara też dość mocno idą w ten temat.

A wy jakie macie przemyślenia?

0

Jak dla mnie to JavaEE miała mikroserwisy od zawsze- można przecież na typowym serwerze aplikacyjnym deployować osobne aplikacje war albo ejb-jar, komunikujące się przez zdalne interfejsy, a aplikacje takie mają wagę liczoną w dziesiątkach kilobajtów. Po co robić jakieś dziwolągi typu wildfly-swarm?

1

To jest coś dużo fajniejszego niż JavaEE czy Spring boot

https://www.lightbend.com/lagom

To w zasadzie stack Akkowy "portowany" do Javowego API (zresztą przez lightbend (dawniej TypeSafe) czyli twórców Akki).

Dlaczego dużo lepsze:

  • nie ma bzdurnej zabawy z annotacjami (prawie),

  • trwałość jest oparta o event sourcing (żadne bzdurne bazy danych nie plączą się pod nogami),

  • żadnych bzdur z kontektstem transakcyjnym,

  • funkcyjne API - dość łatwo się testuje,

  • wsparcie dla strumieni (czytaj - łatwe websockety),

  • WADA: używają dependency injection frameworku (Guice)- (na szczęście nie plącze się pod nogami)

Prywatnie wolę bezpośrednio użyć Scali, Akki i poskładać sobie framework z bibliotek,ale jak jesteś w jakiejś firmie gdzie kocha się frameworki i Javę - to Lagom jest godny polecenia.

1

@jarekr000000 zapomniałeś chyba do minusów dodać:

  • nikt go nie używa, wiec community zerowe i tym samym możliwość uzyskania pomocy w razie problemów także zerowa
  • mała szansa ze się przyjmie i pewnie za jakiś czas zniknie on a także jakiekolwiek możliwe wsparcie i trzeba będzie przepisywać na nowo, no ale jak ktoś jest hipsterem i lubi cały czas przepisywać wszystko na nowinki to kto bogatemu zabroni :D

;) Juz ta Scala+Akka to dużo lepsza propozycja bo są juz pewnym standardem w odpowiednich kręgach.

1
Shalom napisał(a):
  • mała szansa ze się przyjmie i pewnie za jakiś czas zniknie on a także jakiekolwiek możliwe wsparcie i trzeba będzie przepisywać na nowo, no ale jak ktoś jest hipsterem i lubi cały czas przepisywać wszystko na nowinki to kto bogatemu zabroni :D
    .

Zważywszy, że jest to pierwszy (mi znany) **normalny **framework do Javy to jednak może mieć szansę. Zwłaszcza, że akurat Java EE 8 dostała od Oracle żółtą kartkę (słusznie), czekam jeszcze aż chłopaki od Springa powiedzą, że to syf i trzeba od nowa napisać (już nawet zaczęli https://dzone.com/articles/new-in-spring-5-functional-web-framework (policz użyte annotacje :-) )).

0

Java EE moze byc spoko ale... W springu masz juz niemal wszystko co dusza zapragnie. Load balancery, see I've discovery, monitoring itp. Czasem kwestia dependency i adnotacji i masz... Poza tym nic nie stoi na ptzeszkodzie by mieszac jedno z drugim.

Niestety w przypadku java ee jak trafisz na corner case to musisz rzezbic.

Microserwisy daja wolnosc technologii. Ja osobiscie uzylbym oprocz Javy... Scali jesli potrzebowalbym sparka albo np. Akka.

Golanga do czegos nieduzego, lekkiego, szybkiego itp itd.

A ten lagom to myslalem, ze mimo scali to powstal dla java?

0

Dzieki java 8 i 9 ten jezyk juz nie jest ani troche skostnialy. A jam wywalisie xmle to juz w ogole. Mylicie nowoczesna jave ze stara. Java caly czas sie rozwija i wedlug mnie to jest tego wiecej niz mniej ;)

A wszystko od nowa Mapy sane zasze bedzie fajniejsze od tego X lat temu. Niezaleznie od jezyka.

Po co wynalazki jak wildfly swarm?
A jak mi padnie serwer ze wszystkimi aplikacjami to na cholere mi takie mikroserwisy?

Czesc ludzi zrobilaby wlasnie 1 aplikacja 1 serwer. A mogac odpalac to embedded to praca lokalna jest z tym bardzo przyjemna.

0

https://spring.io/blog/2016/09/22/new-in-spring-5-functional-web-framework

Niby spoko... Ale w sumie na 1 rzut oka jakies piekne to to nie jest. Inna sprawa czy bedzie sens tego uzywac na szersza skale ;)

0
Krzywy Młot napisał(a):

Po co wynalazki jak wildfly swarm?
A jak mi padnie serwer ze wszystkimi aplikacjami to na cholere mi takie mikroserwisy?

To łączysz je w klastry

0

a polecacie coś nie-javowego do microservices? ;)

0

Nie javowego to może .net core i Docker :)

0
Mały Lew napisał(a):

Nie javowego to może .net core i Docker :)

docker to pasuje do kazdej technologii. Do MS chyba najmniej. Nancy jest na. Net core?

Ja bym powiedzial node.js, akka-http, golang, pewnie cos z php, python flask, i moze cos ze swifta sie pojawi.

0

Co myślicie o code reuse w microserwisach?

Lepiej trochę więcej copy paste niż męka z zależnościami ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1