Velikost mikroslužby

harrison314

Velikost mikroslužby
« kdy: 05. 07. 2018, 21:34:19 »
Pocslenu dobu si vsimam pardoxu mikrosluzieb.

Ake maju byt vlastne velke?

Lebo ludia od Go a javascriptu tlacia mirksoluzby pomaly na urovni funkcii.
Potom je tu java,.Net Core,... (proste typove sa solidne jazyky), kde kde sa bez problemov da spravit velka aplikacia, tam sa presadzuju mikrosluzby o dost vetcie a mohutnejsie.
« Poslední změna: 08. 07. 2018, 18:46:00 od Petr Krčmář »


balki

Re:Velkost mirkosluzby
« Odpověď #1 kdy: 05. 07. 2018, 22:18:49 »
Fowler pise:
https://www.martinfowler.com/articles/microservices.html#CharacteristicsOfAMicroserviceArchitecture


How big is a microservice?

Although “microservice” has become a popular name for this architectural style, its name does lead to an unfortunate focus on the size of service, and arguments about what constitutes “micro”. In our conversations with microservice practitioners, we see a range of sizes of services. The largest sizes reported follow Amazon's notion of the Two Pizza Team (i.e. the whole team can be fed by two pizzas), meaning no more than a dozen people. On the smaller size scale we've seen setups where a team of half-a-dozen would support half-a-dozen services.

This leads to the question of whether there are sufficiently large differences within this size range that the service-per-dozen-people and service-per-person sizes shouldn't be lumped under one microservices label. At the moment we think it's better to group them together, but it's certainly possible that we'll change our mind as we explore this style further.

Re:Velkost mirkosluzby
« Odpověď #2 kdy: 05. 07. 2018, 22:49:23 »
Byl jsem asi pred 3 lety na konferenci, kde Antonio Goncalvez rikal, ze za velikostni limit microservice povazuje 30MB. Byla to konference prevazne o jave.

anonym

Re:Velkost mirkosluzby
« Odpověď #3 kdy: 05. 07. 2018, 22:59:09 »
Byl jsem asi pred 3 lety na konferenci, kde Antonio Goncalvez rikal, ze za velikostni limit microservice povazuje 30MB. Byla to konference prevazne o jave.

Co to je mikroservice? V minulem tematu jsem byl poucen, ze SOA není to samé co microservices. Já asi nevím, co to microservices jsou, a vlastně mě to ani nezajímá. Dělám ve Springu, tam máme SOA a velikost sluzeb je taková, aby na ni stačil jeden tým rozumné velikosti a aby aspoň trochu respektovala single responsibility princip.

anonym

Re:Velkost mirkosluzby
« Odpověď #4 kdy: 05. 07. 2018, 23:01:26 »
Ono můžeš to dělat jak malé chceš, ale limitace je to, že komunikace mezi službama je oser. Takže když na každou kokotinu budeš dělat službu, tak si přiděláváš práci kvůli tomu, že k ni budeš muset dělat api.


anonym

Re:Velkost mirkosluzby
« Odpověď #5 kdy: 05. 07. 2018, 23:32:36 »
A nejen že komunikace mezi službama je oser, ale přiděláváš si i další práci: další log soubory, žraní paměti a času při spouštění redundantních knihoven  co musí vždycky naběhnout nehledě na velikost služby, samostatné repozitáře mezi kterma budeš muset jako pako pořád překlikávat a vytvářet totožné branche kvůli novým funkcionalitám, několik spuštěných IDEček naráz, zvyšovat verze v několika různých POMkách namísto jednoho, u debugování budeš muset nasázet několik breakpointů namísto jednoho a stejně ztratíš stacktrace napříč službama atd.

Když potřebuješ dát nějaký celek zvlášť, stačí udělat nový maven modul. Na vývoj stejně můžeš použít JRebel, takže nemusíš pořád restartovat celý moloch.

Prostě ta velikost služeb bude záviset na použitých technologiích, já nevím jak to mají v Javascriptu, ale v Javě určitě pidislužby dělat nechceš.

Re:Velkost mirkosluzby
« Odpověď #6 kdy: 06. 07. 2018, 00:34:39 »
A nejen že komunikace mezi službama je oser, ale přiděláváš si i další práci: další log soubory, žraní paměti a času při spouštění redundantních knihoven  co musí vždycky naběhnout nehledě na velikost služby, samostatné repozitáře mezi kterma budeš muset jako pako pořád překlikávat a vytvářet totožné branche kvůli novým funkcionalitám, několik spuštěných IDEček naráz, zvyšovat verze v několika různých POMkách namísto jednoho, u debugování budeš muset nasázet několik breakpointů namísto jednoho a stejně ztratíš stacktrace napříč službama atd.

Když potřebuješ dát nějaký celek zvlášť, stačí udělat nový maven modul. Na vývoj stejně můžeš použít JRebel, takže nemusíš pořád restartovat celý moloch.

Prostě ta velikost služeb bude záviset na použitých technologiích, já nevím jak to mají v Javascriptu, ale v Javě určitě pidislužby dělat nechceš.

Takhle to vypadá, když se microservice použije tam, kde to nedává smysl. IMHO microservice má smysl tam, kde výhody toho, že si microservice žije svým životem, převyšují náklady na správu a vývoj té celé infrastruktury mikroslužeb.

Gődel

Re:Velkost mirkosluzby
« Odpověď #7 kdy: 06. 07. 2018, 00:42:28 »
Lebo ludia od Go
V Go se píšou monolity, ale výsledkem je malá binárka, nikoliv bajtkód vyžadující gigabajtovou JVM.

Re:Velkost mirkosluzby
« Odpověď #8 kdy: 06. 07. 2018, 08:26:35 »
Lebo ludia od Go
V Go se píšou monolity, ale výsledkem je malá binárka, nikoliv bajtkód vyžadující gigabajtovou JVM.

Gigabytovou? Neboj se a uber.

balki

Re:Velkost mirkosluzby
« Odpověď #9 kdy: 06. 07. 2018, 09:17:26 »
No, tak ten golang ma sice pri hello world prikladoch mensie poziadavky na pamat, ale zasa po skompilovani uz prestava byt multiplatformny. Aj na to treba pamatat. Ked "microservicy" riesim v spring boot s embednutym jetty mam k dispozicii obrovsky ekosystem javy. Spring boot som uz bezal aj na rpi1 a nejaky tragicky memory footprint to nemalo. (okolo 100mb)

Osobne by som taketo veci ked uz tak riesil v haskelli. 

anonym

Re:Velkost mirkosluzby
« Odpověď #10 kdy: 06. 07. 2018, 09:27:34 »
Lebo ludia od Go
V Go se píšou monolity, ale výsledkem je malá binárka, nikoliv bajtkód vyžadující gigabajtovou JVM.

Protože to Go a Javascript a další ftákoviny, to je takové ukulele. Jasně, někteří lidi na něj umí a libujou si, že i s malým kašpárkem se dá zahrát velké divadlo, což pravidelně předvádějí když lepí weby. Ale Java, to je to orchestr, to si hoši uvědomte, jasně že na ty vaše webové srágory je to overkill 8)

https://www.youtube.com/watch?v=EAFtiUoq6TE

balki

Re:Velkost mirkosluzby
« Odpověď #11 kdy: 06. 07. 2018, 09:33:34 »
Lebo ludia od Go
V Go se píšou monolity, ale výsledkem je malá binárka, nikoliv bajtkód vyžadující gigabajtovou JVM.

Protože to Go a Javascript a další ftákoviny, to je takové ukulele. Jasně, někteří lidi na něj umí a libujou si, že i s malým kašpárkem se dá zahrát velké divadlo, což pravidelně předvádějí když lepí weby. Ale Java, to je to orchestr, to si hoši uvědomte, jasně že na ty vaše webové srágory je to overkill 8)

https://www.youtube.com/watch?v=EAFtiUoq6TE

Tu je rec skor o servisne orientovanej architekture, nez o lepeni webov. Za to, ze ma nieco vystup json, alebo xml, google protocol buffers (atd ...) nemusi to hned byt web-ka. Proste su to protokoly na vymenu dat a bezne sa pouzivaju medzi modulmi vacsich informacnych systemov.

Kit

Re:Velkost mirkosluzby
« Odpověď #12 kdy: 06. 07. 2018, 09:46:13 »
No, tak ten golang ma sice pri hello world prikladoch mensie poziadavky na pamat, ale zasa po skompilovani uz prestava byt multiplatformny. Aj na to treba pamatat.

Po kompilaci nás multiplatformita přestává zajímat.

Ked "microservicy" riesim v spring boot s embednutym jetty mam k dispozicii obrovsky ekosystem javy. Spring boot som uz bezal aj na rpi1 a nejaky tragicky memory footprint to nemalo. (okolo 100mb)

100 MB je hodně - jsem zvyklý na footprint aplikace v PHP do 10 MB. Víc obvykle není třeba, pokud aplikace není napsána extra blbě nebo se PHP neprovozuje v režimu webserver.

Re:Velkost mirkosluzby
« Odpověď #13 kdy: 06. 07. 2018, 09:54:49 »
No, tak ten golang ma sice pri hello world prikladoch mensie poziadavky na pamat, ale zasa po skompilovani uz prestava byt multiplatformny. Aj na to treba pamatat.

Po kompilaci nás multiplatformita přestává zajímat.

Ked "microservicy" riesim v spring boot s embednutym jetty mam k dispozicii obrovsky ekosystem javy. Spring boot som uz bezal aj na rpi1 a nejaky tragicky memory footprint to nemalo. (okolo 100mb)

100 MB je hodně - jsem zvyklý na footprint aplikace v PHP do 10 MB. Víc obvykle není třeba, pokud aplikace není napsána extra blbě nebo se PHP neprovozuje v režimu webserver.

Malá data, malé problémy -> malý footprint.

balki

Re:Velkost mirkosluzby
« Odpověď #14 kdy: 06. 07. 2018, 10:10:40 »
Ked "microservicy" riesim v spring boot s embednutym jetty mam k dispozicii obrovsky ekosystem javy. Spring boot som uz bezal aj na rpi1 a nejaky tragicky memory footprint to nemalo. (okolo 100mb)

100 MB je hodně - jsem zvyklý na footprint aplikace v PHP do 10 MB. Víc obvykle není třeba, pokud aplikace není napsána extra blbě nebo se PHP neprovozuje v režimu webserver.

Ta php aplikacia ma uz v sebe v tomto pripade embednuty webserver?  ( a ak nie,  je zaratany do tejto spotreby?)
Nerypem, len sa pytam, v pripade, ze by som mal po ruke php-ckara a potreboval nieco riesit.