O cloud computing é inevitável?

A Caelum.com.br roda agora no cloud. Por que? Vale a pena? Temos tantos acessos assim?

Entre os exemplos clássicos do bom uso do cloud temos o sucesso do New York Times: eles conseguiram digitalizar em PDF mais de 4 terabytes de edições do jornal muito antigas (1851-1922) usando 100 máquinas e gastando apenas 240 dólares! O cloud é perfeito para situações em que você precisa de muito desempenho e recursos por um curto período de tempo.

Essa definitivamente não é a necessidade da Caelum em rodar em um cloud. Qual seria então?

Temos várias opções para você ter seu próprio cloud: através do TerraCotta, pelo VMWare ou pelo Grid Gain. Usando esses softwares você mesmo precisa prover sua infraestrutura de máquinas, o que pode ser trabalhoso. Um nível mais abstrato e encapsulado seria usar o EC2 da Amazon: ele já fornece as máquinas, facilitando muito a manutenção, e cobra por tempo de processamento (eliminando o gasto inerente ao tempo ocioso que suas máquinas poderiam ficar). No Brasil, a Locaweb foi a pioneira ao oferecer esse serviço.

Por último, temos hosts que já provêm tudo para você: a infraestrutura e o software para permitir a escalabilidade. O Google App Engine é um desses hosts.

Aqui, sim, entra a Caelum e entra também o interesse das empresas de hosting: se o cloud é mais barato para os fornecedores por compartilhar recursos ociosos, e ainda oferece altíssima escalabilidade e disponibilidade para os clientes, temos então um casamento de interesses. Essa relação ganha-ganha fortalece muito a tendência da adoção de uma arquitetura mais elástica. Os clientes também ganham uma enorme independência de hardware, terceirizando os grandes problemas que acabam acontecendo quando temos servidores dedicados: esses servidores não são à prova de bala. Para a Caelum, mesmo sem necessidade de rodar em 100 servidores, é interessante ter o poder de fazer o deploy de nossas aplicações Web sem ter de nos preocupar se “é suficiente X micros e Y de RAM para esta aplicação?”, por menor que ela seja.

O site da Caelum usava VRaptor 3 como controlador, JSP e taglibs na visualização e Hibernate para persistência. Para colocá-lo no cloud do Google App Engine, a única grande mudança que fizemos foi migrar a camada de persistência para o BigTable. Trata-se de um banco de dados não relacional proprietário, que possui uma API específica, mas também há uma implementação (não completa) de JPA para ele, o que facilita bastante a migração.

Desvantagens? O Google App Engine ainda está em beta, e já ficou fora do ar alguns momentos, em especial o serviço do DataStore (o BigTable). Há também o problema do cold start e do plugin para o Eclipse, que é um pouco lento para iniciar o servidor de testes: falaremos com detalhes sobre ambos em um outro post. Outra desvantagem é a dependência ao BigTable: como é um serviço proprietário, migrar para qualquer outro cloud vai necessitar de ajustes, mesmo que usando a JPA.

Respondendo o título do post: independente se o seu cloud é Amazon EC2, Google App Engine ou GridGain, algo é certo: ele traz vantagens tanto para os desenvolvedores quanto para o host, mostrando que a estratégia do cloud está cada vez mais solidificada.

Agradecimentos ao Pedro Matiello, Guilherme Silveira e Sérgio Lopes pela migração do site. Em breve, postaremos detalhes de como trabalhar na Google App Engine. Veja mais artigos de cloud no blog.

19 Comentários

  1. Leandro Silva 28/10/2009 at 17:17 #

    Parabéns, Paulo, pela visão de futuro. É disso que precisamos na comunidade, de pessoas visionárias!

    []s

  2. Ricardo Silva 28/10/2009 at 18:34 #

    Recentemente uma revista que prefiro não citar o nome, apresentou uma matéria onde 5 “especialistas” falaram a respeito de cloud, um deles falou tanta besteira que quase rasguei a revista.
    Parabenizo a Caelum pela consistência de suas colocações, nào apenas baseadas em conceitos mas também em uma experiência prática que atesta o que vocês apresentam em seus textos.
    O CloudComputing é uma realidade sem dúvidas, ainda precisando de amadurecimento e ajustes mas já em condições de uso e agregação de valor a nossas operações.
    Eu não diria que ele é inevitável, sempre teremos profissionais ortodoxos que optarão pelo controle do lógico e do físico, mas para aqueles que tiverem coerência em sua análise verão que estamos falando de uma tendência, não de um modismo, e não vejo porque não embarcar nesta onda desde já!

  3. Paulo Cassiano 29/10/2009 at 10:38 #

    Parabéns também pelas apresentações no Serpro!

  4. Andre Brito 29/10/2009 at 14:09 #

    Boa! O modo como você falou que não precisava de 100 servidores pra processar, mas sim da utiliidade do cloud em si ficou muito bem colocada.
    Mais uma ótima notícia. Abraço.

  5. Andre Brito 29/10/2009 at 14:18 #

    Aliás, existem rumores (não sei se é verdade) que a Google App Engine suporta (ou suportará) Scala. Mais um ponto pra ela.

  6. Paulo Silveira 29/10/2009 at 15:05 #

    Oi pessoal! Obrigado pelo apoio.

    Resumindo a posição da Caelum, é que o cloud é interessante tanto para o forneedor, quanto para o cliente, e não só em casos em que escalabildiade é extremamente necessário!

    Sobre Scala, já roda no GAE, assim como muitas das linguagens dinâmicas, já que algumas são compiladas para bytecode (como Scala), e outras a api de scripting do Java 6 consegue interepretar!

  7. Andre Brito 30/10/2009 at 23:40 #

    Paulo,
    Bom saber do Scala. Tenho que me atualizar nesse assunto!

    Abraço!

  8. Thomas 04/11/2009 at 09:47 #

    Pessoal pra quem quizer entender mais, nada melhor que os proprios criadores explicando…

    Oucam o melhor podcast da categoria Google App Engine, pessoalmente este é um dos meus favoritos.

    http://google-developer-podcast.googlecode.com/files/googledev015.mp3

  9. Otávio 28/11/2009 at 00:24 #

    Hmm, muito bom. Essa semana fiz uns estes no meu site e quero loco publicar no GAE. Já vou aproveitar e migrar de vraptor 2.6 para o vraptor3.

    Agora… como vocês criaram a estrutura do banco de dados? E como migraram os dados já existentes para lá?

  10. Antonio Carlos 15/02/2010 at 04:31 #

    Estou lendo sobre o Google App Engine, no caso de cotas, vocês chegam a ultrapassar aqueles valores de cotas? ou já ajustaram valores lá que comporte uma quantidade de acessos suportáveis, a minha preocupação é ficar mais caro do que imagino.

  11. Marcelo 07/03/2010 at 08:46 #

    Recentemente minha empresa decidiu embarcar nessa onda de cloud computing, e contratou os serviços da SimpleWeb, e não podíamos estar mais satisfeitos. Reduzimos em cerca de 50% nossos custos em datacenter e servidores, e ganhamos em performance e escalabilidade. É possível inclusive aumentar os recursos dos servidores em períodos críticos de pico de uso, como por exemplo quando rodamos a folha de pagamento em nosso ERP.

  12. Julio Prático 24/03/2010 at 16:08 #

    Cloud Computing é inevitável, mas devemos ter cuidado, pois na “computação” lidamos sempre com idéias antigas que se renovam, e idéias novas que rapidamente ficam ultrapassadas. O que não devemos é nos deslumbrar…

  13. Jimmy Anderson 25/05/2012 at 10:57 #

    Muito boa a materia, tive que comentar, parabens

Deixe uma resposta