Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cloud & AWS: Da teoria à prática

1,403 views

Published on

Palestra sobre Cloud Computing & Amazon Web Services

Published in: Technology

Cloud & AWS: Da teoria à prática

  1. 1. Cloud & AWS: Da teoria à prática
  2. 2. Agenda: ● O que é Computação em Nuvem ● Tipos: Pública, Privada e Híbrida ● Pilares da Computação em Nuvem ● Vantagens & Desvantagens [?] ● Modelo em Camadas ● Hypervisor, Virtualização Full e Paravirtualização ● Infraestrutura AWS ● Segurança AWS ● Serviços AWS ● Demo EC2 ● Demo Beanstalk
  3. 3. # whoami · Tecnólogo em Redes de Computadores - Senac/RJ · Administrador de sistemas, Consultor de TI, Evangelista da cultura DevOps e Entusiasta de Tecnologias Cloud. # work · Opera (Bemobi) · Peixe Urbano · Urbi Network · Passei Direto · Azul Seguros · Zoop Payments · Globo.com · TV Globo · ResolveAí · Equinix Datacenters · Orga Systems · Rimu Hosting # which ricardo Blog: http://www.ricardomartins.com.br Twitter: @ricardommartins Email: contato@ricardomartins.com.br
  4. 4. O que é Computação em Nuvem “É um estilo de computação onde recursos de TI escaláveis e elásticos são fornecidos como um serviço usando tecnologias de rede e/ou Internet.” Gaertner
  5. 5. - Processamento - Armazenamento - Software
  6. 6. Tipos: Pública, Privada e Híbrida
  7. 7. Pilares da Computação em Nuvem ● Pay as you go: Pague pelo que usar; ● Flexibilidade: Você não está limitado à um modelo específico de recurso; ● Elasticidade: Capacidade de provisionar e desprovisionar rapidamente grandes quantidades de recursos em tempo de execução; ● Escalabilidade: Dimensione de acordo com a demanda; ○ Vertical : Adição de recursos (memória, cpu, disco) em uma infraestrutura existente; ○ Horizontal: Adição de novos componentes de maneira transparente ao lado de componentes já existentes. ● Confiabilidade: Segurança e Alta Disponibilidade.
  8. 8. Vantagens & Desvantagens ● Vantagens: ○ Acesso independente de SO do usuário; ○ Centralização de recursos; ○ Acesse de qualquer lugar; ○ Controle de gastos; ○ Sem elevado custo inicial de investimento; ○ Rapidez na implementação; ○ Facilidade de integração; ○ Sem custo de manutenção/infraestrutura (nobreaks, ar-condicionado, atualizações de firmware).
  9. 9. Vantagens & Desvantagens ● Desvantagens: ○ Dependência de Internet; ○ Latência dependendo da conexão; ○ Preços em dólar
  10. 10. Modelo em Camadas IaaS PaaS SaaS Abstração Controle
  11. 11. Modelo em Camadas SaaS (Software as a Service) O cliente utiliza aplicativos criados pelo provedor e que são executados em uma infraestrutura em nuvem. - Gmail, GoogleDocs; - Heroku; - Sales Force; - Office 365; - Dropbox.
  12. 12. Modelo em Camadas PaaS (Platform as a Service) O cliente pode desenvolver aplicações próprias a partir das ferramentas disponibilizadas pelo provedor. Não administra ou controla a infraestrutura na nuvem, mas pode controlar o seu ambiente de desenvolvimento e os seus aplicativos. - Google App Engine; - AWS Elastic Beanstalk; - Cloud Foundry; - Tsuru (Globo.com); - OpenShift (Redhat).
  13. 13. Modelo em Camadas IaaS (Infrastructure as a Service) O cliente pode criar suas instâncias, configurar recursos como armazenamento, memória, processadores, tráfego, rede, load balancers. Além disso possui controle sobre os sistemas operacionais e aplicativos instalados. - Amazon AWS; - Azure; - Rackspace; - Cloudstack; - Digital Ocean; - Openstack.
  14. 14. Recapitulando
  15. 15. Recapitulando Aplicação Plataforma Infraestrutura Virtualização Servidor Servidor Servidor Storage Storage
  16. 16. Recapitulando Aplicação Plataforma Infraestrutura Virtualização Servidor Servidor Servidor Storage StorageVirtualização não é Computação em Nuvem
  17. 17. Hypervisor, Virtualização Full e Paravirtualização Hypervisor (ou Virtual Machine Monitor) é a camada de software/hardware que permite a execução concorrente de vários sistemas operacionais em um mesmo computador. É responsável pelo controle da execução das máquinas virtuais e também funciona como um mediador entre os dispositivos virtuais e o hardware, como por exemplo transações de I/O. Para isto precisa ter controle sobre o processador e sobre o resto do hardware. Existem dois tipos de Hypervisors: ● Tipo 1, também chamado de nativo ou “bare-metal”; ● Tipo 2, também chamado de hospedado (hosted em inglês).
  18. 18. Tipo 1: Nativo Bare-metal é o termo dado a execução de software diretamente sobre o hardware, sem nenhuma outra camada de software. O Hypervisor tem controle total sobre o processador e o resto do hardware. Exemplos: VMware ESXi, o Xen e o KVM (Kernel-based Virtual Machine) que são Kernels Linux modificados para trabalhar como Hypervisors.
  19. 19. Tipo 2: Hospedado Este tipo de Hypervisor é executado como um software sobre um sistema operacional normal chamado de hospede. Logo, nesta situação o Hypervisor tem controle limitado sobre o hardware. Exemplos: VirtualPC, VMware Player/Fusion/Workstation, Parallels Desktop/Workstation, VirtualBox, dentre vários outros.
  20. 20. ● Paravirtualização Um Hypervisor Tipo-1 interage de uma forma mais eficiente com o sistema que roda na máquina virtual pois ela sabe que está rodando em um ambiente virtualizado. O sistema operacional precisa ser modificado para ser compatível com a paravirtualização. Caso contrário, a emulação tem que entrar em cena, penalizando a performance. Na paravirtualização o hypervisor funciona como uma API, uma interface, para que o sistema operacional guest tenha acesso ao hardware. Maior performance ● Virtualização Full Um Hypervisor Tipo-2 emula o hardware para as máquinas virtuais. Assim o sistema operacional guest é executado de forma isolada. O sistema operacional da máquina virtual não sabe que está rodando em um ambiente virtualizado e tudo o que ele precisa são os device drivers para os dispositivos que o hypervisor emula. A grande vantagem da Virtualização “Full” é a compatibilidade com qualquer sistema operacional que rode no hardware emulado (sem a necessidade de alterações para ter ciência que roda em uma máquina virtual). Menor performance
  21. 21. Infraestrutura AWS A AWS fornece uma coleção de serviços de infraestrutura
  22. 22. Infraestrutura AWS Regiões de Infra Pontos Edge
  23. 23. Infraestrutura AWS ● Região: Regiões demográficas distribuídas ao redor do mundo. ● Pontos Edge: Pontos de presença utilizados com objetivo de reduzir a latência para usuários finais. Ex.: Route53 e CloudFront ● Zonas de disponibilidade: Grupos de datacenters distintos dentro das regiões com distância de centenas de kilômetros entre eles.
  24. 24. Infraestrutura AWS
  25. 25. Infraestrutura AWS
  26. 26. Infraestrutura AWS
  27. 27. Segurança AWS Segurança compartilhada
  28. 28. Segurança AWS ● IAM ● ACL ● NACL ● Security Groups ● VPC
  29. 29. ● Serviços de Infraestrutura em Nuvem ○ Computação ○ Armazenamento e entrega de conteúdo ○ Banco de dados ○ Redes ● Serviços de Plataforma em Nuvem ○ Análise de dados ○ Serviços empresariais ○ Serviços móveis ○ IoT ● Serviços de aumento de produtividade no desenvolvimento e eficiência operacional ○ Ferramentas para desenvolvedores ○ Ferramentas de gerenciamento ○ Segurança e Identidade ○ Serviços para aplicações Serviços AWS
  30. 30. Computação ● Servidores Virtuais ○ Amazon EC2: Servidores virtuais na nuvem ● Servidores Físicos ○ Servidores físicos para uso exclusivo ● Contêineres ○ Amazon EC2 Container Service: Serviço escalável de gerenciamento de contêineres ○ Amazon EC2 Container Registry: Serviço de registro de conêineres para armazenamento, gerenciamento e implementação de imagens Docker, similar ao Docker Hub.
  31. 31. Computação ● Implantação de aplicativos web 1-Clique ○ AWS Elastic Beanstalk: O PaaS da AWS para implementação e gerenciamento de aplicativos Web. Envie seu código e ele se encarrega da implementação, provisionamento, escalabilidade, balanceamento e até o monitoramento do aplicativo. Funciona de forma bem similar ao Heroku, BlueMix, Modulus. ● Funções de computação orientadas a eventos ○ AWS Lambda: Execute seu código em resposta a eventos. É uma ferramenta para execução de JavaScript como serviço. ● Auto Scaling ○ AWS Auto Scaling: Elasticidade automática
  32. 32. Armazenamento e entrega de conteúdo ● Armazenamento de objetos ○ Amazon S3: Armazenamento escalável de objetos na nuvem com suporte à versionamento e ciclo de vida. Durabilidade de 99,999999999% e SLA de disponibildiade de 99,99% ● Armazenamento em bloco ○ Amazon EBS: Volumes de armazenamento em bloco do EC2 ● Armazenamento do sistema de arquivos ○ Amazon Elastic File System: Sistema de arquivos totalmente gerenciado para EC2 ● Armazenamento de arquivos mortos ○ Amazon Glacier: Armazenamento de arquivos com baixo custo na nuvem ($ 0,007/GB - S3: $ 0,012/GB ). Usado para fazer backup dos seus backups no S3.
  33. 33. Armazenamento e entrega de conteúdo ● Armazenamento integrado ○ AWS Storage Gateway: Integração de armazenamento híbrido. É como ter o S3 fazendo parte de sua rede corporativa. Você faz o download de uma máquina virtual que funciona como um storage de fitas DAT. É um Virtual Tape Library configurado no seu vCenter onde os dados são enviados ao S3, deixando uma reserva com os mais acessados em um cache local. ● Transporte de Dados ○ AWS Import/Export Snowball: Solução de transporte de dados em escala de petabytes. A amazon disponibiliza dispositivos para o transporte de dados até o datacenter deles. ● CDN ○ Amazon CloudFront: Rede de distribuição de conteúdo global
  34. 34. Banco de Dados ● Relacional ○ Amazon RDS: Serviço de banco de dados relacional gerenciado para MySQL, MariaDB, Postgres, Oracle, SQL Server e Amazon Aurora ● NoSQL ○ Amazon DynamoDB: Database NoSQL similar ao MongoDB para armazenamento de estruturas de dados e documentos chave-valor rápido, previsível e altamente escalável. ● Armazenamento em cache ○ Amazon ElastiCache: Serviço de armazenamento de cache em memória similar ao Memcached/Redis. ● Data Warehouse ○ Amazon Redshift: Serviço de data warehouse em escala de petabyte.
  35. 35. Banco de Dados ● Migração de Databases ○ AWS Database Migration Service: Serviço para ajuda na migração de bancos de dados para a nuvem da AWS, realizando conversão de código e de schema para migrações entre mecanismos distintos. Como exemplo, permite migrar um banco de dados de 1TB por 3 dólares.
  36. 36. Redes ● Virtual Private Cloud ○ Amazon VPC: Recursos de nuvem isolados. Pode ser compreendido como seu rack de servidores na AWS. ● Conexões diretas ○ AWS Direct Connect: Conexão de rede dedicada à AWS ● DNS ○ Amazon Route 53: Domain Name System escalável. Suporta uso de healthchecks, roteamento por latência (geo-localidade), round-robin baseado em peso, etc. ● Balanceamento de carga ○ Elastic Load Balancing: Balanceamento de carga em alta escala
  37. 37. Análise de dados ● Hadoop ○ Amazon EMR (Elastic Map Reduce): Estrutura de Hadoop hospedada da AWS. ● Streaming de Dados ○ Amazon Kinesis: Processamento de fluxo de dados em tempo real. Você usa para inserir grandes quantidades de dados de forma muito rápida (analytics, transações financeiras, logs) e depois utilizar outros serviços da AWS para analisar estes dados. Similar ao Apache Kafka. ● Aprendizagem de máquina ○ Amazon Machine Learning: Aprendizagem de máquina para desenvolvedores. O "skynet" da AWS usado para prever o comportamento futuro de dados.
  38. 38. Análise de dados ● Data Warehouse ○ Amazon Redshift: Serviço de armazenamento de dados em escala de petabyte ● Pipelines de dados ○ AWS Data Pipeline: Serviço de orquestração para fluxos de trabalho periódicos e direcionados a dados. É o serviço de ETL (Extract, Transform, Load) da Amazon. ● Business Intelligence ○ Amazon QuickSight: Ferramenta de BI como serviço. ● Elasticsearch ○ Amazon Elasticsearch Service: Serviço que simplifica o deploy, operação e escala do ElasticSearch na nuvem da AWS. O ElasticSearch é um motor de busca e analytics opensource usado para análise de logs e monitoramento de aplicações em tempo real, etc.
  39. 39. Serviços Empresariais ● Desktops ○ Amazon Workspaces: Provisionamento/Virtualização de desktops em nuvem. ● Email ○ Amazon WorkMail: Serviço de Email e Calendário. ● Compartilhamento de Documentos ○ Amazon WorkDocs: Serviço de compartilhamento de documentos.
  40. 40. Serviços móveis ● Identidade ○ Amazon Cognito: Identidade de usuário gerenciada. É um serviço de OAuth como serviço similar ao OAuth.io por exemplo. ● Teste de aplicativos ○ AWS Device Farm: Teste de aplicativos na nuvem. ● Mobile Analytics ○ Amazon Mobile Analytics: Dados analíticos rápidos e seguros sobre o comportamento e uso de aplicativos. ● Desenvolvimento ○ AWS Mobile SDK: Kit de desenvolvimento de software móvel ○ AWS Mobile Hub: Construa, teste e monitoramento de apps móveis. Permite adicionar e configurar recursos como autenticação, armazenamento de dados, lógica backend, push notifications e entrega de conteúdo em um único console, sem preocupação com provisionamento, dimensionamento e gerência de infraestrutura.
  41. 41. IoT ● Internet das Coisas ○ Amazon IoT: Conecte dispositivos à Cloud. Permite a interação de dispositivos conectados com aplicativos na nuvem e com outros dispositivos.
  42. 42. Ferramentas para desenvolvedores ● Gerenciamento de código fonte ○ AWS CodeCommit: Armazene e versione código em repositórios Git privados ● Implantação de código ○ AWS CodeDeploy: Automatize implantações de código. Similar ao Fabric e Capistrano. ● Distribuição contínua ○ AWS CodePipeline: Faça o lançamento de softwares usando a distribuição contínua. Permite a execução de testes automatizados em seu código e então tomar ações baseado no resultado dos testes. É similar ao CircleCI, Travis;
  43. 43. Ferramentas de gerenciamento ● Monitoramento e logs ○ Amazon CloudWatch: Monitore recursos e aplicações. Similar ao PagerDuty, Statuspage e Pingdom. ● Modelos de recursos ○ AWS CloudFormation: Crie e gerencie recursos com modelos JSON. ● Auditoria de uso e recursos ○ AWS CloudTrail: Rastreie atividades de usuário e uso de APIs ○ AWS Config: Rastreie inventário e alterações de recursos, além de assegurar que EBS estejam criptografados, recursos identificados com tag’s, etc. ● Gerenciamento de recursos Dev/Ops ○ AWS OpsWorks: Automatize operações usando o Chef ● Catálogo de serviços ○ AWS Service Catalog: Crie e use produtos padronizados. Permite implantar um portal de autoatendimento de seriços AWS para seus usuários com suporte a controle de versões e configurações, permissionamento de uso, etc.
  44. 44. Ferramentas de gerenciamento ● Otimização de segurança e desempenho ○ Trusted Advisor: Otimize o desempenho, segurança e custos.
  45. 45. Segurança e Identidade ● Gerenciamento de identidades ○ AWS Directory Service: Hospede e gerencie o Active Directory ou Samba na AWS. ● Controle de acesso ○ AWS Identity and Access Management (IAM): Gerencie o acesso de usuários, chaves de criptografia, certificados SSL e políticas de acesso. ● Gerenciamento e armazenamento de chaves ○ AWS CloudHSM: Armazenamento de chaves baseado em hardware para conformidade normativa ○ AWS Key Management Service: Criação e controle gerenciados de chaves de criptografia
  46. 46. Segurança e Identidade ● Firewall de Aplicações Web ○ AWS WAF: Auxilia na proteção de sites e aplicações web servidas via Cloud Front através de ACL's que definem os tipos de requisições (HTTP e HTTPS) permitidas ou não. Faz filtro de tráfego mal intencionado como SQL Injection, scripting e outras ameaças. ● Avaliação de Segurança ○ Amazon Inspector: Análise e segurança de aplicativos procurando por vulnerabilidades e desvios de práticas recomendadas, com geração de relatório detalhado com informações para correção.
  47. 47. Serviços para aplicações ● Filas ○ Amazon SQS: Serviço de enfileiramento de mensagens/dados para processamento futuro. Similar ao RabbitMQ, ActiveMQ, ZeroMQ, SideKiq. ● Fluxo de trabalho ○ Amazon SWF: Serviço de fluxo de trabalho para coordenar componentes/tarefas em background de aplicações similar ao Iron.io ● Streaming de aplicativos ○ Amazon AppStream: Streaming de aplicações de baixa latência via Internet. Distribua aplicativos Windows para qualquer dispositivo e acesse remotamente. Funciona como uma ferramenta para virtualização de aplicações.
  48. 48. Serviços para aplicações ● Transcodificação ○ Amazon Elastic Transcoder: Transcodificação de mídia na nuvem totalmente escalável. ● E-mail ○ Amazon SES: Serviço de envio de e-mails. Usado para envio de emails transacionais, mensagens de marketing, boletins, alertas. ● Notificações ○ Amazon SNS: Notificações, atualizações e promoções da plataforma via push notification, email, sms. Similar ao UrbanAirship e Twilio. ● Gerenciamento de API ○ Amazon API Gateway: Gerenciamento de backend. Permite a criação, publicação, gerenciamento e monitoramento de APIs para suas aplicações.
  49. 49. Serviços para aplicações ● Pesquisa ○ Amazon CloudSearch: Serviço de pesquisa gerenciada. Usado como ferramenta de busca full-text em sites ou apps.
  50. 50. Demo EC2 ● https://console.aws.amazon.com/console/home ● Criando uma EC2 ● Configurando Security Group ● Instalação de insumos para teste ● Criação de AMI ● Terminate na Instância Original ● Criação de Load Balancer ● Apontar domínio para ELB (www > Tipo A · Alias > ELB) ● Configuração de Launch Configuration
  51. 51. Demo EC2 ● Configuração de Auto Scalling Group (Desired 1, Min 1, Max 2) ○ Subnet 1A / 1B ○ Marcar uso do ELB ○ Policy Up: CPU >= 85 % | 1 período de 1 minuto ○ Policy Down: CPU <= 65 % | 1 período de 1 minuto ○ Health Check Grace 60s ○ Cooldown 30s ● Checar a criação da 1a instância ● Testar acesso pelo endpoint do ELB ● Teste de Auto Scaling (stress -c 5 -i 1 -m 1 --vm-bytes 128M -t 500s) ● Checar a criação da 2s instância
  52. 52. Comandos | UserData #!/bin/bash yum -y install httpd php php-common php-mysql php-gd php-mbstring php-xml php-xmlrpc git stress cd /tmp git clone https://github.com/rmmartins/simple-php-app.git mv simple-php-app/* /var/www/html chown -R apache:apache /var/www/html/ chkconfig httpd on /etc/init.d/httpd start
  53. 53. Demo Beanstalk ● Create application ● Web Server Environment ● PHP / Load Balancing, auto scaling ● Upload https://github.com/rmmartins/simple-php-app ● Ajustar configurações de Scale ● Logar na EC2, instalar o stress, executar (stress -c 5 -i 1 -m 1 --vm-bytes 128M -t 500s) e testar acesso.
  54. 54. Perguntas?!
  55. 55. Obrigado. http://www.ricardomartins.com.br

×