Aproveitar a escalonabilidade horizontal

Esse princípio do pilar de confiabilidade do Google Cloud framework bem arquitetado (em inglês) oferece recomendações para ajudar você a usar a escalonabilidade horizontal. Ao usar a escalonabilidade horizontal, você garante que as cargas de trabalho no Google Cloud sejam escalonadas de maneira eficiente e mantenha o desempenho.

Esse princípio é relevante para a área de foco da confiabilidade do escopo.

Visão geral do princípio

Rearquitetar seu sistema para uma arquitetura horizontal. Para acomodar o crescimento de tráfego ou dados, você pode adicionar 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 de escalonamento vertical é usar um banco de dados MySQL como o banco de dados primário 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 em relação ao tamanho do 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 recursos.

Mesmo que os recursos sejam ilimitados, uma VM grande pode se tornar um ponto único de falha. Qualquer problema com a VM primária do banco de dados pode causar respostas de erro ou causar 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 com redundância de recursos.

Além desses limites, o escalonamento vertical tende a ser mais caro. O custo pode aumentar exponencialmente à medida que máquinas com maiores quantidades de poder de computação e memória forem adquiridas.

O escalonamento horizontal, por outro lado, pode custar menos. O potencial para o escalonamento horizontal é praticamente ilimitado em um sistema projetado para escalonamento.

Recomendações

Para fazer a transição de uma arquitetura de VM única para uma arquitetura horizontal com várias máquinas, é preciso planejar cuidadosamente 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

Com os serviços gerenciados, não é necessário administrar o escalonamento horizontal manualmente. 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 conteinerizados, o Cloud Run é uma plataforma sem servidor que pode escalonar automaticamente seus contêineres sem estado com base no tráfego de entrada.

Promover design modular

Componentes modulares e interfaces claras ajudam você a escalonar componentes individuais conforme necessário, em vez de escalonar todo o aplicativo. Para mais informações, consulte Promover design modular no pilar de otimização de desempenho.

Implementar um design sem estado

Projete aplicativos para serem sem estado, ou seja, sem dados armazenados localmente. Isso permite adicionar ou remover instâncias sem se preocupar com a consistência dos dados.