Off-Topic: Google App Engine e Cloud Computing

2008 April 13, 01:27 h

Assim como Web 2.0, outro termo usado o tempo todo é Cloud Computing. Muita gente usa para designar muitas coisas. Outro termo usado como sinônimo – mas não sendo exatamente a mesma coisa – é Web Services (não o padrão XML), que na realidade não é nada novo, é o que antigamente chamávamos de ASPs (Application Service Providers). Exemplos disso são serviços como Basecamp para gerenciar projetos sem que a empresa precise gastar em manutenção ou mesmo seu Webmail favorito. São serviços online onde você paga para não precisar se preocupar com infraestrutura. É um tipo de outsourcing de serviços.

Esta semana o Google causou um pequeno furor ao lançar sua resposta a Cloud Computing: o Google App Engine. Vocês podem ver um review do Techcrunch aqui. Mas o que é Cloud Computing? Antes de mais nada, vamos explicar os termos mais usados no mercado:

Nós, que somos desenvolvedores, em algum momento vamos querer colocar nossa aplicação em produção. Eis quando chega a parte mais cabeluda do processo: Deployment!

Existem várias opções. Primeiro vejamos sobre software:

Sobre opções de hardware, vejamos:

Cloud Computing

Entendido quais são os termos usados por aí, vamos ver agora o termo da moda. Não sei se foi o primeiro, mas com certeza o que tem feito mais barulho é o modelo dos produtos da Amazon Web Services como Elastic Cloud Computing ou EC2; Simple Storage Support ou S3 e SimpleDB.

Em todos eles, o principal chamariz é o conceito de elastic on-demand. Ou seja, você paga por quanto usa, mas não precisa manualmente ficar reconfigurando tudo toda vez que precisar de mais. Se usar mais paga mais, se voltar a usar menos, ‘elasticamente’ se paga menos. É pagamento por uso de recursos, não mensalidade fixa por recursos fixos.

Esses produtos da Amazon respondem pelos seguintes serviços:

Qual a vantagem? Você pode ter o que precisa, quando precisa. Em vez de se comprometer a planos caros de co-location ou VPS, você pode colocar sua aplicação aos cuidados da Amazon e ter mais dinamicidade no seu negócio sem se preocupar se suas máquinas ‘vão aguentar’. É como se você pudesse pagar academia pela quantidade de horas que você efetivamente frequentou, em vez de pagar uma mensalidade fixa. Se parar no meio do mês, você não perde a mensalidade inteira. É uma tendência no mercado de serviços.

Qual a desvantagem? No caso da Amazon você precisa preparar sua aplicação segundo suas limitações e requerimentos. Principalmente se considerar que é normal seu slice ser derrubado. Os dados locais a esse slice são perdidos se não forem persistidos fora dele antes disso. Isso não é um problema se for levado em consideração como premissa desde o início, mas é um paradigma diferente do que estamos acostumados com co-location ou VPS clássica, onde seus dados locais são sempre permanentes e é uma responsabilidade do hosting fazer o backup para eventuais problemas.

Google App Engine

Chegamos à novidade da semana: o Google App Engine. Na prática, é uma solução que mapeia um a um os serviços da Amazon.

A vantagem do Google é que ela fez o marketing desse produto como sendo: “Sua aplicação rodando dentro de nossa infra-estrutura”, ou seja, todos sabemos que os famosos produtos do Google como o site de procura propriamente dito, Google Reader, Gmail, Orkut, etc todos rodam numa infra-estrutura proprietária altamente escalável que tornou o Google famoso e agora ela está ‘aberta’ (grátis mas não libreversusLibre) para que outros usufruam disso. Vejamos vantagens e desvantagens:

Neste momento o Google apenas tem suporte a aplicações escritas em Python. Particularmente ele já vem com Django pré-disponível e com APIs que facilitam o manuseio dos recursos de dados e storage. Com certeza uma grande notícia para a comunidade Python.

Isso gerou certa comoção entre desenvolvedores de outras linguagens, mas isso é normal. Se não fosse o Google, passaria despercebido como “mais um provedor de serviços”. Mas sendo o Google eles obviamente sabem que sempre receberão elogios e críticas massivas. Portanto, nada mais do que o esperado. Falar bem é democrático, falar mal também. Se eles não previram isso, alguém do departamento de Public Relations precisa ser demitido.

De qualquer forma, não dêem ouvido a mais essas guerrinhas de linguagens:

No press release eles prometem suportar outras linguagens no futuro e que – como toda aplicação Web 2.0 que se preze – esta é uma versão “Beta”. Grande novidade :-) Não é uma solução perfeita mas, como tudo que vem de uma corporação massiva como o Google, tem grandes potenciais. De novo, como uma aplicação Web 2.0, ela também tem uma conta livre para que você possa fazer o test-drive do ambiente antes de decidir por um upgrade de planos. Neste momento de Beta, porém, ela ainda não é liberada.

O que isso representa?

Em pouco tempo, quando o App Engine evoluir, passar a suportar mais ambientes de desenvolvimento além de Python, ela se torne a principal ameaça aos Web Services da Amazon, já que ela é uma cópia descarada de seus serviços. É óbvio que é seu concorrente comercial é a Amazon.

Também pode se tornar uma ameaça a serviços menores como da Joyent (Joyent Accelerator) que é um hosting que implementa o mesmo conceito de recursos elásticos ou o recém-chegado Heroku que, no fundo, é um App Engine para Rails, ou seja, ela é uma ponte entre os serviços da Amazon, configurados de uma maneira mais simples para desenvolvedores de Ruby on Rails. Claro, ela ainda não está pronta e não tem nada perto da escala do Google.

Nem os serviços do Google e nem os da Amazon são perfeitos. Aliás, falei algo óbvio: nenhum serviço é perfeito. Tudo vai depender dos seus requerimentos e como quer se comprometer. A regra continua a mesma: quanto mais você se comprometer, menos caro será no curto prazo, mais caro no longo. Quanto menos quiser se comprometer, mais caro será no curso prazo mas, talvez, seja melhor no futuro.

Ou seja, você quer algo barato mas flexível, a Amazon e o Google podem ajudar. Mas, com sorte, se um dia você crescer e quiser ficar independente, pode ser mais difícil se desvincular deles, já que sua aplicação ficou intimamente amarrada a seus serviços. Se usar um serviço mais tradicional como co-location ou VPS, pode ser mais caro agora mas no futuro você continua isolado de terceiros e pode custar menos para migrar para outros hostings que ofereçam melhores preços/qualidade.

O que pode acontecer se o App Engine do Google for bem sucedido é causar uma pressão maior no mercado de hostings para oferecer serviços mais criativos, mais baratos, com mais qualidade. Ou seja, é a lei de mercado, onde concorrência pode gerar mais benefícios para nós, consumidores. Eles que se matem enquanto nós assistimos. A curto prazo, para quem quer colocar uma aplicação no ar, é apenas mais uma variável a se considerar.

Qual o objetivo do Google nisso? Não sei se o objetivo é o mesmo dos hostings: ganhar dinheiro terceirizando sua infra-estrutura num mercado de commodities (o Google se especializou em transformar bons produtos em commodities, o que é bom e ruim ao mesmo tempo, dependendo do seu ponto de vista). Ou se for um serviço grátis, um dos objetivos é facilitar que mais e mais websites apareçam: clientes potenciais para o verdadeiro core business do Google: Ad Sense, claro. Agora, claro que eu não esperaria fazer hosting do meu equivalente-Twitter num serviço gratuito. Aliás, se seus dados são importante para você nunca use serviços gratuitos. Eles são bons enquanto funcionam, mas quando não funcionam e você toma um prejuízo, o problema é única e exclusivamente seu. É como andar de carro sem fazer seguro.

(off topic do off topic: eu uso Gmail, mas todo e-mail que que cai no inbox tem um forward automático para meu e-mail pago no Apple .Mac, e todo e-mail do .Mac cai na minha máquina, e minha máquina tem dois backups redundantes. Apenas para exemplificar. Eu gosto do Gmail, mas não apostaria sequer meus e-mails nisso.)

Entendendo o Google

Sempre que se analisa um movimento do Google, nunca se deve pensar em ‘altruísmo’ ou qualquer bobagem dessas. Eles são uma empresa de capital aberto cujo objetivo principal é deixar seus acionistas felizes. Novamente: é uma empresa lucrativa, não uma instituição de caridade.

Por acaso o core business deles envolve atingir pessoas que ficam felizes ao ouvir frases-feitas como “Don’t be evil”, o que é bom para nós, claro, mas não significa que isso não seja um gerador de conflito de interesses.

(off topic do off topic – não sejamos ingênuos: não fazer o mal é muito vago porque ‘bem’ e ‘mal’ são conceitos relativos. O que é bom pra mim pode ser ruim para alguém e vice-versa. Bem e Mal mudam conforme o local e o tempo. Ninguém nunca vai dizer ‘faça o mal’, óbvio, não seria muito esperto. ‘Fazer o bem’, ou pelo menos o que é percebido atualmente como ‘bem’ para a maioria, é uma maneira muito inteligente de se fazer publicidade positiva frente à opinião pública de consumidores. Além de ser uma publicidade barata também pode ter isenção de impostos, o que para empresas grandes é uma economia considerável. A Lei Rouanet é um exemplo disso. Ambos ganham, mas sem leis desse tipo não haveria muita motivação para uma empresa ‘investir’ fora de seu core business da mesma maneira. Bah, what do I know. E, claro, eu gosto do Google também, até agora faz parte dos meus interesses.)

Só para entender melhor, leia isto. Parte interessante:

“Evil,” says Google CEO Eric Schmidt, “is what Sergey says is evil.”


Wired: “Compromisso moral é apenas um custo para se fazer grandes negócios.”

O App Engine é mais um canal para o Ad Sense, assim como um Android, um Gmail, etc. Uma das razões de existir uma empresa como Mozilla é a linha de receita que vem do Google para que ela traga no seu toolbar uma procura default para o Google, claro. A Apple também ganha para ter o campo de search do Google no Safari. Não é uma ‘venda-casada’ porque ambos os browsers são de ‘graça’, mas o custo é indireto porque interessa aos anunciantes no Ad Sense aparecer na maioria dos browsers, claro. O Yahoo! também vai se juntar ao mercado Ad Sense do Google, aumentando ainda mais seu market share.

Isso significa visitas indiretas que, por sua vez, gera os bilhões de receita ao Google, agradando seus acionistas. E os usuários geeks, que contribuem para a propaganda gratuita do boca-a-boca, obviamente gostam do pensamento de que apoiar um Google ou um Firefox significa ‘a Microsoft perder’. Eu posso estar sendo pessimista, mas aconteceu com Rockfeller, um grande filantropo e sua Standard Oil. Aconteceu com Bill Gates, outro grande filantropo e sua Microsoft. Há possibilidade de acontecer com um Google. Para se ter uma idéia, leiam este artigo e um trecho interessante:

Blogger and Mashable reader Constantine von Hoffman at Collateral Damage probably put it best when he said: “At this point, it would take a mashup of Wittgenstein, Quantum mechanics and LSD to make sense of Google’s various explanations for what it will and won’t censor and why.”


Enfim, o Google App Engine, por si só, não representa nenhuma revolução ou algo particularmente grande agora, é apenas mais um player no mercado de hosting. Cloud Computing é apenas mais um termo de marketing para uma solução derivada de outras que já existiam (granulamento de preços de serviços). Assim como o Android, o Google está commoditizando mais um segmento de mercado.

A regra de sempre continua valendo: análise de custo x benefício. E esse tipo de análise não é receita-de-bolo e nem vem com o clique de um botão.

tags: cloud-computing google

Comments

comentários deste blog disponibilizados por Disqus