Microservices are frequently presented as the architectural style for huge applications developed by tens of teams on the scale of Netflix. Yet it can be a sound architectural principle regardless team size or application complexity. Those who wish to harness the power of microservices should however be aware of the demos that lurk on the other side. Requirements on test and production environments, self-healing, monitoring and the DevOps culture become tougher when your application is composed of independent services.
The good news is, an arsenal of Cloud Native technologies is quickly maturing to help tackle the demons of microservice architectures.