Successful Migration to Microservices: Why, When, and How