AWS: Leve sua aplicação para a Nuvem em minutos

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
 (11)  (0)

Este artigo apresenta de forma didática como utilizar recursos da AWS (Amazon Web Services) e como aproveitar toda a sua capacidade e elasticidade por meio de diversos serviços, entre eles o Elastic Beanstalk e o Elastic Load Balancing.

Artigo do tipo Tutorial
Recursos especiais neste artigo:
Artigo no estilo Solução Completa
Autores:Ari Dias Neto e José Papo
Leve sua aplicação para a nuvem em minutos
Este artigo apresenta de forma didática como utilizar recursos da AWS e como aproveitar toda a sua capacidade e elasticidade por meio de diversos serviços, entre eles o Elastic Beanstalk e o Elastic Load Balancing. O leitor deste texto terá a oportunidade de entender detalhes sobre a implantação de uma aplicação Java em alta disponibilidade e desenvolver componentes importantes e desacoplados, como tabelas editáveis combinadas com serviços RESTful.

Em que situação o tema é útil
O tema analisado neste artigo é fundamental para desenvolvedores que buscam formas de investirem seu tempo e suas habilidades em processos prioritários para as atividades de desenvolvimento em vez de terem que realizar integralmente a configuração de ambientes, como servidores, redes, load balancers e bancos de dados. Além disso, o artigo é orientado aos desenvolvedores que precisam garantir alta disponibilidade às suas aplicações em um ambiente auto escalável e com alta demanda por flexibilidade.

Nos últimos anos temos visto a evolução do conceito de Cloud Computing e como esta definição expande cada vez mais suas fronteiras. Hoje já temos uma série de subclassificações que, individualmente, se materializam em forma de serviços, por exemplo: IaaS – Infrastructure as a Service, PaaS – Platform as a Service, SaaS – Software as a Service, STaaS – Storage as a Service, NaaS – Network as a Service, entre outros.

Uma das características destes serviços é a elasticidade, ou seja, a alocação dinâmica de recursos computacionais baseada na demanda da aplicação. Com a elasticidade, você consegue responder prontamente ao aumento súbito de requisições, alocando novos servidores automaticamente. Além disso, diminui drasticamente o risco de indisponibilidade por falha e mantém o tempo de resposta da aplicação mais estável.

Outro benefício da elasticidade, é que você não precisa investir antecipadamente em uma infraestrutura que será necessária apenas em alguns momentos de pico. O gráfico da Figura 1 mostra uma comparação entre o uso otimizado de recursos versus o modelo tradicional de investimentos antecipados.

Figura 1. Comparação entre uso de recursos sob demanda versus antecipados.

Os desenvolvedores também foram beneficiados com este novo modelo. As ofertas de plataformas para implantação de sistemas (PaaS), automatizadas e parametrizadas, dão flexibilidade e velocidade na criação dos ambientes usuais de projetos, como os de testes, homologação ou produção. A grande vantagem é que os desenvolvedores não precisam mais instalar sistemas operacionais, configurar servidores, redes, load balancers, ou seja, cuidar de todo o ambiente que envolve a aplicação. Como a plataforma está totalmente disponível em forma de serviço, o único foco do time de desenvolvimento será a própria aplicação, o que reduz o custo do projeto, uma vez que toda a operação de TI que estava envolvida na implantação, alocação e gestão de ambientes, agora é fornecida como serviço.

Neste artigo vamos focar na oferta de plataforma da Amazon Web Services (AWS), chamada de Elastic Beanstalk. Este serviço não exige nenhum uso de API específica ou qualquer outra personalização da sua aplicação, o que facilita a adoção por aplicações já existentes. Para demonstrar seus recursos criaremos uma aplicação Web e a tornaremos totalmente elástica, ou seja, baseado em métricas previamente estabelecidas, a quantidade de servidores poderá aumentar ou diminuir para atender o novo volume de requisições. Desta maneira, para testar a elasticidade da plataforma, simularemos um comportamento aleatório de acessos, com picos de requisições. Feita a simulação, novos servidores serão instanciados automaticamente e depois, quando o volume de requisições cair, deverão ser finalizados de maneira transparente.

Além do Elastic Beanstalk, também usaremos um outro serviço da AWS, o Elastic Load Balancing. Este serviço será usado para fazer a distribuição de carga entre os servidores, ou seja, distribuir as requisições dos usuários pelos servidores da aplicação. Esse serviço é muito importante para a nossa aplicação, já que a quantidade de servidores irá variar em períodos de pico. Sendo assim, novos servidores estarão disponíveis para responder as requisições e o loadbalancer deve ser inteligente para adicioná-los à lista de servidores disponíveis, assim como removê-los quando eles não mais estiverem em funcionamento.

Como dito, criaremos uma aplicação para testar estes recursos. Ela terá apenas uma lista de funcionários tabelada e permitirá a edição dos dados na própria tabela. Esta tabela editável de funcionários será construída com o framework JavaScript ExtJS 4 e será totalmente desacoplada do servidor, sendo alimentada apenas por serviços RESTful.

Do lado do servidor, criaremos os serviços RESTful utilizando a implementação do JAX-RS chamada Jersey. Como banco de dados, usaremos outra oferta da Amazon Web Services, chamada RDS (Relational Database Service). Assim, a criação e a configuração do banco de dados também serão delegadas à plataforma, novamente fazendo com que o time de desenvolvimento possa se dedicar a outras responsabilidades. Discutiremos em mais detalhes cada um dos serviços ao longo do artigo e todo o conteúdo desenvolvido estará disponível no site da Java Magazine.

Vale ressaltar que para a maioria dos serviços da AWS existe uma faixa de uso que garante gratuidade pelo período máximo de um ano, contando da data de criação da conta. Para entender mais sobre esta faixa de serviços gratuitos, acesse o endereço na seção de referências.

Preparando o ambiente

Para construir a aplicação usaremos a IDE Eclipse com o plugin AWS Toolkit for Eclipse. Você pode baixar a última versão do Eclipse a partir do endereço indicado na seção Links. Para instalar o plugin da AWS, acesse o menu Help | Install New Software, de dentro da IDE. Feito isso, informe o endereço http://aws.amazon.com/eclipse no campo Work with e tecle Enter. Em seguida selecione a opção AWS Toolkit for Eclipse, conforme a Figura 2, e siga até o final do processo de instalação. Logo após, reinicie o Eclipse.

abrir imagem em nova janela

Figura 2. Instalando o AWS Toolkit for Eclipse

Após instalar o plugin e reiniciar o Eclipse, acesse o menu Window | Show View > Other, e escolha a opção AWS Explorer, como mostra a Figura 3.

Figura 3. Exibindo o AWS Explorer.

Esta visualização dará acesso aos serviços da AWS, porém você precisará de uma conta. Para se registrar, realize os passos a seguir:

"

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?