quarta-feira, 3 de março de 2010

Sobre EC2 da Amazon

Usando cloud no EC2 da Amazon
By ctaurion

Com a crescente popularidade do modelo Cloud Computing e da proposta da Amazon (como a plataforma EC2), tenho observado que varios fornecedores de software anunciam ofertas especificas para este ambiente. Entretanto, estes anúncios muitas vezes tendem a ser um tanto exagerados e acabam criando uma percepção um tanto enganosa para o mercado. Vamos analisar um pouco mais detalhadamente o que é a oferta EC2 da Amazon e validar se estas ofertas são realmente tão milagrosas assim.

A plataforma EC2 oferece basicamente um ambiente virtualizado de servidores x86, suportado pelo sistema de virtualização Xen. Um servidor virtual ou uma instância (Amazon Machine Image ou AMI) é na verdade é uma imagem virtualizada de um servidor com sistema operacional como o Linux. Quando um fornecedor de software diz que suporta a plataforma EC2 ele está criando uma ou mais AMIs, adicionando seu software e os middlewares necessários.

Na imensa maioria das vezes estas ofertas são os mesmos softwares que rodam em servidores x86 tradicionais, com pequenas alterações para suportar os sistemas de arquivos da Amazon (Elastic Block Store, EBS) ou S3 (Simple Storage Service). Isto é necessário, pois ao contrário dos servidores tradicionais, uma AMI não embute automaticamente persistência em disco. Além disso, o software pode ser otimizado para rodar no EC2, como por exemplo considerando que os discos virtuais (S3, por exemplo) não são locais e portanto demandam latência tipica de discos remotos. Também, uma vez que a Amazon cobra por numero de operações de I/O no EBS, otimiza-se o código diminuindo a demanda do software aos discos. Taí uma boa questão: o fornecedor ao dizer que suporta EC2 está fazendo alguma otimização para este ambiente ou está deixando o software exatamente como funciona nos servidores fisicos?

Outra carateristica tipica do EC2 é que a escalabilidade da Amazon é horizontal, ou seja, abre-se mais instâncias. Mas, de maneira geral os softwares tradicionais aumentam sua escalabilidade através de mais recursos computacionais da mesma máquina, ou seja explorando a capacidade de servidores de maior potência. O problema é que a Amazon, ao detetar que a utilização de CPU de uma determinada instância atingiu um limite determinado, abre automaticamente uma nova instância. O efeito prático é o de instalar um novo servidor fisico quase instantaneamente. A questão é: o software consegue tirar proveito deste novo servidor? Na verdade estamos concluindo que colocar uma aplicação no EC2 não a torna automaticamente uma aplicacao “cloud”, mas sim que ela usa uma infraestrutura em cloud. A escalabilidade da infraestrutura não se reflete automaticamente na escalabilidade da aplicação.

Outro aspecto que nem sempre é “lembrado” nas ofertas dos fornecedores: que modelo ou modelos de licença são adotados? Aí podemos ter vários tipos, como licenças voltadas para usos exploratórios, ou seja, propostas para testar o software no ambiente de cloud, mas sem permissão ou condições para uso em produção, ou licenças específicas para o EC2, como cobrança por instância e/ou por tamanho da AMI. Recomendo olhar as licenças com atenção, para evitarmos surpresas nos custos de propriedade.

E já que falamos em custo de propriedade (TCO), sugiro enfáticamente avaliar o TCO da solução EC2 versus o modelo tradicional. Apenas pelo fato de estar na Amazon não garante à empresa que seus custos de TI serão menores. Instâncias virtuais não tem capex (capital expenses), como servidores físicos, mas dependendo de como serão gerenciadas e das licenças de softwares adotadas, podem até apresentar opex (operating expenses) mais elevados.

Um bom exemplo de flexibilidade no uso da plataforma EC2 da Amazon é o da IBM. Vejam em http://aws.amazon.com/ibm/ .

Mas, é indiscutível que o modelo de cloud computing ainda é um work in progress e a cada dia aprendemos um pouco mais. Recentemente a Amazon criou uma oferta bem interessante chamada de Spot Instances. A idéia é simples: a Amazon faz leilão automático de recursos computacionais. Se a demanda pela nuvem da Amazon diminui, os recursos tendem a baratear. Caso aumentem, os recursos tornam-se mais caros. É uma estratégia de precificação dinâmica. Funciona assim: baseada na lei da oferta e procura a Amazon determina um valor mínimo para as intâncias. Estes preços flutuam livremente, de acordo com a demanda, influenciados, por exemplo, pela hora do dia. O usuario dá seu lance. Se o seu lance é maior que o preço esperado pela Amazon, a instância é alocada a ele, que pode começar a executar. Quando o preço da instância torna-se maior que o lance oferecido, a instância é suspensa e só volta a rodar quando o lance se tornar maior novamente. Toda a operação é automática. Claro que esta oferta só vale para determinados tipos de aplicação, que não sejam dependentes de tempo.

O que isto sinaliza? Que ainda estamos dando os primeiros passos de novos e inovadores modelos de negócio em cloud, quebrando a mesmice dos modelos atualmente praticados. Teremos dias bastante interessantes.

Nenhum comentário:

Postar um comentário