Microsserviço 13
Quando precisamos escalar um sistema, normalmente fazemos isso por dois motivos:
Quando precisamos escalar um sistema, normalmente fazemos isso por dois motivos:
À medida que sistemas se tornam cada vez mais presentes na vida de nossos usuários, precisamos melhorar continuamente a qualidade dos serviços que oferecemos, já que a falha em um sistema pode ter um impacto significativo na vida das pessoas.
No mundo moderno de desenvolvimento de software, é essencial possuir um conhecimento abrangente sobre segurança para que medidas protetivas sejam integradas desde o início do processo.
Dividir os nossos sistemas em microsserviços menores e mais especializados traz diversas vantagens. Entretanto, surgem também novas fontes de complexidade, principalmente no que tange ao comportamento dos sistemas em ambiente de produção.
O mundo dos testes avançou significativamente nos últimos anos, mas testar funcionalidades em nosso código de modo eficaz e eficiente continua sendo um desafio em sistemas distribuídos.
Quando estamos iniciando o uso de microsserviços, temos inicialmente a visão lógica da arquitetura e, posteriormente, passamos para a visão física. A visão lógica abstrai muitos aspectos da visão física, ocultando uma série de complexidades que se tornam evidentes quando a arquitetura é executada em uma infraestrutura real.
Ao iniciar o uso de microsserviços, precisamos rever o processo de desenvolvimento para acomodar esse novo estilo de arquitetura.
Trabalhando com microsserviços, utilizar vários deles colaborando entre si para implementar um processo de negócio é natural. Comunicação com banco de dados, acesso à rede e filesystem, tudo isso está contido no contexto dos microsserviços.
Na comunicação entre microsserviços, temos diversas opções de tecnologias para uso. A escolha da tecnologia adequada deve considerar o contexto e o que esperamos que ela entregue.
Falando sobre comunicação, chamadas entre diferentes sistemas pela rede e chamadas dentro de um único processo são totalmente diferentes. É relativamente fácil pensar em alterar a chamada que um objeto faz a outro objeto para uma chamada que um serviço faz para outro serviço. A questão é que essa mudança traz consigo muitos desafios.