Microservices in Practice (Part 1): Reality Check and Service Design