AMAZON WEB SERVICES • Começou a atuar no ramo de computação em nuvem em 2006. • Provê serviços de infraestrutura de TI. • Fornece estes serviços a preços competitivos. • Utilizada por milhares de empresas em 190 países. • Possui servidores no Japão, EUA, Europa e Cingapura. • Sua segurança é garantida pela iso 27001, dentre outras normas. SERVIÇOS OFERECIDOS • Elastic Compute Cloud (EC2) • Identity and Access Management (IAM) • Relational Database Service (RDS) • Simple Notification Service (SNS) • Simple Storage Service (S3) • Simple E-mail Service (SES) • Virtual Private Cloud (VPC) • Route 53 • Cloud Watch • DynamoDB • Elastic MapReduce • Storage Gateway • CloudFront • Simple Workflow Service (SWF) • CloudFormation • CloudSearch • ElastiCache • SimpleDB • Simple Queue Service (SQS) SUPORTE ATUAL • • • • • • • LINGUAGENS Java PHP (recente) Ruby Python (recente) Windows e .NET (5 dias) Celular (Android e iOS) • BANCO DE DADOS • MySQL (5.1.45 a 5.5.8) • Oracle (se, se1, ee) • SQL Server (ex, web, se, ee) PLUGIN DO AWS PARA ECLIPSE CONSOLE DO AWS AMAZON COMPUTE CLOUD (EC2) AMAZON RELATIONAL DATABASE (RDS) AMAZON RELATIONAL DATABASE (RDS) AMAZON RELATIONAL DATABASE (RDS) AMAZON SIMPLE STORAGE SERVICE (S3) APLICAÇÃO DE EXEMPLO • • • • • Sistema de Biblioteca Simplificado Opção de Consultar Livros Por Título Integração com o EC2 Integração com o RDS Integração com o S3 • O que será explorado? • Como o sistema é executado localmente? • Código local • Banco local • Processo de implantação local • Como o sistema é implantado na nuvem? • Código na nuvem • Banco na nuvem • Processo de implantação na nuvem ORGANIZAÇÃO LOCAL DA APLICAÇÃO BOOKS ESTRUTURA DO PROJETO LOCAL INTERFACE WEB INTERFACE WEB INTERFACE WEB INTERFACE WEB BANCO DE DADOS LOCAL BANCO DE DADOS LOCAL BANCO DE DADOS LOCAL http://www.heidisql.com/ BANCO DE DADOS LOCAL http://www.heidisql.com/ CLASSE CONSULTA CLASSE CONSULTA (CONTINUAÇÃO) IMAGENS • As imagens utilizadas na versão local são armazenadas no sistema de arquivos do computador. • Cara livro possui uma capa associada. • Os arquivos das capas podem ser salvos dentro de um pacote do projeto. • São aceitas imagens do tipo .JPG. COMO FAZER PARA COLOCAR NA NUVEM? PASSO A PASSO: 1. Criar o banco de dados na nuvem (MySQL). 2. Restaurar os dados no banco de dados na nuvem (tabela ‘books’). 3. Criar um bucket de armazenamento na nuvem (para as imagens). 4. Fazer as alterações necessárias na aplicação (para acessar imagens e banco de dados na nuvem). 5. Gerar um novo arquivo .WAR. 6. Implantar o arquivo .WAR no Tomcat da nuvem. 7. Dar permissão de acesso no banco para a instância contendo o Tomcat. 8. Dar permissão de acesso nos arquivos para a aplicação. PASSO 1: CRIAR O BANCO DE DADOS NA NUVEM PASSO 1: CRIAR O BANCO DE DADOS NA NUVEM PASSO 1: CRIAR O BANCO DE DADOS NA NUVEM PASSO 1: CRIAR O BANCO DE DADOS NA NUVEM PASSO 1: CRIAR O BANCO DE DADOS NA NUVEM PASSO 1: CRIAR O BANCO DE DADOS NA NUVEM PASSO 1: CRIAR O BANCO DE DADOS NA NUVEM PASSO 2: RESTAURAR O BANCO DE DADOS NA NUVEM PASSO 2: RESTAURAR O BANCO DE DADOS NA NUVEM PASSO 3: CRIAR UM BUCKET DE ARMAZENAMENTO NA NUVEM (PARA AS IMAGENS). PASSO 4: FAZER AS ALTERAÇÕES NECESSÁRIAS NA APLICAÇÃO PASSO 4: FAZER AS ALTERAÇÕES NECESSÁRIAS NA APLICAÇÃO PASSO 4: FAZER AS ALTERAÇÕES NECESSÁRIAS NA APLICAÇÃO PASSO 5: GERAR UM NOVO ARQUIVO .WAR PASSO 6: IMPLANTAR O ARQUIVO .WAR NO TOMCAT DA NUVEM. PASSO 6: IMPLANTAR O ARQUIVO .WAR NO TOMCAT DA NUVEM. PASSO 6: IMPLANTAR O ARQUIVO .WAR NO TOMCAT DA NUVEM. PASSO 7: DAR PERMISSÃO DE ACESSO NO BANCO PARA A INSTÂNCIA CONTENDO O TOMCAT. PASSO 8: DAR PERMISSÃO DE ACESSO NOS ARQUIVOS PARA A APLICAÇÃO. PASSO 8: DAR PERMISSÃO DE ACESSO NOS ARQUIVOS PARA A APLICAÇÃO. EXECUTANDO TESTE FINAL CONCLUSÃO • Para implantar uma aplicação já existente na nuvem são necessárias algumas alterações, dependendo dos serviços que serão utilizados. • É importante atentar para detalhes de implementação que são específicos de plataforma, como ‘/’ e ‘\’ nos caminhos do SO. • Permissões devem ser gerenciadas com atenção para garantir que as diferentes partes da aplicação se comuniquem. • É interessante utilizar ferramentas que provêem interface gráfica pois trabalhar em linha de comando na nuvem não é tão simples. • Há várias bibliotecas que devem ser adicionadas como dependência de um projeto a ser rodado na nuvem, isso aumenta muito o seu tamanho. • Após atentar para todos os detalhes, a aplicação implantada na nuvem pode ser acessada de qualquer lugar, através de um navegador.