Restrições de desempenho de uma aplicação monolítica
Existem muitas razões pelas quais pode optar por alterar a arquitetura de um sistema. A agilidade operacional, o custo, a escalabilidade e o desempenho são apenas alguns dos fatores que desempenham uma função na determinação da arquitetura de um sistema. No nosso exemplo, analisamos mais de perto como o desempenho se torna um fator para o sistema de entrega por drones.
À medida que o negócio de entrega de drones da Fabrikam cresce, a carga do sistema aumenta. A arquitetura atual está a ficar sobrecarregada com a carga. A Fabrikam pretende fornecer maior flexibilidade no dimensionamento da aplicação que não está disponível na atual arquitetura monolítica. A melhoria da escalabilidade da aplicação é um dos motivadores para que a Fabrikam considere a mudança da aplicação para uma arquitetura de microsserviços.
Dimensionamento de um monólito versus microsserviços
Um dos principais benefícios de uma arquitetura de microsserviços é o aumento das capacidades de dimensionamento. Como os serviços são separados, é mais fácil dimensionar cada serviço individualmente à medida que a carga aumenta entre eles.
Podemos ver esta diferença nos recursos do sistema de entrega por drone. Com uma arquitetura monolítica, todos os serviços estão contidos numa única instância da aplicação. Expõem uma interface API aos clientes para enviar e gerir pedidos de entrega. À medida que aumentam os pedidos de clientes, aumenta a carga no sistema. Mais recursos são necessários para serem alocados ao sistema para evitar afetar negativamente a experiência do usuário.
Numa arquitetura monolítica, o dimensionamento individual deste serviço também exige o dimensionamento dos recursos para os outros serviços, uma vez que estão contidos na instância de cada aplicação. Esse arranjo é ineficiente porque a carga para os outros serviços pode ser mínima e não exigir a utilização de recursos extras.
Numa arquitetura de microsserviços, como cada serviço é separado, podemos dimensionar a API independentemente dos outros serviços. Esta organização aumenta a eficiência porque não precisamos de consumir os recursos de serviços desnecessários.
Desafios com a arquitetura monolítica de Entrega por Drone
O serviço de pacote foi identificado como uma parte crítica do negócio e, originalmente, fazia parte do monólito. Os clientes estão aumentando drasticamente sua dependência dele, e o desempenho é afetado negativamente à medida que essa carga aumenta. Para resolver essa situação, a Fabrikam dedicou uma equipe de desenvolvimento com controle total sobre essa parte do negócio. A equipe planeja desenvolver e iterar este serviço e ser a única responsável por todos os aspetos do serviço de pacote.
Como o serviço de pacote está no monolítico, a equipa não pode trabalhar de forma autónoma. Tem de depender de dados partilhados e de estruturas de dados. Também não pode iterar tão rapidamente quanto precisa. Juntamente com os problemas de desempenho e escalabilidade, este serviço é identificado como um candidato principal para um microsserviço.
Vamos analisar mais de perto a forma como a Fabrikam pode analisar e decompor a aplicação para tirar proveito de uma arquitetura de microsserviços.