Heroku balanceador de carga vs Netflix zuul

De acordo com esta respostahttps://stackoverflow.com/a/41811770/2849613 Gostaria de obter um pouco mais de informações sobre as melhores práticas com microsserviços no Heroku.

A questão é qual abordagem é melhor?

Instalar todos os serviços como aplicativo independente e usar um deles como "proxy" REST (por exemplo, Netflix Eureka)?

Ou

Criar abordagem baseada em janela de encaixe com, por exemplo, o Netflix Zuul como um balanceador de carga?

Por conta própria, já vejo alguns prós e contras de ambas as abordagens:

Prós: melhor escalabilidade (fácil de criar novas máquinas para maior carga).Contras: a comunicação entre serviços fica "fora do heroku" em outras palavras: como o aplicativo heroku tem um endereço público, todos podem se conectar diretamente ao serviço (sem ter jogado o Eureka), por isso todos os serviços precisam fornecer algum método de autenticação e compartilhá-lo entre si - Eu acho que isso é propenso a riscos.

Prós: fácil de reproduzir o ambiente de produção para testes e desenvolvimento (imagem do docker), a comunicação entre os serviços é feita "internamente" (imagem para imagem em vez de aplicativo para aplicativo).Contras: difícil de dimensionar (acho que o balanceamento de carga entre aplicativos Heroku e imagens do docker está um pouco sobrecarregado).

Qual abordagem é melhor? Talvez eu possa misturá-los juntos? Ou talvez haja alguma solução melhor e diferente?

Seja honesto, a única coisa que tenho certeza é que quero usar o rabbitMQ como uma fila de mensagens ...

questionAnswers(1)

yourAnswerToTheQuestion