A equipe da Amazon Web Services adicionou suporte a Ruby ao seu serviço Elastic Beanstalk, e agora possui uma das plataformas de cloud computing com maior variedade de linguagens suportadas. Além disso, a AWS introduziu suporte ao Elastic Beanstalk na sua Virtual Private Cloud (VPC). Com isso os clientes podem implantar e administrar versões privadas de suas aplicações web.
O AWS Elastic Beanstalk é um serviço de hospedagem de aplicativos para desenvolvedores que querem implantar aplicações web em uma plataforma que automaticamente gerencia a capacidade, e faz balanceamento de carga, escalonamento e monitoramento. Diferentemente de ofertas tradicionais de Plataforma como Serviço (PaaS), o serviço AWS Elastic Beanstalk funciona como um "invólucro" sobre um produto de Infraestrutura como Serviço (IaaS). Os desenvolvedores e administradores possuem acesso direto à camada de infraestrutura da AWS sob sua aplicação, o que significa que podem modificar a configuração dos servidores ou acessar seus arquivos de log. O usuário permanece responsável por diversas tarefas relacionadas à infraestrutura, incluindo a escolha (e atualização) do sistema operacional do servidor e das camadas de aplicação. O Beanstalk permite a automatização de uma série de tarefas de administração, por exemplo reiniciar todos os servidores web com um único comando, acessar todos os arquivos de log dos servidores de um único local central, e monitorar a performance de todos os nós da rede.
No post que anunciou o suporte a Ruby, a equipe do AWS explica que aplicações Ruby executam no servidor de aplicações Passenger e que "isso permite desenvolver e testar localmente e publicar no Beanstalk, sem nenhuma alteração no código da aplicação". Ao adicionar Ruby, o Beanstalk agora suporta cinco grandes linguagens/plataformas para desenvolvimento web. É um PaaS não-tradicional, e a própria AWS se recusa a apresentá-lo como solução PaaS, devido ao controle da infraestrutura mantido pelo usuário. De todo modo, segundo avaliações de provedores líderes de PaaS, a AWS está entre os que oferecem suporte mais extenso a desenvolvedores de aplicações que utilizam os frameworks de programação mais populares. Veja abaixo uma comparação entre as principais plataformas de cloud computing e as linguagens suportadas (os asteriscos indicam suporte pela comunidade).
AWS Elastic Beanstalk | Google App Engine | Windows Azure Web Sites | Cloud Foundry | Heroku | |
Java | x | x | x | x | x |
Ruby | x | x | x | ||
PHP | x | x | x* | ||
Python | x | x | x | x* | x |
.NET | x | x | x* | ||
Node.js | x | x | x |
Anteriormente as aplicações no Elastic Beanstalk estavam disponíveis somente na nuvem pública da AWS; mas agora podem ser implantadas em nuvens privadas com o Amazon VPC. A equipe da AWS comentou essa mudança.
Agora é possível definir e fornecer uma rede virtual privada na nuvem e conectá-la a uma rede corporativa, utilizando uma conexão VPN. Isso possibilita executar diversos tipos novos de aplicações no Elastic Beanstalk. Por exemplo, pode-se executar aplicações de intranet como uma aplicação de gerenciamento de incidentes, ou um site de relatórios. [...] Assim que tiver sua VPC pronta, basta fornecer o VPC ID e os IDs de subrede ao Elastic Beanstalk, e suas aplicações passam a ser disponibilizadas automaticamente dentro da VPC.
A AWS Elastic Beanstalk é feita de forma que adicionar novas linguagens e frameworks seja possível no futuro. Essa mescla entre IaaS e PaaS, e de PaaS pública com PaaS privada, parece ser uma tendência entre os provedores de nuvem, que buscam expandir a quantidade de casos de uso de seus produtos.