top of page

Escalabilidade, Uma Nuvem de Conceitos.

Quando debatemos sobre tecnologias do futuro um dos primeiros assuntos levantados é a computação na nuvem (Cloud Computing). A computação é na verdade apenas a espinha dorsal dos SaaS, IaaS, PaaS e etc que os provedores de nuvem nos ofertam.

Existem três conceitos básicos e considerados como as principais vantagens e diferenças da nuvem com a clássica arquitetura on-premises e são Durabilidade, Disponibilidade e nosso assunto principal, a Escalabilidade.


Como a nuvem nos permite Escalar de forma rápida, fácil e com menor investimento?


Antes de responder a esta pergunta, primeiro vamos refrescar a nossa memória no conceito de escalabilidade. É possível escalar uma aplicação de duas maneiras, Vertical (Scale up) caracterizado como um upgrade de máquinas; mais memória, melhoria de unidade de processamento e etc, ou seja, “a máquina cresce”; outra forma de escalar é a horizontal, se uma aplicação é distribuída, adicione mais máquinas, ou seja, a aplicação roda em cima de um cluster, sempre que a aplicação cresce, basta adicionar novas máquinas ao cluster para atender a novas demandas. Respondendo então a pergunta, há diversas vantagens oferecidas pela nuvem em ambas as escalabilidades, a primeira e a mais óbvia delas é a redução de escala, na arquitetura on-premises, os engenheiros precisam adivinhar quais as necessidades computacionais de uma aplicação para um determinado período de tempo e então investir em uma infraestrutura torcendo para ser o suficiente ou que seja facilmente corrigida com upgrades mas, não existe o downgrade, uma vez comprado o recurso, ele é seu, sendo usado ou não, na nuvem você paga pela necessidade computacional que você usar, se não for mais necessário, pare de usar e consequentemente de pagar por ela.


Não podemos falar de escalabilidade na nuvem sem falar de arquitetura distribuída, ou seja, se sua aplicação roda com todos os serviços em uma única máquina, sua aplicação está engessada, torcendo para que a escalabilidade vertical seja suficiente para atender as necessidades futuras, na nuvem a aplicação é distribuída, com máquinas de banco de dados, armazenamento e poder computacional em máquinas ou clusters, separados, permitindo escalabilidade vertical e horizontal de forma granular, atendendo tanto acréscimo quanto decréscimo da demanda, sem necessariamente perder tempo estimando o tamanho das máquinas ou a quantidade delas, se suas escolhas não forem adequadas uma substituição é rápida e sem custos excessivos.


Na nuvem, tão fácil quanto mudar a escala é perder o controle do custo, afinal, uma scale out mal administrado poderá acarretar em prejuízos financeiros inesperados.

Na AWS, líder no mercado de nuvens, ferramentas como o Auto Scaling, facilitam o processo de escalabilidade. O Auto Scaling possui diversos parâmetros que determinam como seu cluster deve reagir, de forma a escalar sua aplicação. Existem 3 tipos de escalabilidade, manual, programada e dinâmica, a manual e a programada são decisões diretas tomadas pelo usuária, aumentando ou diminuindo o número de instâncias (EC2), já a escalabilidade dinâmica é mais interessante, dentro dela há três políticas de escalonamento; simples, em etapas e de rastreamento de destino. A AWS recomenda a utilização de pelo menos duas políticas, uma para scale in e outra scale out.


Além das políticas de escalonamento existem dois parâmetros essenciais, o tempo de resfriamento (Cooldown) e a política de encerramento (Terminate During Scale In), O Cooldown é o tempo em que o Auto Scaling deve esperar até tomar uma nova medida de escalonagem, por exemplo, se o escalonamento é referenciado ao uso de CPU médio do grupo de instâncias, levará um tempo até que a nova instância entre em trabalho e afete a métrica, se o Cooldown não for suficiente para superar esse tempo, novas instâncias serão iniciadas sem necessidade, por padrão o Cooldown é de 300 segundos. A política de desligamento define a ordem e diretrizes de desligamento das instâncias, essa política pode ser personalizada e existe também um padrão da AWS, que prioriza: manter o número de instâncias em cada AZ em equidade, seguido de preservar instâncias protegidas e então desligar a instância mais próxima do início de um novo faturamento, já que a Amazon cobra a hora inteira logo no primeiro segundo.


A utilização de uma política de scale in deve ser bem pensada para evitar uma cobrança excessiva, por exemplo, um alerta baseado em uma métrica de acesso inicia uma instância às 12:00H e neste momento lhe é cobrado uma hora cheia, após 20 minutos o número de acesso reduz e um outro alerta desliga a instância 15 minutos depois o acesso volta a subir e um novo alerta inicia uma nova instância às 12:35H, e mais uma hora cheia lhe é cobrada, novamente 20 minutos depois o número de acessos reduz e um novo alerta desliga a instância às 12:55H, ou seja, em apenas uma hora você foi cobrado por duas horas, como a política padrão define um cooldown de 300 minutos (5 horas), uma cobrança como esta não será um problema, mas 5 horas é muito tempo de espera para determinadas aplicações e escolher um valor que se adeque às necessidade da aplicação sem gerar cobranças indevidas será um desafio.


O Auto Scaling faz o controle automático da escalabilidade horizontal da sua aplicação, mas existem diversas famílias e tipos de instâncias que variam de preço/hora, além de existir três formas de obtenção de uma instância, por reserva (RI), sob demanda e instâncias pontuais (Spot) o conjunto desses fatores podem variar o preço/hora total de uma fração de centavos até alguns poucos dólares por hora.


É crucial monitorar sua infraestrutura na nuvem, sua aplicação e suas cargas de trabalho flutuantes que exigem alta escalabilidade, a fim de obter um controle e custo eficiente na nuvem. Para estes monitoramentos, principalmente quando falamos de aplicações de grande escala, existem três ferramentas líderes no mercado: Dynatrace, para monitoramento de aplicações visando a otimização da performance; Cloudability, para um perfeito BI da nuvem, planejamento de RIs e de melhores escolhas para tipos de instâncias e o terceiro e não menos importante, Spotinst, um poderoso gerenciador autônomo de escalabilidade que utiliza instâncias pontuais (Spot) para agressivamente reduzir os custos com infraestrutura na nuvem em até 80%, sem afetar a disponibilidade.

Visite http://www.realcloud.com.br para obter mais informações sobre essas incríveis ferramentas

Posts Recentes
Arquivo
Procurar por tags
bottom of page