Em termos de arquitetura e design de software, como os microsserviços "se comparam" (trocadilhos) com o middleware? Eu sou proveniente de Java e parece que à medida que você se afasta do REST direto como uma API e abstrai diferentes camadas e parâmetros de conexão, pelo menos em Java, você quase volta a algumas ideias da velha escola . Voltamos à virtualização ... onde a JVM já é virtual.
De uma maneira agnóstica, você pode, e eu argumentaria as vantagens de, abstrair uma API RESTful para CORBA. Ou, de uma maneira mais centrada em java, JMS ou MDB.
Ao mesmo tempo, o EJB era um grande negócio em Java, depois foi reconhecido como um efeito de cluster, mas, agora, estamos de volta ao começo?
Ou os microsserviços oferecem algo que falta ao CORBA, ou melhor ainda, ao MDB? Quando eu leio (TLDR) Martin Fowler explicando microsserviços, isso me parece uma boa solução para um problema ruim, se você quiser. Ou melhor, uma abordagem de mente fechada, que introduz um nível de complexidade que apenas impulsiona o problema. Se os serviços realmente são micro e são numerosos, cada um tem um custo em dólares para executá-lo e mantê-lo.
Além disso, se um microsserviço entre muitos altera sua API, tudo depende desse serviço é interrompido. Não parece fracamente acoplado, parece o oposto de ágil. Ou estou usando mal essas palavras?
Obviamente, há uma quantidade indeterminada de opções entre esses extremos.
Tubarão contra gorila ... vai! (Para o pedante, isso deve ser irônico, e não é minha intenção. A pergunta deve ser feita pelo valor de face. Se a pergunta puder ser melhorada, faça-o ou comente e eu vou corrigir. )
Visualize uma infinidade de microsserviços executando no docker, todos em uma máquina, conversando entre si ... loucura. Difícil de manter ou administrar, e quase impossível mudar alguma coisa, porque qualquer alteração ocorrerá em cascata e causará erros imprevisíveis. De que maneira é melhor que esses serviços estejam espalhados por diferentes máquinas? E, se forem distribuídos, certamente algumas técnicas da escola muito, muito antiga resolveram, pelo menos até certo ponto, a computação distribuída.
Por que a escala horizontal é tão predominante ou pelo menos desejável?
giant blob
fazê-lo, pois o sistema operacional não pode ser criado , pois ele precisa ter interfaces, portanto, cada parte que começa no kernel é uma espécie de MS, e a primeira coisa antes qualquer equipe que começou a escrever o código concordou com as especificações v0.0.1.