The What, Why, and How of a Microservices Architecture