Microservices Gone Wild – Tech Dive Part 4

In this last post of my four-part series on microservices, I’ll look at some of the positive aspects of microservices, and how much simpler they can potentially make things once you overcome the up-front effort required to make them work.
Scalability
When a monolithic app needs to scale, how can that be achieved? Well, for example:
- More RAM (if the app is memory-bound)
- More or Faster CPUs (if the app is CPU-bound)
- More instances of the app (front with a load balancer)
These are all effective ways to scale the application. What if one function within the application could really use a performance boost, even though the others are working just fine? Using a load balancer to distribute work requests can mean that scaling up the ability for a single module to process concurrent requests can be as simple as spinning up a few more containers and sharing the load:

There’s some effort required to allow the main program to issue concurrent calls, but the benefits can be worthwhile. Plus, of course, each of our microservices may be called by other programs, or may call each other as necessary, so there may be more than just one source of activity. Continue reading
