Avançar para o conteúdo principal
BlogueFerramentas para programadoresPortabilidade na nuvem: Arquitectura de microsserviços

Portabilidade na nuvem: Arquitectura de microsserviços

Portabilidade na nuvem: Arquitectura de microsserviços

Os microsserviços devem ser escaláveis e centrados numa única responsabilidade. Cada unidade modular autónoma lida com uma função específica dentro de um sistema maior. Uma grande aplicação é construída a partir de componentes modulares ou serviços como contentores ou computação sem servidor. 

Pense num microserviço como uma empresa que inclui diferentes departamentos, orçamentos e requisitos. Todos os anos, estes requisitos mudam consoante as necessidades da empresa. A sua aplicação também não terá o mesmo nível de exigência ao longo do tempo. Poderá haver alguns aspectos que exijam mais procura e outros aos quais terá de prestar mais atenção. Também terá de haver diferentes níveis de escalonamento na sua aplicação. Os microsserviços permitem-lhe escalar e crescer em diferentes áreas sem afectar outras. E eles escalam de forma independente.

Todos nos lembramos do princípio da responsabilidade única da programação. Os microsserviços não são diferentes. Eles devem fazer uma coisa e fazer uma coisa bem feita. Também se obtém o benefício inerente de uma melhor resiliência e tolerância a falhas. A arquitetura de microsserviços tem como objetivo evitar falhas em todo o sistema, oscilando as falhas para serviços individuais. Se houver uma falha específica, sabemos onde ela está e podemos resolvê-la sem afetar mais nada.

Há também um aspecto de descoberta. Ao utilizar uma solução de rede de serviços como o Consul da HashiCorp, saberá quando novos serviços estiverem online e terá um sistema centralizado que se torna um directório de serviços que define o que esses serviços fazem e como comunicar com eles.

Porque é que deve considerar os microsserviços

  • Tempo de colocação no mercado mais rápido: Os microsserviços permitem o desenvolvimento e a implantação paralelos de componentes individuais, acelerando o processo geral de desenvolvimento e reduzindo o tempo necessário para fornecer novos recursos.
  • Escalabilidade melhorada: Os microsserviços podem ser escalados de forma independente, permitindo que as empresas atribuam recursos de forma mais eficiente e lidem com cargas de trabalho ou padrões de tráfego variáveis de forma mais eficaz.
  • Resiliência melhorada: A natureza descentralizada dos microsserviços reduz o risco de falhas em todo o sistema, garantindo a disponibilidade contínua do serviço e uma melhor fiabilidade geral do sistema.
  • Flexibilidade e adaptabilidade: Os microsserviços permitem às empresas tirar partido de diversas tecnologias e estruturas para diferentes componentes, facilitando a adaptação a requisitos em mudança ou a incorporação de novas tecnologias.
  • Manutenção e actualizações mais fáceis: A concepção modular dos microsserviços simplifica a manutenção e as actualizações do sistema, uma vez que os componentes individuais podem ser actualizados ou substituídos sem afectar todo o sistema.

Práticas recomendadas de microsserviços

É essencial manter os microsserviços pequenos, concentrados e responsáveis por uma única capacidade comercial. Esta abordagem permite-lhe acrescentar funcionalidades adicionais e evitar a dispersão. No entanto, não existe uma regra fixa relativamente à dimensão ideal, uma vez que esta varia consoante a aplicação específica e os seus requisitos.

Também é preciso ter certeza de que o projeto está preparado para falhas. Embora a tolerância a falhas seja inerente à execução de vários serviços e microsserviços por design, ela adiciona resiliência adicional, como mecanismos de repetição, disjuntores e anteparos. Pense no motivo pelo qual os navios têm anteparas. Eles têm-nas para a integridade estrutural, mas também as têm se houver um problema, a antepara é fechada e o navio não se afunda. Muitas arquiteturas baseadas em eventos usam o que é chamado de filas de letras mortas. Se uma mensagem não puder ser entregue, ela vai para uma fila específica onde pode ser inspecionada para determinar o motivo da falha. 

Os microsserviços devem ser concebidos com base em princípios de concepção orientados para o domínio, o que significa modelar os serviços com base nas capacidades empresariais e utilizar uma linguagem comum para garantir que os serviços estão alinhados com as necessidades empresariais. A concepção orientada para o domínio centra-se na criação de sistemas de software com base numa compreensão profunda do domínio empresarial. Os seus princípios ajudam a orientar o processo de concepção e a garantir que o software se alinha com o domínio e fornece valor à empresa. Estes princípios promovem colectivamente uma compreensão profunda do domínio empresarial e ajudam a garantir que o desenvolvimento se mantém estreitamente alinhado com as necessidades empresariais e os requisitos em mudança.

Conceber com uma abordagem API-e implementar API gateways, que fornecem pontos de conexão centrais para facilitar a comunicação entre microsserviços e subsistemas de terceiros. API Os gateways lidam com grande parte do roteamento, cuidando da autorização, autenticação e limitação de taxa. Um padrão de design de APIs é essencial para a modularidade e a reutilização de microsserviços. 

Aqui estão algumas práticas recomendadas adicionais de microsserviços:

  • Automatizar o teste e a implantação: Teste e implante microsserviços usando ferramentas de automação, como pipelines de integração contínua e implantação contínua(CI/CD), que reduzem o risco de erros, garantindo que os serviços sejam implantados de forma rápida e consistente.
  • Use a conteinerização: A conteinerização fornece uma maneira leve e portátil de empacotar e implantar microsserviços. O uso da conteinerização pode ajudar a simplificar o processo de implantação e melhorar a escalabilidade e a portabilidade do aplicativo.
  • Monitorizar e observar: Os microsserviços devem ser monitorizados e registados para garantir que funcionam como esperado e identificar quaisquer problemas ou erros. Os agregadores de registos e as ferramentas de monitorização do desempenho das aplicações (APM) podem fazer isso. O rastreio fornece informações sobre o fluxo de dados através de um sistema distribuído. Estes três pilares ajudam a fornecer visibilidade de ponta a ponta sobre o desempenho.
  • Serviços seguros: Os microsserviços devem ser protegidos usando as práticas recomendadas, como autenticação, autorização e criptografia - e não se esqueça da segurança do contêiner! As políticas devem impor quais microsserviços podem conversar com outros para reduzir a superfície geral de ataque. A segurança deve fazer parte de qualquer projeto e ser verificada em todas as fases do desenvolvimento, resultando em um aplicativo muito mais seguro e protegendo dados confidenciais. 

Comentários

Deixe uma resposta

O seu endereço de correio electrónico não será publicado. Os campos obrigatórios estão marcados com *