Restrições de desempenho de um aplicativo monolítico
Há muitas razões pelas quais você 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 ao definir a arquitetura de um sistema. Em nosso exemplo, analisamos mais de perto como o desempenho se torna um fator para o sistema de entrega por drone.
À medida que os negócios de entrega por drone da Fabrikam crescem, a carga do sistema aumenta. A arquitetura atual está sobrecarregada. A Fabrikam deseja fornecer uma maior flexibilidade no dimensionamento do aplicativo, que não está disponível na arquitetura monolítica atual. Melhorar a escalabilidade do aplicativo é um dos motivos da Fabrikam para considerar migrá-lo para uma arquitetura de microsserviços.
Dimensionamento de um monólito vs. microsserviços
Um dos principais benefícios para uma arquitetura de microsserviços são os recursos de dimensionamento maiores. Como os serviços são separados, é mais fácil dimensionar cada serviço individualmente à medida que a carga aumenta entre eles.
Podemos ver essa diferença nos recursos do sistema de entrega por drone. Com uma arquitetura monolítica, todos os serviços estão contidos em uma única instância do aplicativo. Eles expõem uma interface de API aos clientes para enviar e gerenciar solicitações de entrega. À medida que as solicitações de clientes aumentam, a carga sobre o sistema aumenta. Mais recursos devem ser alocados para o sistema para evitar afetar negativamente a experiência do usuário.
Em uma arquitetura monolítica, o dimensionamento individual desse serviço também exige dimensionar os recursos para os outros serviços, pois eles estão contidos em cada instância do aplicativo. Esse arranjo é ineficiente porque a carga dos outros serviços pode ser mínima e não exigir a utilização de recursos extras.
Em uma arquitetura de microsserviços, já que cada serviço é separado, é possível dimensionar a API independentemente dos outros serviços. Esse esquema aumenta a eficiência, pois não é preciso consumir os recursos de serviços desnecessários.
Desafios da arquitetura monolítica da Entrega por Drone
O serviço de pacotes foi identificado como uma parte crítica do negócio e fazia parte do monolito originalmente. 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 esse serviço e ser a única responsável por todos os aspectos do serviço de pacote.
Já que o serviço de pacotes está na arquitetura monolítica, a equipe não pode operar de forma autônoma. Eles precisam contar com dados compartilhados e estruturas de dados. Eles também não podem iterar tão rapidamente quanto precisam. Junto com os problemas de desempenho e escalabilidade, o serviço foi identificado como um grande candidato para um microsserviço.
Vamos examinar melhor como a Fabrikam pode analisar e decompor o aplicativo para aproveitar uma arquitetura de microsserviços.