Artigo do tipo Tutorial
Recursos especiais neste artigo:
Contém nota Quickupdate.
Cloud computing em evidência
Os anos mais recentes estão servindo de terreno fértil para a disseminação de novas vertentes de trabalho para a maioria dos profissionais ligados à tecnologia da informação. A abertura de espaços na nuvem vem contribuindo para um verdadeiro êxodo de infraestruturas computacionais privadas e de softwares para o meio da computação em nuvem. Antes, um conceito “nebuloso”, no entanto, desde o início desta década, as empresas e os desenvolvedores independentes já estão traçando seus planos de negócios com visões empreendedoras, agora, rumo a um degrau mais elevado onde se oferta como serviço, a própria plataforma de desenvolvimento de sistemas. Os proveitos técnicos e financeiros têm superado as mais otimistas expectativas e o assunto está sempre na pauta de congressos, publicações, fóruns e eventos da área, podendo-se afirmar, com aceitável convicção, que é chegada a hora e a vez das plataformas como serviço em cloud computing.

Em que situação o tema é útil
Distinguir as inúmeras plataformas como serviço, avaliar e testar as constantes novidades de se programar em cloud computing, além de compreender as vantagens e as limitações deste ambiente, complementam a formação e a prática de qualquer profissional Java. Naturalmente, esta experiência particular fará toda a diferença quando a empresa em que trabalha, ou o seu próprio cliente, adquirir plena consciência da inegável tendência dos negócios de TI rumo à nuvem, exigindo publicações de projetos cada vez mais urgentes, cada vez menos dispendiosos e cada vez mais disponíveis e escaláveis.

A população de São Paulo está estimada em mais de 11 milhões de habitantes, segundo o Instituto Brasileiro de Geografia e Estatística (IBGE) (Links). Para perceber o que levou a cidade a tal condição, seria necessário pesquisar a história desde a sua fundação, há mais de 400 anos, fazendo analogias com a criação dos primeiros núcleos urbanos da Mesopotâmia, há mais de 4.000 anos a.C.. Certamente, em todos os casos, o homem sempre foi movido pela sua inclinação natural de viver em grupos, caracterizados pela colaboração mútua entre os seus membros e pela partilha dos recursos disponíveis. E foi justamente esta tendência humana uma das maiores razões que impulsionou a expansão da civilização, que continua seguindo tendências, muitas delas procurando satisfazer a persistente vocação do ser humano de socialização.

O século XX culminou com a era da informação e da comunicação, tão evidenciada pelo surgimento da internet e, consequentemente, da web. Assim como a formação e o desenvolvimento das cidades, a evolução da web esteve e ainda está orientada a tendências e, a partir de um determinado momento, passou a admitir, encorajar e valorizar a colaboração dos internautas na elaboração dos conteúdos pertencentes às suas aplicações. Foi a cristalização da web 2.0. Na sequência, a web passou a induzir o compartilhamento de recursos computacionais de hardware virtualizados (Infrastructure as a Service – IaaS) e de software (Software as a Service – SaaS), por meio da nuvem de servidores na internet, tal como um modelo descentralizado de computação em grid. Este salto impactou e continua a impactar a forma de trabalhar de todos os envolvidos em TI, levando-os a uma dedicação exclusiva apenas em seus processos de negócio, afastando-se das previstas dores de cabeça originadas pela construção de datacenters e das questões relativas à contratação de pessoal para mantê-los em funcionamento.

De tendência, a incipiente computação em nuvem (cloud computing) aglutinou outras tecnologias (como a Arquitetura Orientada a Serviços, ou Service Oriented Architecture – SOA) e vem transformando-se em uma realidade que começa a ser bem difundida entre as organizações de todo o globo. Neste nível, o compartilhamento de recursos atinge o campo de ação de plataforma como serviço (Platform as a Service – PaaS), oferecendo aos desenvolvedores (inclusive aos da plataforma Java) todo um ambiente remoto (off-premise) necessário ao cumprimento do ciclo de vida de seus projetos, do planejamento à manutenção. O meio corporativo, ao contratar recursos computacionais de armazenamento, memória e processamento – além de softwares, sistemas gerenciadores de banco de dados e demais serviços – diretamente da nuvem, passam a pagar somente pelas cotas que realmente usam desses recursos fornecidos pelos provedores (utility computing), em uma infraestrutura remota, ou nuvem pública. Aqui estão envolvidos conceitos de escalabilidade, elasticidade, virtualização, disponibilidade, balanceamento de carga etc., já publicados em outras edições da revista Java Magazine (em especial, os números 71 e 100).

No Brasil, o investimento em infraestrutura dentro de um firewall local (on-premise) ainda é praticado de forma expressiva, verificado na crescente compra de servidores pelas empresas, levando a um adiamento da possível migração da arquitetura de suas nuvens privadas para as públicas. O nosso caso envolve não somente limitações técnicas, como também certa rigidez inicial das culturas organizacionais, assim como aconteceu na resistência inicial do brasileiro em adquirir produtos e serviços por meio do comércio eletrônico. A desconfiança em manter dados e aplicativos em artifícios estruturais de terceiros ainda é evidente entre as instituições nacionais, mesmo com todas as políticas de segurança e privacidade assinadas pelos provedores de nuvem. Em contrapartida, essas políticas são, em linhas gerais, muito mais eficazes do que aquelas adotadas no interior das próprias corporações.

Uma boa perspectiva para o avanço da computação em nuvem no Brasil é a universalização da banda larga, comprovada pela mais recente pesquisa sobre o uso das tecnologias de informação e comunicação, elaborada pelo Comitê Gestor da Internet no Brasil (CGI.br) (Links). O estudo revela que a conexão via banda larga fixa (por meio das tecnologias a cabo e DSL) é a utilizada por 68% dos domicílios brasileiros com acesso à internet, paralelamente a um claro crescimento da banda larga móvel. Uma conexão com velocidade de download mais elevada seria o primeiro pré-requisito para a utilização dos serviços na nuvem no meio empresarial. Novamente, as estatísticas mostram que as velocidades mais comuns contratadas pelas entidades nacionais estão localizadas no intervalo de 1 Mbps a 10 Mbps, representando 39% do total. Contudo, ainda é muito comum conexões com velocidades máximas para download inferiores a 1 Mbps (33%).

Junto ao cenário apresentado, uma crescente oferta de provedores de serviços na nuvem tem sido disponibilizada ao mercado de TI, vindo de encontro à consolidação do modelo de PaaS. Apesar de haver situações em que a cloud computing não seja a solução mais adequada ao negócio, a gama de possibilidades dedicadas ao desenvolvedor, aliadas a baixos custos, pode ser determinante na escolha por um serviço na nuvem. É uma conduta frequente cada fornecedor prover suas próprias APIs de desenvolvimento, ao lado de opções proprietárias de banco de dados. No entanto, nem sempre, o fato é uma alternativa desejável, por vincular a aplicação em determinada arquitetura, gerando restrições de portabilidade e de interoperabilidade. Isto dificultaria a integração entre sistemas e até mesmo a mudança do aplicativo para outro provedor, ou de ambientes domésticos e híbridos para aqueles terceirizados.

Deste modo, a partir de agora será exposto um estudo comparativo de três soluções de plataformas como serviço que procuram viabilizar uma maior flexibilidade ao desenvolvedor diante do controverso lock-in provocado por tecnologias específicas, certamente não padronizadas. Na diversidade de plataformas emergentes em cloud computing, foram selecionadas a Jelastic, a CloudBees e a Cloud Foundry, por estarem aparelhadas com engrenagens destinadas a hospedar aplicações Java. Ao final, será demonstrado o ciclo de vida completo de um aplicativo Java para a web em um desses provedores, verificando-se a facilidade e a rapidez favorecidas pela hospedagem na nuvem pública.

...
Quer ler esse conteúdo completo? Tenha acesso completo