Esse princípio no pilar de confiabilidade do Google Cloud Well-Architected Framework fornece recomendações para ajudar você a usar a escalonabilidade horizontal. Ao usar a escalonabilidade horizontal, você garante que suas cargas de trabalho noGoogle Cloud possam ser escalonadas de maneira eficiente e manter o desempenho.
Esse princípio é relevante para a área de foco de escopo da confiabilidade.
Visão geral do princípio
Migre a arquitetura do seu sistema para uma arquitetura horizontal. Para acomodar o crescimento do tráfego ou dos dados, adicione mais recursos. Você também pode remover recursos quando eles não estiverem em uso.
Para entender o valor do escalonamento horizontal, considere as limitações do escalonamento vertical.
Um cenário comum para o 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. Com o tempo, o banco de dados atinge o limite de memória na máquina host e precisa ser atualizado. Esse processo pode precisar ser repetido 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 fossem 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 em todo o sistema que afeta todos os usuários. Evite pontos únicos de falha, conforme descrito em Criar sistemas altamente disponíveis usando a redundância de recursos.
Além desses limites de escalonamento, o escalonamento vertical tende a ser mais caro. O custo pode aumentar exponencialmente à medida que máquinas com maior poder de computação e memória são adquiridas.
Por outro lado, o escalonamento horizontal pode custar menos. O potencial de escalonamento horizontal é praticamente ilimitado em um sistema projetado para escalonar.
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 o escalonamento 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 gerenciados de instâncias (MIGs) do Compute Engine, é possível adicionar ou remover VMs para escalonar seu aplicativo horizontalmente. Para aplicativos em contêineres, o Cloud Run é uma plataforma sem servidor que pode escalonar automaticamente seus contêineres sem estado com base no tráfego de entrada.
Promover o design modular
Componentes modulares e interfaces claras ajudam a escalonar componentes individuais conforme necessário, em vez de escalonar 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.