Primeiros passos em PaaS com Heroku

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (4)  (0)

Este artigo irá apresentar o Heroku, uma solução de Plataforma como Serviço que permite ao desenvolvedor criar e subir rapidamente suas aplicações para a nuvem. Para isso, analisaremos o Heroku Toolbelt.

Fique por dentro
Para os desenvolvedores que querem se preocupar cada vez menos com infraestrutura e processos de deploy, concentrando-se apenas no desenvolvimento, o Heroku oferece um excelente serviço de hospedagem de aplicações com uma boa oferta de complementos como busca, cache, mensagens, etc. além de simplificar o processo de escalar a aplicação.

Pensando nisso, este artigo irá apresentar o Heroku, uma solução de Plataforma como Serviço que permite ao desenvolvedor criar e subir rapidamente suas aplicações para a nuvem. Para isso, analisaremos o Heroku Toolbelt, um poderoso cliente que permite gerenciar as aplicações pela linha de comando, e também o plugin do Eclipse, que facilita a criação e atualização das aplicações.

O advento da Cloud Computing e o aumento da quantidade de serviços que são oferecidos por plataformas na nuvem facilitaram e muito o processo de desenvolvimento e deploy de sistemas web. Atualmente o desenvolvedor tem à sua disposição diversas opções de serviços na nuvem. Estes abrangem vários tipos de aplicação, desde um simples web service até uma aplicação complexa. As ofertas se diferem também de acordo com o nível de customização permitido, sendo possível citar desde soluções de infraestrutura totalmente configuráveis até plataformas prontas para receber a aplicação.

Neste cenário, o Heroku vem ganhando mercado como um fornecedor de Plataforma como Serviço (PaaS). Este tipo de solução abstrai o desenvolvedor dos detalhes de infraestrutura ao disponibilizar containers para instalação das aplicações, facilitando a manutenção, extensão e escalabilidade, além de oferecer maior agilidade para disponibilizar uma aplicação na web, com menor custo inicial.

Com estes atrativos, soluções de PaaS têm chamado a atenção principalmente de pequenos projetos devido ao baixo custo inicial, pois a maioria dos fornecedores disponibiliza um plano gratuito que permite o deploy de aplicações, porém com limites de uso de recursos como CPU, memória, rede, etc.

Com base nisso, neste artigo iremos apresentar o Heroku, um fornecedor de PaaS que vem conquistando desenvolvedores. Vamos entender os pontos importantes da sua arquitetura e falaremos sobre boas práticas no desenvolvimento de aplicações PaaS. Para não ficar apenas na teoria, criaremos uma aplicação Java simples, sem o auxílio de plugins, e a instalaremos no Heroku, usando o Heroku Toolbelt. Para completar, criaremos uma aplicação mais sofisticada, baseada em templates, usando um plugin para o Eclipse.

Plataforma como Serviço

O Heroku se enquadra na categoria de serviços da computação em nuvem conhecida como Plataforma como Serviço (Platform as a Service, ou PaaS), no qual o fornecedor entrega para o cliente um ambiente pronto para receber a aplicação. Diferente do IaaS (Infraestrutura como Serviço), no qual cliente contrata máquinas (reais ou virtuais) e é responsável pela instalação de bibliotecas, montagem das estruturas do sistema de arquivos, entre outros recursos, o PaaS é uma solução de alto nível que abstrai este tipo de preocupação.

Como o ambiente é entregue pelo fornecedor, ao cliente basta se concentrar em desenvolver e instalar a aplicação. Normalmente nos serviços PaaS a instalação ou atualização é feita através de commits em repositórios remotos vinculados à aplicação.

No mercado, atualmente, existem muitas opções de fornecedores de serviços de PaaS além do próprio Heroku. Podemos citar como exemplo o RedHat OpenShift, AWS Elastic Beanstalk, Jelastic, CloudBees, dentre outros. Basicamente o que difere cada um são as tecnologias que eles permitem utilizar, como linguagens ou containers, quantidades de serviços adicionais e, é claro, a precificação, ou seja, o custo por memória, CPU e disco de cada instância da aplicação. Outra variável é a facilidade de criação e instalação de um aplicativo. Neste ponto o Heroku está um passo à frente dos outros fornecedores, pela simplicidade que é criar, manter e escalar uma aplicação, como veremos nos próximos tópicos.

Heroku

O Heroku foi criado em 2007 por três desenvolvedores norte-americanos: James Lindenbaum, Adam Wiggins e Orion Henry. Inicialmente o suporte era apenas para aplicativos desenvolvidos em Ruby, rodando no servidor web Rack. Em 2010 o projeto foi adquirido pela Salesforce e em 2011 iniciou um processo para suportar outras linguagens e frameworks. Atualmente o Heroku suporta Ruby, Java, Clojure, Python, Scala e Node e possui um parque de mais de três milhões de aplicações instaladas.

A respeito das instalações físicas, o Heroku utiliza a consolidada infraestrutura da Amazon e opera na US Region (que contempla datacenters nos Estados Unidos), sendo que a EU Region (datacenters localizados na Irlanda) está em fase beta. Em relação à disponibilidade, independente da região, relatórios exibidos no próprio site garantem que o Uptime nos últimos 12 meses tem sido sempre superior a 99%.

Arquitetura do Heroku – Apresentando os Dynos

Diferente de um serviço IaaS, que provê ao cliente uma máquina inteira para que ele configure os serviços e instale seu aplicativo, o Heroku, assim como os demais serviços PaaS, disponibiliza um ambiente de execução de aplicações. Este tipo de solução abstrai do cliente detalhes do sistema operacional como bibliotecas, serviços de startup, gestão de memória, sistema de arquivos, entre outros, provendo uma maneira muito mais simples e prática de subir e escalar as aplicações.

Cada fornecedor dá um nome para este tipo de ambiente de execução. Na Amazon, por exemplo, ele é chamado de instância, no OpenShift, de gear, e no Heroku, temos os dynos. Os dynos são definidos como containers leves que permitem que o desenvolvedor execute sua aplicação em um ambiente isolado e seguro.

As aplicações criadas para rodar no Heroku podem ser compostas por vários dynos. De acordo com a tarefa que realizam, os dynos podem ser classificados em três tipos:

· Web Dynos: Responsáveis por receber e atender as requisições web. Cada aplicação pode ter no máximo um dyno desse tipo;

· Worker Dynos: Executam tarefas em background, sendo recomendado para processamentos mais pesados. Cada aplicação pode ter vários dynos do tipo worker;

· One-Off Dynos: São criados apenas para uma tarefa eventual e logo são destruídos. Um exemplo clássico é a leitura de logs da aplicação.

As aplicações normalmente contam com um web dyno e opcionalmente workers dynos. Eventualmente é necessário executar uma tarefa específica, então lançamos mão dos one-off dynos. Em relação ao porte dos dynos, temos apenas duas opções com variações de CPU e quantidade de memória. Os números estão dispostos na Tabela 1.

" [...]

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?