Não é de hoje que o Ruby e cloud computing andam juntos. Existem diversos provedores de serviços que oferecem suporte nativo a cloud de ruby como o Heroku. O que muitas pessoas não sabem é que existe a possibilidade de rodar uma aplicação ruby no Google App Engine (GAE) que, mesmo não oferecendo suporte nativo, oferece suporte não oficial ao Ruby através do JRuby.
Para quem ainda não conhece o GAE ele é um serviço do Google, que vêm tem como intuito oferecer toda a infra estrutura necessária para que sua aplicação rode na cloud (nuvem). A infra estrutura possui algumas limitações como a necessidade de se utilizar um banco de dados do Google, o BigTable, porém isso deve interferir de forma moderada e não é nenhum agravante para não incluir sua aplicação no GAE, basta adaptá-la. O Google garante que o seu sistema aguentará uma grande absurda de requisições escalando naturalmente e garantindo disponibilidade.
Linguagens como Python e Java já são suportadas nativamente pelo GAE, a primeira inclusive é considerada a com melhor performance dentre os benchmarks realizados. Para colocar a sua aplicação Ruby no Google App Engine ainda é necessário que o mesmo utilize JRuby.
Em uma recente reunião do GAE, foi discutido sobre a ascêndencia de aplicações Ruby, além disso foi constatado que diversas pessoas, inclusive da audiência, que utilizavam outros serviços estão dispostos a migrarem para o GAE. John Woodell, Desenvolvedor Sênior do Google fez uma apresentação sobre Ruby no Google App Engine onde ele aponta algumas melhorias que ainda devem ser feitas para uma maior adoção da plataforma:
- Melhorar o tempo para subir uma nova instância do JRuby
- Algumas gems ainda precisam ter suas extensões portadas para o Java
- Suporte não oficial
De acordo com John, mesmo com esses fatores, o GAE oferece tudo o que é necessário para que sua aplicação Ruby rode com segurança e estabilidade. Não é necessário fazer nenhuma configuração, tudo é feito através das API's padrões disponibilizadas, estas que são uma várias, dentre elas temos AppEngine::Memcache, AppEngine::DataStore, AppEngine::Mail, entre outras.
É evidente que o suporte a Ruby nativo talvez traga maiores atrativos para aqueles que desejam ter suas aplicações ruby no GAE. Porém, de acordo com alguns cases mostrados por John, quem possui uma aplicação rodando não tem o que reclamar. Para quem se interessou e deseja colocar sua aplicação Ruby no GAE pode começar baixando a gem do JRuby para a plataforma.
E você leitor, possui alguma expêriencia com aplicações Ruby no GAE?