Escala horizontal x vertical: qual é o significado desses conceitos? Escolher a solução certa pode melhorar drasticamente seu desempenho ou economia.
Uma das coisas mais difíceis em design de sistema e hospedagem de aplicativos é tentar estimar o alcance de nossos aplicativos. Isso pode ser um choque, mas, infelizmente, você não pode prever o futuro.
O melhor que você pode fazer é projetar qual seria nossa base de usuários e contratar poder computacional com base nessa projeção.
Mas e se a projeção der errado?
Se você olhar o primeiro gráfico acima, verá que o servidor fica sobrecarregado nos horários de pico. Isso é altamente inconveniente, para dizer o mínimo.
O caso oposto também pode ser um problema, como no segundo gráfico, quando o servidor fica ocioso uma parte considerável do dia de trabalho e geralmente não atinge o uso ideal, criando uma situação em que você está pagando por recursos não utilizados.
Ter a capacidade de alocar mais ou menos recursos seguindo seu uso real ou crescimento esperado é algo de grande importância. Esta alocação de recursos é conhecida como escalabilidade.
A melhor maneira de dimensionar sua infraestrutura é o que será abordado neste artigo, com um foco especial na expansão/redução.
O que é dimensionamento vertical?
O escalonamento vertical (escalonamento) é uma forma de escalonar, o que adiciona mais recursos à máquina existente ou nó único, aumentando assim sua capacidade.
O processo de escalonamento vertical é direto e inclui a atualização de componentes físicos (potência da CPU, RAM, espaço em disco ou largura de banda) para o seu servidor.
Em ambientes de nuvem, a extensão da alocação de recursos para essa construção específica por meio de software de virtualização, como VMware , Red Hat Virtualization ou Oracle VM VirtualBox, seria outra maneira de escalar verticalmente. A otimização de software também pode ser incluída nesta categoria.
A escala vertical é especialmente adequada para pequenas e médias empresas.
Vantagens da escala vertical
1. Custo inicial mais baixo
Geralmente, aumentar a escala ou verticalmente é mais econômico devido a vários motivos:
- O hardware em termos de eficiência por unidade é mais barato. Até certo ponto, isso será tratado nas desvantagens.
- Como há apenas uma máquina, o licenciamento e a implementação de software são mais baratos.
- Os custos de manutenção, incluindo energia, racks de servidores e resfriamento são reduzidos.
2. Comunicação entre processos
A comunicação entre processos em execução no mesmo nó é mais rápida do que a comunicação de rede entre máquinas. O caminho de comunicação entre aplicativos e serviços é mais curto, o que se traduz em uma execução mais eficiente porque a sincronização e as informações sobre eventos e as solicitações são quase instantâneas, pois nenhuma interação externa é necessária.
3. Consistência de dados
Outra grande vantagem da escala vertical é que os dados permanecem homogêneos. Sincronização e consistência de dados entre os nós não é algo com que se preocupar quando você tem uma única máquina. A consistência de dados é especialmente relevante para aplicativos de alta simultaneidade que dependem de comunicação rápida e aplicativos que precisam ser sincronizados instantaneamente.
Desvantagens da escala vertical
Existem, é claro, algumas desvantagens a serem consideradas ao dimensionar verticalmente, que podem ser um ponto de ruptura.
1. Ponto Único de Falha
A desvantagem número um de ter um aplicativo que reside em uma única instância é que ele representa um único ponto de falha. Se, por algum motivo, a máquina cair, nosso aplicativo também.
Falhas de hardware , software corrompido, malware ou outros tipos de ataques maliciosos direcionados, ou até mesmo acidentes físicos no data center podem levar a um tempo de inatividade caro.
2. Limitações de hardware e software
Há um limite para a quantidade de hardware que pode ser adicionada a uma única máquina. Torna-se mais caro atingir um certo limite em termos de custo-desempenho.
Mas, além do lado econômico da equação, também existem limitações de hardware e software.
Por exemplo, se parte do nosso software não pode ser paralelizada, então adicionar hardware não melhorará o tempo de execução, pois sempre levará a parte que não pode ser otimizada mais o tempo de execução do resto do software. Isso é conhecido como Lei de Amdahl .
3. Tempo de inatividade
Como as alterações de hardware estão envolvidas, na maioria das vezes, isso se traduzirá em tempo de inatividade . Durante o fornecimento, o servidor pode precisar ser desligado para adicionar recursos e para o software reconhecer a nova alocação.
Se o espaço em disco for aumentado, pode ser necessário adicionar outra unidade.
Portanto, há uma chance de que a sincronização do disco leve mais tempo de inatividade até que o servidor esteja em plena capacidade operacional novamente.
O que é escala horizontal?
A escala horizontal, por outro lado, adiciona uma camada adicional de abstração. Em vez de ter um único servidor lidando com toda a operação, você tem um conjunto de vários nós formando uma rede distribuída.
Simplificando, dimensionar horizontalmente é adicionar mais máquinas, criando assim um pool de recursos interconectados. ”
O objetivo principal aqui é que a carga possa ser distribuída igualmente entre os nós. Freqüentemente, esta configuração inclui software de virtualização, clustering e balanceamento de carga .
Você pode criar nossa própria nuvem privada e otimizar a distribuição de recursos.
Para operações e aplicativos gigantes com alta simultaneidade de E/S, esta é a opção preferida porque a carga é distribuída, o ciclo de vida do hardware é mais longo e a degradação é reduzida.
Vantagens da escala horizontal
A escalabilidade horizontal é uma opção confiável para quem executa operações de alto nível e é a melhor em relação à viabilidade de longo prazo.
1. Resiliência e redundância
Dada a natureza desta solução, e porque não há um único ponto de falha, os ambientes de nuvem distribuídos ou pools de recursos são resilientes ao mau funcionamento de uma única instância.
Além disso, o risco de perda de dados é minimizado, visto que são distribuídos por todos os nós do ambiente. Essa minimização é uma das razões pelas quais nuvens privadas são tão benéficas para empresas maiores.
2. Fácil de escalar
Como você está adicionando mais energia a um pool existente apenas configurando mais máquinas, o tempo de inatividade é quase inexistente durante o dimensionamento. Não há praticamente nenhum limite no número de instâncias que podem ser adicionado.
Portanto, esta opção oferece crescimento teórico ilimitado .
O oposto também é verdadeiro. Se nossa demanda diminuir, você pode simplesmente remover algumas máquinas e não ficar preso em pagar por hardware de pico de tráfego.
3. Endpoints adicionais
O dimensionamento horizontal fornece pontos de extremidade adicionais para conexões de cliente. A carga é distribuída por todos os nós, proporcionando uma melhor experiência geral, aumentando o desempenho e a segurança da rede e evitando o uso pesado de componentes individuais.
Desvantagens da escala horizontal
1. Componentes adicionais
Embora a escala horizontal ofereça proteção contra pontos únicos de falha, o fato de haver mais de um nó pode aumentar a complexidade do protocolo de manutenção. Você também precisará incluir software de virtualização e balanceamento de carga para uma operação adequada.
Devido ao aumento da complexidade, os custos iniciais tendem a ser maiores ao implementar esta solução.
O gráfico a seguir fornece uma melhor compreensão de como a relação entre custo e desempenho se comporta em cada cenário.
2. Comunicação de rede
A comunicação entre processos e rotinas está profundamente envolvida no desempenho de nosso aplicativo. Toda a comunicação é interna com um único nó, o que é ideal; no entanto, as tecnologias de computação em nuvem dependem de comunicação de rede ou “Chamadas de procedimento remoto (RPC).”
Este protocolo foi amplamente refinado, mas independentemente, RPC ainda adiciona complexidade à estrutura e não é tão eficiente quanto a comunicação interna , o que pode ser relevante em termos de consistência de dados (sincronização contínua de dados entre nós).
Escala horizontal x vertical: qual você escolhe?
O dimensionamento horizontal pode ser útil para grandes operações e aplicativos com alta simultaneidade, fornecendo carga distribuída, redundância e tempo de inatividade mínimo, entre outros benefícios.
Para pequenas e médias empresas, a escala vertical seria a opção certa, pois é um ambiente menos complexo, inicialmente mais barato e oferece excelente desempenho pelo preço.
Ter uma nuvem privada pode ajudá-lo a dimensionar horizontalmente ou verticalmente, sem muitos problemas. A hospedagem de nuvem privada na Liquid Web permite que você otimize recursos e dimensione em tempo real.
VMware Private Cloud na Liquid Web
A nuvem privada, com tecnologia VMware e NetApp, adiciona os benefícios de uma nuvem pública tradicional à potência, desempenho e segurança de um ambiente isolado em hardware corporativo. Veja os mais recentes planos de nuvem privada em Liquid Web.
A postagem Dimensionamento horizontal x vertical para hospedagem de aplicativos: qual é o melhor para Você? apareceu primeiro em Liquid Web .