A escalabilidade e a elasticidade ajudam as organizações a obter maior flexibilidade e eficiência em sua infraestrutura de TI. No entanto, escalabilidade e a elasticidade têm diferenças distintas das quais as organizações devem estar cientes ao decidir qual abordagem adotar. Esta postagem do blog detalhará as diferenças entre os dois, fornecerá exemplos de uso e, por fim, discutirá como obter ambos na computação em nuvem.

O que é escalabilidade?

A escalabilidade refere-se à capacidade de um sistema de nuvem de ajustar os recursos para atender às demandas em constante mudança. Isso pode ser feito por meio de Aumentar a escala (escala vertical) ou diminuir a escala (escala horizontal). O dimensionamento vertical envolve a adição de recursos a uma máquina existente, como a atualização da CPU ou da RAM. O dimensionamento horizontal envolve a adição de máquinas adicionais (servidores) ao pool de recursos para lidar com a carga crescente.

MicrosserviçosO microsserviço, uma abordagem de desenvolvimento que divide o software em serviços pequenos e independentes, facilita o dimensionamento horizontal ao permitir que os serviços sejam replicados em vários servidores. Cada microsserviço pode ser dimensionado e balanceamento de carga separadamentee, assim, lidar com o aumento do tráfego e da carga de trabalho.

O que é elasticidade?

A elasticidade, por outro lado, refere-se à capacidade de um sistema de aumentar ou diminuir automaticamente em resposta às mudanças na demanda. É uma recurso de dimensionamento automático que garante que os recursos estejam sempre disponíveis quando necessário e sejam liberados automaticamente quando a demanda diminuir. Em contraste com a escalabilidade, a elasticidade é mais dinâmica e exige menos intervenção manual.

Uma loja de comércio eletrônico ou um marketplace on-line durante a temporada de férias é um exemplo de elasticidade em ação. Um site de grande porte deve ter uma infraestrutura elástica que se expanda automaticamente para lidar com o aumento do tráfego e das vendas sem interromper as operações. Quando a demanda diminui, a infraestrutura é automaticamente reduzida para reduzir os custos.

Comparação entre escalabilidade e elasticidade na computação em nuvem

Embora a escalabilidade e a elasticidade estejam intimamente relacionadas e sejam frequentemente usadas de forma intercambiável, elas se referem a conceitos diferentes na computação em nuvem. Vamos dar uma olhada nas principais diferenças abaixo.

Recurso Escalabilidade Elasticidade
Definição Capacidade de lidar com o aumento da carga de trabalho por meio da adição de recursos Capacidade de ajustar automaticamente os recursos com base na demanda
Abordagem Planejado e muitas vezes manual Automático e dinâmico
Período de tempo Normalmente de longo prazo (semanas a meses) Curto prazo (minutos a horas)
Utilização de recursos Adiciona recursos de forma permanente ou semipermanente Adiciona ou remove recursos rapidamente, conforme necessário, geralmente de forma temporária
Implicações de custo Maior devido à adição de recursos permanentes Custo-benefício devido ao modelo de pagamento conforme o uso

Exemplos de escalabilidade

    • Varejistas on-line: Um site de comércio eletrônico pode usar vários servidores durante as operações regulares. À medida que a base de usuários cresce, a plataforma adiciona mais servidores (escalonamento horizontal) ou atualiza os servidores existentes (escalonamento vertical) para manter o desempenho.
    • Centros de dados: As empresas geralmente atualizam seus data centers adicionando mais recursos de armazenamento, capacidade de processamento e rede para lidar com o aumento das cargas de dados.
    • Sharding de banco de dados: Com uma base de usuários maior, vem a complexidade de lidar com grandes quantidades de dados e metadados. Para resolver isso, os bancos de dados podem dividir seus esquemas de tabela, também conhecidos como fragmentose armazenam dados em locais físicos separados. Com isso, os bancos de dados podem lidar com mais consultas e transações simultaneamente.

Exemplos de elasticidade

    • Serviços de streaming: Plataformas como a Netflix ajustam seus recursos com base no número de espectadores ativos. Durante os horários de pico, eles aumentam os recursos; durante os horários fora de pico, eles diminuem a escala para economizar custos.
    • Varejistas on-line: Durante as vendas da Black Friday ou da Cyber Monday, os varejistas on-line usam a elasticidade da nuvem para lidar com o aumento repentino do tráfego e das transações, provisionando automaticamente mais servidores para atender à demanda.
    • Jogos on-line: Os jogos multijogador, como o Fortnite, aumentam a escala de seus servidores durante os horários de pico dos jogos ou em novos lançamentos para acomodar o fluxo de jogadores e, em seguida, diminuem a escala durante os horários de menor pico.

Como obter escalabilidade e elasticidade na computação em nuvem

    1. Provedores de nuvem: Serviços como AWS, Microsoft Azuree Google Cloud oferecem recursos integrados de escalabilidade e elasticidade, fornecendo ferramentas como grupos de escalonamento automático e serviços gerenciados que ajustam automaticamente os recursos.
    2. Balanceadores de carga: Distribua o tráfego de entrada entre vários servidores para garantir que nenhum servidor fique sobrecarregado, ajudando na escalabilidade e na elasticidade.
    3. Containerização: Com o advento do DockerCom o uso da tecnologia de escalonamento, o envio e a implementação de aplicativos são simples, facilitando o dimensionamento e o gerenciamento dinâmico de recursos.
    4. Monitoramento e automação: Você pode usar ferramentas de monitoramento para ajudar a rastrear o uso de recursos e configurar scripts automatizados ou usar ferramentas nativas da nuvem para ajustar os recursos com base em métricas predefinidas.

O futuro da escalabilidade e da elasticidade

O futuro da escalabilidade e da elasticidade parece estar se encaminhando para sem servidor provisionamento de recursos. Plataformas como AWS Lambda, Microsoft Azure e Google Cloud oferecem funções que são dimensionadas automaticamente de acordo com os recursos necessários. Essa funcionalidade ajuda os desenvolvedores a evitar o provisionamento excessivo de recursos, tornando-a uma opção econômica tanto para startups quanto para empresas.

Fornecimento de valor por meio de escalabilidade de aplicativos A escalabilidade e a elasticidade proporcionam às organizações ágeis a velocidade, a flexibilidade e a adaptabilidade necessárias em sua busca para atender à demanda dos usuários. Assim como a escalabilidade e a elasticidade dizem respeito ao software, a agilidade amplia o potencial humano em uma organização (grande ou pequena).

Principais conclusões

Para desenvolver e manter com sucesso aplicativos projetados para grandes bases de usuários, é preciso utilizar tanto a escalabilidade quanto a elasticidade. Como as organizações encontrarão cenários em que poderão contar exclusivamente com a escalabilidade (trimestralmente) e cenários em que precisarão ajustar os recursos para atender rapidamente ao aumento da demanda (necessidades de curto prazo), ambas as abordagens são necessárias.

Para continuar aprendendo sobre escalabilidade, elasticidade, sem servidor e o futuro da computação em nuvem, você deve ler nossos guias para arquitetura sem servidor, bancos de dados sem servidore funções sem servidor.

Autor

Postado por Tyler Mitchell - Gerente sênior de marketing de produtos

Trabalha como Gerente Sênior de Marketing de Produto na Couchbase, ajudando a levar o conhecimento sobre os produtos para o centro das atenções do público e, ao mesmo tempo, apoiando nossas equipes de campo com conteúdo valioso. Sua paixão pessoal são todas as coisas geoespaciais, tendo trabalhado em GIS durante metade de sua carreira. Agora, a IA e a pesquisa vetorial estão em sua mente.

Deixar uma resposta