The main reasons for micro services (that I didn't see covered) is that it reduces cross team overhead. 10 people working on a service is fine, 100 people working on a service requires processes which slow development down (as no one can keep what is changing in their head)
> The real case for microservices is to support going fast in highly competitive markets. Microservices support functionally highly independent teams with an architecture style that provides them with complete independence from other teams all along the IT value chain.