Mentoring:Atualmente é um fato que a Cloud Computing representa o presente e o futuro dos ambientes de execução de software, porém, para explorar todos os seus diferenciais, precisamos rever alguns conceitos relacionados à forma como implementamos nossas aplicações e assim aumentar a eficiência das mesmas nesse ambiente. Com base nisso, neste artigo apresentaremos uma aplicação corporativa que não foi planejada nem desenvolvida para a nuvem e ensinaremos como migrar o serviço JMS dessa aplicação para a nuvem pública da Amazon, a AWS (Amazon Web Services), quando aprenderemos, também, a utilizar o serviço de mensageria SQS (Simple Queue Service).

Definitivamente, Cloud Computing deixou de ser apenas uma tendência e tornou-se um padrão de uso de recursos computacionais de escala mundial. Diretamente relacionado ao crescimento exponencial dessa tecnologia, temos o crescimento das startups nos últimos anos, o que seria mais difícil de alcançar sem as facilidades e o baixo custo da computação em nuvem, que reduz consideravelmente o “time-to-market” de um software e permite que empresas com poucos recursos escalem suas aplicações conforme a demanda por elas aumente.

No entanto, para desenvolver um software que seja escalável e eficiente para esse ambiente, precisamos atentar para a forma como a nuvem opera, os serviços que ela oferece, o custo dos mesmos e nos livrar de paradigmas antigos de desenvolvimento, que nos serviram muito bem até agora, mas que precisam ser deixados de lado para que nossas aplicações sejam realmente competitivas em um ambiente cloud.

Para quem iniciou no desenvolvimento de software recentemente, já entrou no mercado na “era” cloud. Consequentemente, já adota (ou deve adotar), naturalmente, práticas que são mais adequadas ao deploy na nuvem, algumas vezes até mesmo sem saber disso, pois apenas são direcionados ou condicionados pelo serviço de nuvem que estão utilizando. Porém, desenvolvedores que fizeram carreira nas empresas criando aplicações corporativas devem se atentar a esse novo modelo, principalmente porque estamos vivendo um momento no qual as empresas estão iniciando sua jornada (termo utilizado para migração) para a nuvem. Dentro desse contexto de mudanças de paradigma, aplicações legadas são um grande desafio para a cloud, pois são menos eficientes do que aplicações que foram criadas para ela, já que essas últimas se aproveitam dos benefícios ofertados pelos provedores de computação na nuvem.

Neste artigo iremos falar sobre computação em nuvem, seus benefícios e como construir aplicações mais aderentes ao seu modelo, principalmente nos concentrando no mundo das aplicações Java Enterprise Edition. Como exemplo, iremos implementar uma aplicação que utiliza um serviço de fila local de um container Java EE, demonstrar como substituí-lo por um serviço de fila de um provedor de nuvem e abordar os ganhos que temos ao realizar essa atualização.

Antes disso, no entanto, vamos nos aprofundar sobre os modelos de deploy e as diferenças entre eles, iniciando com uma breve introdução sobre computação em nuvem.

Computação em Nuvem

O Gartner define computação em nuvem como um estilo de computação onde a TI escalável e elástica é entregue como serviço usando tecnologias da internet. Em outras palavras, computação em nuvem pode ser definida como um conjunto de serviços de tecnologia, inclusive computação propriamente dita, ofertado de uma forma que você paga pelo que usar, quando usar e se usar. Fazendo uma analogia com nosso cotidiano, podemos comparar a oferta de computação em nuvem com a energia elétrica. Não precisamos ter em nossas casas ou empresas uma usina de geração de energia elétrica. Basta conectar os aparelhos na tomada e consumir a energia no período que desejarmos. A computação em nuvem é similar. Ao invés de manter um parque de máquinas e pessoas qualificadas para manter esse parque em nossas casas ou empresas, basta conectarmos nossas máquinas à internet e aos serviços de nuvem e utilizar a computação, rede, banco de dados, filas, caches e tantos outros serviços que os diversos provedores oferecem, pagando apenas por aquilo que utilizarmos. Como esperado, isso reduz consideravelmente o custo de infraestrutura de software e em alguns casos até mesmo possibilita o que antes era inviável financeiramente.

Provedores de computação em nuvem

A AWS (Amazon Web Services) é a pioneira nos serviços de computação em nuvem. Em c ...

Fim do trecho gratuito • continue abaixo
CONTEÚDO EXCLUSIVO

Desbloqueie toda a DevMedia

  • +2000 artigos e vídeos
  • +40 trilhas sobre Front-end, Back-end, IA e muito mais
  • +5000 exercícios práticos
  • Mentorias ao vivo individuais
até 50% OFF
A partir de
R$ 69 /mês
Assinar agora