Most annoying problem micro-services have introduced for projects I've worked on have been cpu time limits, de-duplication, getting new engineers to actually understand the big picture of the app without showing 8 repos and a flowchart that no one ever finishes properly because we're trying to push features. You can solve most of these problems today with frameworks like apigee mixed with proprietary or open source messaging buses such as gcp pub sub, rabbitmq. I think micro-services were bourne primarily out of scaling issues with multi billion user companies and then the adoption spread like a wildfire for a lot of developers. I have so much to say on this topic lol
100% right, vast majority of companies don't need microservices but lots of developers want to do what the big companies are doing. MIT has a distributed systems course where the professor himself says to do everything possible to avoid distributed systems for as long as possible.
Microservices are only used by big companies because they had no other choice, not because they thought it would be cool to make things complicated
Totally agreed, however I think there is a small caveat to this whole discussion. I definitely think that any compute should never live in the same instance as the database of the application, technically speaking that was really the birth of "serverless", because your instance would only spin up when the load balancing control plane would wake up the node and get the health statistics confirmation to send the payload. Adoption of kubernetes is pretty much universal at this point, mostly on the compute layer on modern enterprise applications. I dev with my friends all the time and whenever we're scaffolding a project out the microservice debate always comes up because if we do a good job we can run the small project all on free tier cloud tools. I'm thinking about writing a post on this, I've got a lot to say on it, I'll keep a lookout on your future articles, this was well done
Great summary here!
Most annoying problem micro-services have introduced for projects I've worked on have been cpu time limits, de-duplication, getting new engineers to actually understand the big picture of the app without showing 8 repos and a flowchart that no one ever finishes properly because we're trying to push features. You can solve most of these problems today with frameworks like apigee mixed with proprietary or open source messaging buses such as gcp pub sub, rabbitmq. I think micro-services were bourne primarily out of scaling issues with multi billion user companies and then the adoption spread like a wildfire for a lot of developers. I have so much to say on this topic lol
100% right, vast majority of companies don't need microservices but lots of developers want to do what the big companies are doing. MIT has a distributed systems course where the professor himself says to do everything possible to avoid distributed systems for as long as possible.
Microservices are only used by big companies because they had no other choice, not because they thought it would be cool to make things complicated
Totally agreed, however I think there is a small caveat to this whole discussion. I definitely think that any compute should never live in the same instance as the database of the application, technically speaking that was really the birth of "serverless", because your instance would only spin up when the load balancing control plane would wake up the node and get the health statistics confirmation to send the payload. Adoption of kubernetes is pretty much universal at this point, mostly on the compute layer on modern enterprise applications. I dev with my friends all the time and whenever we're scaffolding a project out the microservice debate always comes up because if we do a good job we can run the small project all on free tier cloud tools. I'm thinking about writing a post on this, I've got a lot to say on it, I'll keep a lookout on your future articles, this was well done
Please go ahead and share your lessons with us. Thanks in advance!
definitely write some articles about it, we don't get enough of that type of content on Dev imo. I think people would be interested!