Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Powerful Two-Hander
Mar 10, 2004

Mods please change my name to "Tooter Skeleton" TIA.


Cold on a Cob posted:

without making judgment about which is better or worse in which circumstances, there is no way to avoid the fact that microservices are more expensive than a monolith. more resources required, more dev work, more of everything.

one of the biggest advocates we have for them admitted that they were held up with some migration because they needed to update 250 different services to use the new version lmao

Adbot
ADBOT LOVES YOU

Cold on a Cob
Feb 6, 2006

i've seen so much, i'm going blind
and i'm brain dead virtually

College Slice
we kinda split the middle and just have a service oriented architecture with around 25 services and it's a loving grind keeping them up to date

also a constant fight with IT for more server resources because turns out when you replicate data between services to make them more redundant you take up a shitload of disk space

Powerful Two-Hander
Mar 10, 2004

Mods please change my name to "Tooter Skeleton" TIA.


Cold on a Cob posted:

we kinda split the middle and just have a service oriented architecture with around 25 services and it's a loving grind keeping them up to date

also a constant fight with IT for more server resources because turns out when you replicate data between services to make them more redundant you take up a shitload of disk space

I'm not even joking someone said that you should write each service to take all data from other services, presumably to create some sort of ouroboros of poo poo

Cold on a Cob
Feb 6, 2006

i've seen so much, i'm going blind
and i'm brain dead virtually

College Slice

Powerful Two-Hander posted:

I'm not even joking someone said that you should write each service to take all data from other services, presumably to create some sort of ouroboros of poo poo

isn't that the point of graphql? i'm way behind on this stuff and i need to get a new job and/or take a sabbatical and do some studying; instead i just spend hours fighting for more disk for our prod systems

FlapYoJacks
Feb 12, 2009
With the last embedded project I did, instead of having a single monolithic program, we had six smaller programs that talked to each other via DBUS or gRPC. All the programs were in a single repository with a CMake file and a Makefile wrapper for ease of use. The architecture made it much easier for multiple people to work on different project areas simultaneously. I will do again for future projects.

FlapYoJacks fucked around with this message at 15:55 on Apr 20, 2023

abraham linksys
Sep 6, 2010

:darksouls:

Powerful Two-Hander posted:

I'm not even joking someone said that you should write each service to take all data from other services, presumably to create some sort of ouroboros of poo poo

this is a bff, backend-for-frontend

it's nominally supposed to take the place of a graphql-y thing of letting you just query data for a UI screen rather than your business objects, just you create an endpoint per screen

however, over time, backend engineers will try to push more and more work off into the BFF to try to avoid actually owning any of the actual problems of the business, and inevitably the BFF will be like "oh this is the service the frontend and mobile engineers can work on too" so it ends up having some wack-rear end architecture like being a nodejs app or something, and the code quality/test standards of the codebase will be low because none of the backend engineers consider it a "real" service even though it's by far the most-called service (at least by user-facing apps)

it's probably the worst thing about my job :smith:

e: oh i haven't had coffee yet and probably misunderstood; you said have each service take data from other services. yeah don't do that. our BFF also ends up being the service we use to "solve" circular dependencies between services when there's no other obvious way to do so, just pull some logic out and turn it from a O into a Y when graphed out

mystes
May 31, 2006

abraham linksys posted:

this is a bff, backend-for-frontend

it's nominally supposed to take the place of a graphql-y thing of letting you just query data for a UI screen rather than your business objects, just you create an endpoint per screen

however, over time, backend engineers will try to push more and more work off into the BFF to try to avoid actually owning any of the actual problems of the business, and inevitably the BFF will be like "oh this is the service the frontend and mobile engineers can work on too" so it ends up having some wack-rear end architecture like being a nodejs app or something, and the code quality/test standards of the codebase will be low because none of the backend engineers consider it a "real" service even though it's by far the most-called service (at least by user-facing apps)

it's probably the worst thing about my job :smith:
but you get to have a BFF :3:

MrMoo
Sep 14, 2000

Powerful Two-Hander posted:

one of the biggest advocates we have for them admitted that they were held up with some migration because they needed to update 250 different services to use the new version lmao

That just becomes a distributed monolith but with none of the benefits? The entire point of SOA is decoupling and running multiple versions concurrently for rollout and testing.

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
microservices have a massive overhead in compute resources and developer time, and the idea is it's worth it because you cut down on communication overheads between teams working on different microservices.

it only really makes sense if you're a tech giant where those communication overheads outweigh the cost of microservices, or if you're a vc-backed startup where having a lot of programmers engaged in programming will let you raise another big round of funding even if they're mostly doing pointless busywork.

Powerful Two-Hander
Mar 10, 2004

Mods please change my name to "Tooter Skeleton" TIA.


MrMoo posted:

That just becomes a distributed monolith but with none of the benefits? The entire point of SOA is decoupling and running multiple versions concurrently for rollout and testing.

this has been my view when we have people talking about how every application will actually be a huge pile of microservice/frontend components so you make it look like a monolith but get no advantage of having one place to view "everything" and instead you're in service contract dependency hell all the time


this is where I said "MVC is actually microservices when you think about it" as a semi joke and pissed everybody off

Sapozhnik
Jan 2, 2005

Nap Ghost
make an mvp and then migrate to a microservices architecture later because microservices make my peepee hard

best of both worlds! obviously the original monolith hangs around forever and has features constantly added to it regardless

Corla Plankun
May 8, 2007

improve the lives of everyone
none of this lines up with my experience with microservices and monoliths at all but maybe thats because my whole thing is being rigorous about interfaces between services and not letting anyone "just hit <other service>'s database for one quick thing" or whatever

the monoliths i've worked with have all had insane snarls of codepaths that can't be separated or optimized easily while microservices have a clear enough separation of concerns that it is much nicer to maintain and update them (oh and provision the right amount of resources!). obviously ymmv but its weird that y'all are complaining about monolith problems in microservice land and vice versa

Shaggar
Apr 26, 2006
microservices seem to only really work if you're like 100% writes or 100% reads.

Shaggar
Apr 26, 2006
or if they're actually, secretly, very simple monoliths in disguise

abraham linksys
Sep 6, 2010

:darksouls:

Corla Plankun posted:

none of this lines up with my experience with microservices and monoliths at all but maybe thats because my whole thing is being rigorous about interfaces between services and not letting anyone "just hit <other service>'s database for one quick thing" or whatever

we don't have this but we do have services that call each other's http/grpc endpoints and if one service goes down both services go down

(we kinda do have this because we of course still have a "legacy" db that's the real source of truth for many things and the migration from monolith to microservices project gave up long before it was ever able to burn down our monolith http api, let alone the database under it, but alas)

FlapYoJacks
Feb 12, 2009
My current project is a monolithic application that runs on an STM32G processor as a single .bin.
You weak-rear end programmers with "virtual memory" probably think concatenating a string is just "string" + "string." :colbert:

Shaggar
Apr 26, 2006
if your data matters then you will always need the one source of truth and its really impossible to turn that into a microservice beyond assinine things like "oh we put the Person endpoint in one service and the Address endpoint in another service"

CPColin
Sep 9, 2003

Big ol' smile.

Shaggar posted:

or if they're actually, secretly, very simple monoliths in disguise

What is a microservice if not a monolith persevering?

Powerful Two-Hander
Mar 10, 2004

Mods please change my name to "Tooter Skeleton" TIA.


Shaggar posted:

if your data matters then you will always need the one source of truth and its really impossible to turn that into a microservice beyond assinine things like "oh we put the Person endpoint in one service and the Address endpoint in another service"

shaggar is right

Shaggar
Apr 26, 2006

CPColin posted:

What is a microservice if not a monolith persevering?

my application is 3 microservices in a trenchcoat

Powerful Two-Hander
Mar 10, 2004

Mods please change my name to "Tooter Skeleton" TIA.


if your microservices don't take a team of 5 people constantly janitoring kubernetes then you actually just have a sparkling monolith

Poopernickel
Oct 28, 2005

electricity bad
Fun Shoe

FlapYoJacks posted:

My current project is a monolithic application that runs on an STM32G processor as a single .bin.
You weak-rear end programmers with "virtual memory" probably think concatenating a string is just "string" + "string." :colbert:

Kind of jealous tbh

I miss working on microcontrollers. I'd do it full-time in a heartbeat if the pay was better.

Poopernickel fucked around with this message at 18:44 on Apr 20, 2023

FlapYoJacks
Feb 12, 2009

Poopernickel posted:

Kind of jealous tbh

I miss working on microcontrollers. I'd do it full-time in a heartbeat if the pay was better.

It's a really nice change of pace, tbh. The biggest pain point is the customer, not the programming. :v:

12 rats tied together
Sep 7, 2006

Shaggar posted:

if your data matters then you will always need the one source of truth and its really impossible to turn that into a microservice beyond assinine things like "oh we put the Person endpoint in one service and the Address endpoint in another service"

it doesn't make sense to have "the person endpoint service" that exists to serve requests for Persons. we had a name for that architectural concept already, a thing that stores and serves requests for data, was called a database

the service is supposed to be the behavior. the periodic emailer service, it doesn't encapsulate a database, it might read from many databases, and probably some caches too, so that it doesn't accidentally double email, or so that you can appropriately include advertising tracking info in it or whatever

the "autonomous" aspect of services is simple as long as you follow the 1 simple rule that they aren't databases

Shaggar
Apr 26, 2006
when people talk about microservces they're talking about micro web services, not a background daemon type service such as a fulfillment processor.

12 rats tied together
Sep 7, 2006

yup. a micro web service just needs to run a process in a container scheduler or other type of operational junk drawer that performs some function

a microservice isnt, should not be, a postgres container with an express app in front of it. that's still a database, not a service

you could simply buy sql server licenses and hook up the built in iis http api thing and then you never would have needed node js or kubernetes developers

Shaggar
Apr 26, 2006
a service without access to data is a pretty pointless thing

Bloody
Mar 3, 2013

micro services are dynamic linking over http

sb hermit
Dec 13, 2016





mystes posted:

but you get to have a BFF :3:

tef
May 30, 2004

-> some l-system crap ->

Shaggar posted:

when people talk about microservces

they mean "someone on the team got to write a greenfield app"

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
it becomes a brownfield app pretty quickly when you have microservices pooping all over it

outhole surfer
Mar 18, 2003

Jabor posted:

it becomes a brownfield app pretty quickly when you have microservices pooping all over it

redleader
Aug 18, 2005

Engage according to operational parameters

FlapYoJacks posted:

My current project is a monolithic application that runs on an STM32G processor as a single .bin.
You weak-rear end programmers with "virtual memory" probably think concatenating a string is just "string" + "string." :colbert:

sorry about your deficient programming environment, op

redleader
Aug 18, 2005

Engage according to operational parameters

12 rats tied together posted:

you could simply buy sql server licenses and hook up the built in iis http api thing and then you never would have needed node js or kubernetes developers

bad news! they removed that

nowadays the way to do this is using postgrest

Powerful Two-Hander
Mar 10, 2004

Mods please change my name to "Tooter Skeleton" TIA.


12 rats tied together posted:


you could simply buy sql server licenses and hook up the built in iis http api thing and then you never would have needed node js or kubernetes developers

was that the one that let you POST arbitrary sql to the server or am I getting mixed up with one of our poo poo internal APIs that has "select%20from%20foo%20where" in the URL parameters

redleader
Aug 18, 2005

Engage according to operational parameters

Powerful Two-Hander posted:

was that the one that let you POST arbitrary sql to the server or am I getting mixed up with one of our poo poo internal APIs that has "select%20from%20foo%20where" in the URL parameters

i think you're confusing it with the ol' "sql query in a query string" design pattern that we've all seen in the wild

tef
May 30, 2004

-> some l-system crap ->

redleader posted:

bad news! they removed that

nowadays the way to do this is using postgrest

are developers that afraid of sql that they'll hook up a http/json standalone binary to the database to avoid touching sql?

MrMoo
Sep 14, 2000

yes

Share Bear
Apr 27, 2004

Adbot
ADBOT LOVES YOU

Shaggar
Apr 26, 2006

Powerful Two-Hander posted:

was that the one that let you POST arbitrary sql to the server or am I getting mixed up with one of our poo poo internal APIs that has "select%20from%20foo%20where" in the URL parameters

it let you generate a SOAP endpoint where the methods were mapped to stored procs.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply