We did not rebuild otto.de from scratch because we wanted a microservice architecture. We had to rebuild otto.de, because the old monolithic shop was not meeting non-functional (and a single functional) requirements anymore. And we had to rebuild it, because the old shop was based on a standard product, so we were unable to simply refactor it.
When we started the development, we were looking for an architecture that is meeting our requirements - and we did not chose microservices in the beginning, but self-contained systems (
http://scs-architecture.org,
https://en.wikipedia.org/wiki/Self-contained_Systems). Microservices were introduced later, when the first SCS became too large again.
I think, you should not use microservices, because they are interesting. You should use microservices, when you have problems that are addressed by this architectural style.
I totally agree, that microservice architectures (just like any other kind of distributed system) have a lot of challenges. It is hard to solve the problems, that you mentioned. My article was about the good parts - but I could very well imagine to write a follow-up about all the challenges :-)
--Guido