Esse princípio no pilar de confiabilidade do Google Cloud Framework de arquitetura fornece recomendações para ajudar você a usar a escalabilidade horizontal. Ao usar a escalonabilidade horizontal, você pode ajudar a garantir que suas cargas de trabalho no Google Cloud possam ser escalonadas de forma eficiente e manter o desempenho.
Esse princípio é relevante para a área de foco de escopo da confiabilidade.
Visão geral do princípio
Refazer a arquitetura do sistema para uma arquitetura horizontal. Para acomodar o crescimento do tráfego ou dos dados, adicione mais recursos. Também é possível remover recursos quando eles não estão em uso.
Para entender o valor da escala horizontal, considere as limitações da escala vertical.
Um cenário comum para escalonamento vertical é usar um banco de dados MySQL como o banco de dados principal com dados críticos. À medida que o uso do banco de dados aumenta, mais RAM e CPU são necessários. Eventualmente, o banco de dados atinge o limite de memória na máquina host e precisa ser atualizado. Talvez seja necessário repetir esse processo várias vezes. O problema é que há limites rígidos para o crescimento de um banco de dados. Os tamanhos de VM não são ilimitados. O banco de dados pode chegar a um ponto em que não é mais possível adicionar mais recursos.
Mesmo que os recursos sejam ilimitados, uma VM grande pode se tornar um ponto único de falha. Qualquer problema com a VM do banco de dados principal pode causar respostas de erro ou uma interrupção no sistema que afeta todos os usuários. Evite pontos únicos de falha, conforme descrito em Criar sistemas altamente disponíveis com recursos redundantes.
Além desses limites, o escalonamento vertical tende a ser mais caro. O custo pode aumentar exponencialmente à medida que máquinas com maior capacidade de computação e memória são adquiridas.
O escalonamento horizontal, por outro lado, pode custar menos. O potencial de escalonamento horizontal é praticamente ilimitado em um sistema projetado para isso.
Recomendações
Para fazer a transição de uma arquitetura de VM única para uma arquitetura horizontal de várias máquinas, é necessário planejar com cuidado e usar as ferramentas certas. Para ajudar você a alcançar a escala horizontal, considere as recomendações nas subseções a seguir.
Usar serviços gerenciados
Os serviços gerenciados eliminam a necessidade de gerenciar manualmente o escalonamento horizontal. Por exemplo, com os grupos de instâncias gerenciadas (MIGs, na sigla em inglês) do Compute Engine, é possível adicionar ou remover VMs para dimensionar o aplicativo horizontalmente. Para aplicativos em contêineres, o Cloud Run é uma plataforma sem servidor que pode escalonar automaticamente os contêineres sem estado com base no tráfego recebido.
Promover o design modular
Componentes modulares e interfaces claras ajudam a dimensionar componentes individuais conforme necessário, em vez de dimensionar todo o aplicativo. Para mais informações, consulte Promover o design modular no pilar de otimização de desempenho.
Implementar um design sem estado
Projete aplicativos sem estado, ou seja, sem dados armazenados localmente. Isso permite adicionar ou remover instâncias sem se preocupar com a consistência dos dados.