In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.
Se você tem um desafio que não se refere a algum destes 4 itens, você não precisa de microsserviços. Você não precisa arcar com a complexidade que uma arquitetura de microsserviços traz.
O "micro" na definição de microsserviços é uma "pegadinha". Não acreditem nessa história de microsserviço só faz uma coisa. (...) Muito relacionado com o conceito de Domain Driven Design (Eric Evans).
Você pode usar tecnologias diversas, mas isso tem um custo. Não é barato você ter mão de obra com conhecimento tão diversificado, infraestrutura é um tópico complexo, e é difícil achar profissionais tão variados no mercado.
Definir uma meta de cobertura de código mínima.
Testes de navegação (ex.: PhantomJS).
Faça testes de carga com frequência (ex.: BlazeMeter, Load Testing do Azure).
Não tem como desenvolver microsserviços e abrir mão do monitoramento.
Transaction flow - fornecido pelo dynatrace.
Precisamos ter uma governançla muito bem definida.
Vocês irão precisar de um gateway. Não tem como fugir disso.
No entanto os benefícios em produtividade são bastante interessantes.