A elasticidade da nuvem é a capacidade de um sistema de nuvem mudar automaticamente os recursos de computação para corresponder a uma carga de trabalho em mudança. Também conhecido como computação elástica, esse conceito é como um elástico: ele pode se esticar para lidar com mais trabalho e depois voltar ao normal quando o trabalho é concluído, o que significa que você não precisa adivinhar quanta capacidade vai precisar com antecedência. Em vez disso, o serviço de nuvem oferece automaticamente mais poder de processamento, memória ou armazenamento quando há um pico de tráfego e depois reduz a escala quando as coisas estão lentas. Isso pode ajudar as empresas a economizar dinheiro, porque elas só pagam pelos recursos que usam.
A elasticidade da nuvem é um dos principais benefícios da computação em nuvem que permite que a infraestrutura em nuvem de uma empresa aumente ou diminua os recursos automaticamente com base na demanda. O significado principal da elasticidade da nuvem é a adaptação a mudanças imprevisíveis na carga de trabalho sem ajuda humana.
Por exemplo, um site de e-commerce pode ter um aumento enorme no tráfego em uma data comemorativa como a Black Friday. Com a computação elástica, o site recebe automaticamente mais servidores para lidar com o pico de tráfego, garantindo que os clientes tenham uma experiência de compra tranquila. Depois que a data comemorativa acaba, o sistema reduz os recursos para os níveis normais.
Há duas maneiras principais de um sistema usar a elasticidade: horizontal e vertical.
Isso também é chamado de escalonamento horizontal ou vertical. Isso envolve a adição ou remoção de mais máquinas ou instâncias ao seu sistema. Quando você precisa de mais capacidade, adiciona mais servidores. Quando você precisa de menos, você se livra deles. Isso é usado com frequência para aplicativos que podem ser divididos e executados em vários servidores ao mesmo tempo.
Isso também é chamado de escalonamento vertical ou horizontal. Isso envolve aumentar ou diminuir os recursos de uma única máquina. Por exemplo, se você precisar de mais capacidade para um servidor específico, vai dar mais CPU, memória ou armazenamento a ele. Quando terminar, você poderá reduzir esses recursos.
Embora os termos elasticidade e escalonabilidade sejam usados juntos com frequência, eles descrevem coisas diferentes.
Pense assim: a escalonabilidade é como se preparar para uma grande maratona treinando por meses. A elasticidade é como um corredor que pode acelerar ou diminuir o ritmo instantaneamente durante a corrida para acompanhar os outros corredores.
A computação elástica oferece muitas vantagens em potencial para empresas e desenvolvedores.
Economia
A computação elástica pode ajudar você a economizar dinheiro, porque você só paga pelos recursos que usa. Quando a demanda é baixa, você não precisa manter servidores extras em execução, o que reduz os gastos desnecessários. Você também evita comprar hardware caro para lidar com picos de tráfego que só acontecem algumas vezes por ano.
Alta disponibilidade e confiabilidade
Ao ajustar os recursos automaticamente, a computação elástica pode ajudar a garantir que seu aplicativo permaneça disponível e responsivo mesmo durante picos inesperados de tráfego. Isso pode evitar lentidão ou falhas que frustrem os usuários ou prejudiquem a reputação da sua empresa.
Desempenho aprimorado
O sistema adiciona recursos automaticamente quando necessário, o que ajuda a manter tempos de resposta rápidos e uma experiência do usuário tranquila. Isso é especialmente importante para aplicativos com cargas de trabalho imprevisíveis, como jogos on-line, serviços de streaming ou e-commerce.
Gerenciamento simplificado
Como o processo de escalonamento é automatizado, os desenvolvedores e as equipes de TI não precisam monitorar e ajustar os recursos manualmente. Isso libera tempo e esforço que podem ser dedicados a outras tarefas importantes, como desenvolver novos recursos ou melhorar a experiência do usuário.
Para desenvolvedores em um ambiente corporativo, a computação elástica não é apenas um recurso, mas uma estratégia importante que pode ajudar a criar aplicativos resilientes, econômicos e com bom desempenho. É sobre projetar sistemas que podem se adaptar de forma inteligente a cargas de trabalho imprevisíveis, evitando o provisionamento excessivo e o provisionamento insuficiente. Isso é especialmente importante para aplicativos essenciais que precisam estar disponíveis 24 horas por dia, 7 dias por semana, como plataformas de e-commerce, serviços financeiros ou pipelines de processamento de dados.
A elasticidade da nuvem é o princípio básico por trás da operação dos grupos gerenciados de instâncias (MIGs) do Compute Engine. Em vez de provisionar VMs manualmente para lidar com o tráfego, você pode projetar um sistema que se adapte automaticamente às mudanças na demanda. Um MIG é um grupo de VMs idênticas que você pode gerenciar como uma única entidade. Ele é a principal ferramenta para criar um sistema elástico no Compute Engine. O MIG usa um escalonador automático para adicionar ou remover VMs do grupo com base em métricas predefinidas, o que permite alcançar a elasticidade.
Veja como um desenvolvedor corporativo pode aplicar esses conceitos na prática para criar um sistema escalonável:
Criar um plano de VM: um modelo de instância | Antes de criar um sistema elástico, você precisa de um modelo de instância. Esse modelo serve como uma única fonte de verdade para a configuração de VM do seu aplicativo, incluindo o tipo de máquina, o disco de inicialização e todos os scripts de inicialização necessários. Isso garante que cada nova VM seja uma réplica exata da última, o que promove a consistência e simplifica os lançamentos. |
Configurar o grupo gerenciado de instâncias | Acesse a página "Grupos de instâncias" no console do Google Cloud e crie um novo grupo gerenciado de instâncias. Selecione o modelo de instância que você criou, defina um número mínimo e máximo de instâncias e escolha as zonas para o grupo a fim de garantir a redundância e a alta disponibilidade. |
Implementar regras de escalonamento automático | Essa é a base da elasticidade da nuvem. Em vez de um escalonamento simples baseado na CPU, os desenvolvedores corporativos podem implementar regras avançadas de escalonamento automático com base nas métricas do Cloud Monitoring (como o tamanho da fila de um serviço de worker de back-end) ou usar o escalonamento automático preditivo, que usa dados históricos para ativar novas VMs antes de um pico de tráfego esperado. |
Adicionar um balanceador de carga | Para qualquer aplicativo voltado ao público, um balanceador de carga é essencial para distribuir o tráfego de usuários recebido em todas as VMs do grupo gerenciado de instâncias, o que garante que nenhuma VM fique sobrecarregada e que o aplicativo permaneça altamente disponível. |
Criar um plano de VM: um modelo de instância
Antes de criar um sistema elástico, você precisa de um modelo de instância. Esse modelo serve como uma única fonte de verdade para a configuração de VM do seu aplicativo, incluindo o tipo de máquina, o disco de inicialização e todos os scripts de inicialização necessários. Isso garante que cada nova VM seja uma réplica exata da última, o que promove a consistência e simplifica os lançamentos.
Configurar o grupo gerenciado de instâncias
Acesse a página "Grupos de instâncias" no console do Google Cloud e crie um novo grupo gerenciado de instâncias. Selecione o modelo de instância que você criou, defina um número mínimo e máximo de instâncias e escolha as zonas para o grupo a fim de garantir a redundância e a alta disponibilidade.
Implementar regras de escalonamento automático
Essa é a base da elasticidade da nuvem. Em vez de um escalonamento simples baseado na CPU, os desenvolvedores corporativos podem implementar regras avançadas de escalonamento automático com base nas métricas do Cloud Monitoring (como o tamanho da fila de um serviço de worker de back-end) ou usar o escalonamento automático preditivo, que usa dados históricos para ativar novas VMs antes de um pico de tráfego esperado.
Adicionar um balanceador de carga
Para qualquer aplicativo voltado ao público, um balanceador de carga é essencial para distribuir o tráfego de usuários recebido em todas as VMs do grupo gerenciado de instâncias, o que garante que nenhuma VM fique sobrecarregada e que o aplicativo permaneça altamente disponível.
Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.