Este princípio no pilar de otimização do desempenho da Google Cloud estrutura bem arquitetada oferece recomendações para ajudar a promover um design modular. Os componentes modulares e as interfaces claras podem permitir um dimensionamento flexível, atualizações independentes e a separação de componentes no futuro.
Vista geral do princípio
Compreender as dependências entre os componentes da aplicação e os componentes do sistema para criar um sistema escalável.
O design modular permite flexibilidade e resiliência, independentemente de ter sido implementada inicialmente uma arquitetura monolítica ou de microserviços. Ao decompor o sistema em módulos bem definidos e independentes com interfaces claras, pode dimensionar componentes individuais para satisfazer exigências específicas.
O dimensionamento segmentado pode ajudar a otimizar a utilização de recursos e reduzir os custos das seguintes formas:
- Aprovisiona apenas os recursos necessários a cada componente e afeta menos recursos a componentes menos exigentes.
- Adiciona mais recursos durante períodos de tráfego elevado para manter a experiência do utilizador.
- Remove recursos pouco usados sem comprometer o desempenho.
A modularidade também melhora a capacidade de manutenção. As unidades mais pequenas e autónomas são mais fáceis de compreender, depurar e atualizar, o que pode levar a ciclos de desenvolvimento mais rápidos e a um risco reduzido.
Embora a modularidade ofereça vantagens significativas, tem de avaliar as potenciais compromissos de desempenho. O aumento da comunicação entre os módulos pode introduzir latência e sobrecarga. Procure um equilíbrio entre a modularidade e o desempenho. Um design altamente modular pode não ser universalmente adequado. Quando o desempenho é fundamental, uma abordagem mais estreitamente associada pode ser adequada. O design do sistema é um processo iterativo no qual revê e refina continuamente o seu design modular.
Recomendações
Para promover designs modulares, considere as recomendações nas secções seguintes.
Crie a pensar no acoplamento fraco
Crie uma arquitetura com acoplamento fraco. Os componentes independentes com o mínimo de dependências podem ajudar a criar aplicações escaláveis e resilientes. Ao planear os limites dos seus serviços, tem de considerar os requisitos de disponibilidade e escalabilidade. Por exemplo, se um componente tiver requisitos diferentes dos outros componentes, pode conceber o componente como um serviço autónomo. Implemente um plano para falhas elegantes para subprocessos menos importantes ou serviços que não afetam o tempo de resposta dos serviços principais.
Crie em função da simultaneidade e do paralelismo
Conceba a sua aplicação para suportar várias tarefas em simultâneo, como o processamento de vários pedidos de utilizadores ou a execução de tarefas em segundo plano enquanto os utilizadores interagem com o seu sistema. Dividir tarefas grandes em partes mais pequenas que podem ser processadas ao mesmo tempo por várias instâncias de serviço. A simultaneidade de tarefas permite-lhe usar funcionalidades como o dimensionamento automático para aumentar a atribuição de recursos em produtos como os seguintes:
Equilibre a modularidade para uma atribuição de recursos flexível
Sempre que possível, certifique-se de que cada componente usa apenas os recursos necessários (como memória, armazenamento e capacidade de processamento) para operações específicas. A atribuição excessiva de recursos pode resultar em custos desnecessários, enquanto a atribuição insuficiente de recursos pode comprometer o desempenho.
Use interfaces bem definidas
Certifique-se de que os componentes modulares comunicam eficazmente através de interfaces claras e padronizadas (como APIs e filas de mensagens) para reduzir a sobrecarga das camadas de tradução ou do tráfego estranho.
Use modelos sem estado
Um modelo sem estado pode ajudar a garantir que consegue processar cada pedido ou interação com o serviço independentemente dos pedidos anteriores. Este modelo facilita a escalabilidade e a capacidade de recuperação, porque pode aumentar, diminuir ou reiniciar o serviço sem perder os dados necessários para pedidos ou processos em curso.
Escolha tecnologias complementares
Escolha tecnologias que complementem o design modular. Avalie as linguagens de programação, as estruturas e as bases de dados quanto ao respetivo suporte de modularidade.
Para obter mais informações, consulte os seguintes recursos: