Performance sob Demanda com Cloud Computing - TI Especialistas
jul 4, 2011 Ξ 1 comentário
Performance sob Demanda com Cloud Computing
Hoje ouvimos muito se falar de cloud computing, ou computação nas nuvens, porem o que de fato isso significa? Para muitos, ter o servidor em uma estrutura de cloud computing significa que não é necessário comprar um servidor, e sim alugar, o que ja reduziria muito os custos, sem contar que não existe um processo burocrático para aquisição de novas máquinas, em cloud computing pode ser uma questão de minutos ter uma instância pronta para uso.
Recentemente a CRN apresentou em um artigo o resultado de uma pesquisa feita pela AMI Partners, que em 2014 as pequenas e medias empresas gastarão U$100 bilhoes com cloud computing. Com isso minha questão continua, como essas empresas estão planejando utilizar o cloud computing? As intenções são somente virtualizar seus servidores?
Vamos considerar que todas essas pequenas e médias empresas estejam utilizando uma estrutura de servidores em cloud com um nível mais avançado, com balanceamento de carga, arquitetura de software distribuída e com todas as condições para quando houver necessidade, aumentar a performance dos servidores com novas instâncias eliminando gargalos. Certamente o orçamento dessas empresas são limitados, e os diretores de tecnologia estão sempre procurando uma forma de enxugar custos.
Muitas soluções de cloud computing possuem APIs ou mecanismos que permitem a automatização do processo de criação ou remoção de instâncias. Quantas empresas hoje utilizam essa facilidade para reduzir custos e aumentar a performance de acordo com a demanda? Provavelmente quase nenhuma.
Ha algum tempo, minha equipe técnica desenvolveu um script para os servidores da Ozonion, que controlam as instancias da Amazon EC2, permitindo incluir novas instâncias ou remover de acordo com a quantidade de processos executados por elas. O resultado disso foi uma redução de custo mensal de quase 40%. Antes de colocarmos esse script em produção fizemos exaustivamente testes para descobrir o limite que cada instância tem para a nossa arquitetura, outra análise que fizemos foi a relação de custos e beneficios entre os tipos de instancia, por exemplo, 4 máquinas micro equivalem a uma máquina small, porém somente com 4 máquinas micro voce poderia eliminar instâncias em periodos com menos acesso, como de madrugada, enquanto que a maquina small estaria no ar 100% do tempo, fazendo com que voce desperdice dinheiro sem necessidade.
Apenas para ilustrar, com somente duas linhas voce consegue remover uma instância do seu load balancer e para-la, fazendo assim com que seus custos diminuam:
# 1) Remover a ultima instancia criada do Load Balancer
elb-deregister-instances-from-lb $ELB_NAME --instances $INSTANCE_ID
--ec2-cert-file-path $CERT --ec2-private-key-file-path $PK
# 2) Parar instancia
ec2-stop-instances $INSTANCE_ID -K $PK -C $CERT
E de maneira análoga também é muito simples criar uma nova instância e coloca-la no load balancer. O que voce garante com isso? Redução dos custos, performance garantida sob demanda e deixa o processo automático.
Será que em 2014 as pequenas e médias empresas estariam gastando U$ 100 bilhoes se estivessem utilizando seus servidores com performance sob demanda?