I’ve been planning some of my personal projects lately and this subject kind of caught my mind. I’ve seen so much hype about microservices, that I need to put my thoughts into perspective… I know that microservices is a very valid architectural model and perhaps an inevitable stage of cloud software development once it scales…
Just out of interest … how comfortable are you with micro-services? I have used them “from the beginning” and to start it was just to see what the new thing was but eventually I ended up using it for everything (including small pet projects). I would agree there is a learning curve (there is to everything new) but in comparison to something like Kubernetes it’s a breeze. The main thing I think people don’t get right with Microservices is
- Good reuse patterns by choosing an appropriate granularity
- Logging across function boundaries
What do you see as being the costs? In general I would say I find the micro-services architecture much better for the “little guy” than the big company but maybe we’re both right.
One person implementing microservices from the beginning, for a small pet project is certainly not the scenario I had in mind. When you implement microservices you move the complexity up to the architecture and infrastructure. Some of the complexity can be distributed to the developers with a good DevOps strategy, but at the end of the day you need great people managing all of that. Depending on the application, let’s say, an ERP solution with 3m LOC, and 70 microservices is too much for a single team to handle, and there I guess we agree that granularity is very important, perhaps at this point this hypothetical application should already have the resources to have other teams… all I am saying in this article is that the monolith should be the starting point if you want efficiency, on startups for example, efficiency most often is not the goal, and that is why most fail… I might be wrong, but I enjoy the discussion. Thanks for the comment.