Scaling
Everyone is talking about scaling; all the cloud providers are selling auto-scaling and near-unlimited scaling capabilities, but what does that mean, microservices-wise?
Let’s go back to our IoT example from Chapter 16, Introduction to Microservices Architecture. Let’s say that there are so many devices sending real-time information about their location that the server needs more power to run the Location microservice. What we can do here is put more power into the server (CPU and RAM), which is called vertical scaling. Then, at some point, when a single server is not enough, we can add more servers, which is called horizontal scaling. However, more servers means multiple instances of the application running on all of those servers. Using containers and an orchestrator such as Kubernetes makes it possible to create containers when the demand gets high enough, then remove them when it goes back to normal. Moreover, we can run a minimum number of instances...