Este princípio no pilar de fiabilidade da Google Cloud estrutura bem arquitetada fornece recomendações para ajudar a usar a escalabilidade horizontal. Ao usar a escalabilidade horizontal, pode ajudar a garantir que as suas cargas de trabalho no Google Cloud podem ser dimensionadas de forma eficiente e manter o desempenho.
Este princípio é relevante para o âmbito área de foco da fiabilidade.
Vista geral do princípio
Reconfigure a arquitetura do seu sistema para uma arquitetura horizontal. Para acomodar o crescimento do tráfego ou dos dados, pode adicionar mais recursos. Também pode remover recursos quando não estiverem a ser usados.
Para compreender o valor do escalamento horizontal, considere as limitações do escalamento vertical.
Um cenário comum para o escalamento vertical é usar uma base de dados MySQL como a base de dados principal com dados críticos. À medida que a utilização da base de dados aumenta, é necessária mais RAM e CPU. Eventualmente, a base de dados atinge o limite de memória na máquina anfitriã e tem de ser atualizada. Este processo pode ter de ser repetido várias vezes. O problema é que existem limites máximos para o crescimento de uma base de dados. Os tamanhos das VMs não são ilimitados. A base de dados pode atingir um ponto em que já não é possível adicionar mais recursos.
Mesmo que os recursos fossem ilimitados, uma VM grande pode tornar-se um único ponto de falha. Qualquer problema com a VM da base de dados principal pode causar respostas de erro ou provocar uma indisponibilidade ao nível do sistema que afeta todos os utilizadores. Evite pontos únicos de falha, conforme descrito no artigo Crie sistemas de elevada disponibilidade através da redundância de recursos.
Além destes limites de escalabilidade, a escalabilidade vertical tende a ser mais cara. O custo pode aumentar exponencialmente à medida que são adquiridas máquinas com maiores quantidades de capacidade de computação e memória.
Por outro lado, o escalamento horizontal pode custar menos. O potencial de escalabilidade horizontal é praticamente ilimitado num sistema concebido para ser escalável.
Recomendações
Para fazer a transição de uma arquitetura de VM única para uma arquitetura horizontal de vários computadores, tem de planear cuidadosamente e usar as ferramentas certas. Para ajudar a alcançar o escalamento horizontal, considere as recomendações nas seguintes subsecções.
Use serviços geridos
Os serviços geridos eliminam a necessidade de gerir manualmente o escalamento horizontal. Por exemplo, com os grupos de instâncias geridas (GIGs) do Compute Engine, pode adicionar ou remover VMs para dimensionar a sua aplicação horizontalmente. Para aplicações em contentores, o Cloud Run é uma plataforma sem servidor que pode dimensionar automaticamente os seus contentores sem estado com base no tráfego recebido.
Promova o design modular
Os componentes modulares e as interfaces claras ajudam a dimensionar os componentes individuais conforme necessário, em vez de dimensionar toda a aplicação. Para mais informações, consulte o artigo Promova o design modular no pilar de otimização do desempenho.
Implemente um design sem estado
Conceba aplicações sem estado, o que significa que não têm dados armazenados localmente. Isto permite-lhe adicionar ou remover instâncias sem se preocupar com a consistência dos dados.