Save 37% off PRO during our Black Friday Sale! »

BCC Talks - Computação em Nuvem com AWS

BCC Talks - Computação em Nuvem com AWS

0a8f40c6cc23fb6c8aad4de732c5abaf?s=128

Lucas Santos

July 18, 2017
Tweet

Transcript

  1. Computação em nuvem com AWS BCC Talks

  2. Quem sou eu? Lucas Santos 22 anos Software Engineer na

    Tecnologias que uso: @_staticvoid /khaosdoctor lhs.santoss@gmail.com http://lsantos.me
  3. O que é a nuvem?

  4. A nuvem que vemos

  5. “Não existe nuvem nenhuma É só o computador de outra

    pessoa”
  6. A nuvem real é apenas uma rede de computadores How

    does the internet work? http://cege.la/PE7Skr - Redes de Computadores - Comunicação e redes - Teoria dos Grafos
  7. A internet é uma rede de redes Interconnected Networks (Internet)

    Modem Internet Service Provider
  8. Sugestão de leitura Desconstruindo a Web - As tecnologias por

    trás de uma requisição (William Molinari) -> https://goo.gl/x3C8v6
  9. O que é ser escalável?

  10. CPU Baixa CPU Media CPU Alta

  11. Escalabilidade real

  12. Escalabilidade vertical e horizontal Como é possível?

  13. https://goo.gl/JPBKIF

  14. Amazon Web Services

  15. História • Surgiu em oficialmente em 2006 como IaaS •

    Primeiros planos em 2003 • Objetivo original era melhorar infraestrutura da loja • Em 2007 toda a estrutura da Amazon.com foi movida para a AWS • Primeiro serviço: EC2
  16. Principais concorrentes 2011 2011 2012 2010 2010

  17. Principais concorrentes 2012 2011 Apps Pequenas 2011 Apps Médias 2010

    Apps Grandes 2010 Apps Mistas
  18. E toda essa galera

  19. IaaS, PaaS, SaaS

  20. Apps hospedados Ferramentas de dev, gerência de DB, análise de

    negócios Sistemas Operacionais Servidores de Armazenamento Segurança de rede Construção de planta física de data centers
  21. None
  22. Serviços

  23. None
  24. COMPUTE

  25. Servidores Code on Demand

  26. Tipos de instâncias

  27. None
  28. Load Balancing Balanceamento de requisições entre instâncias EC2

  29. Elastic Load Balancer (ELB) Application Load Balancer (ALB) O ALB

    permite ir mais a fundo, utilizando métricas mais avançadas que podem depender de recursos da própria aplicação O ELB permite escalar a quantidade de requisições suportadas pelo servidor baseadas em informações simples (como memória, ou CPU)
  30. Roteamento das requisições para todos os servidores dentro do grupo

    de escalabilidade Auto Scaling Group - Escalabilidade automática AMI AMI AMI AMI
  31. EC2

  32. None
  33. NETWORK

  34. Redes privadas Domínios Máquinas de gateway

  35. STORAGE

  36. Armazenamento de arquivos CDN Dados Frios

  37. DATABASE

  38. Serviço de banco NoSQL Serviço de banco de dados relacional

    Armazenamento em cache
  39. ANALYTICS

  40. Elastic Search Service Stream Workflow

  41. OUTROS

  42. Repositórios GIT privados Integração contínua Automação de shipping Monitoramento de

    API Monitoramento de recursos Consultoria de performance Gera certificados TLS/SSL Jogos baseados em sessões Aparelhos celulares para testes de apps Criação de API’s baseadas no Swagger Conversão de mídia digital para diversos formatos Serviços de MQ
  43. Interfaces de voz e texto Conversão de texto em voz

    Reconhecimento de imagens Automação de infra (IaC) Análise de aplicações distribuídas Integração contínua Wizard de criação de apps
  44. Controle total via API https://github.com/khaosdoctor/bash-AMI

  45. Uma Smart House

  46. Vantagens e Desvantagens • Escalabilidade horizontal é muito cara •

    Processamento é mais caro do que armazenamento • As regras de pagamentos são extremamente confusas • Suporte não incluso • Para o uso 100% eficiente é necessário uma consultoria • Dificuldade em escalar uma máquina verticalmente • Grande capacidade computacional • Serviços maduros • Data centers localizados em muitos locais do globo • Custo razoavelmente baixo para uma aplicação simples • Facilidade de uso • Disponibiliza serviços que estão intrinsecamente conectados • Trial de 1 ano grátis (para alguns serviços)
  47. AWS Calculator -> http://calculator.s3.amazonaws.com/

  48. Ferramentas Úteis • AWS Calculator - Cálculo e estimativas de

    preço • CloudCraft - Modelagem e diagramação • CIDR Calculator - Calcula endereços de CIDR • AWS CLI - Interface de Linha de comando do console
  49. Comunidades de ajuda http://2017.abcdevelopers.org https://trainingcenter.io/

  50. Demo

  51. O que faremos? 1. Criaremos uma app que vai usar

    muito processamento 2. Vamos montar uma estrutura na AWS com escalabilidade 3. Faremos o deploy do app para este servidor 4. Testaremos a escalabilidade em tempo real
  52. O APP Aplicação em PHP para calcular a sequência de

    Fibonacci recursivamente
  53. None
  54. POR QUE FIBONACCI?

  55. É uma das funções recursivas mais exigentes em termos computacionais

  56. Comparação de modelos de algoritmos de Fibonacci

  57. A Infraestrutura Um modelo AWS escalável pequeno

  58. CPU Baixa CPU Media CPU Alta

  59. Etapas: 1. Criar uma máquina nova EC2 2. Instalação Apache

    e PHP 3. Testes unitários 4. Criação da AMI 5. Aplicação em políticas de escalabilidade 6. Criação do Load Balancing
  60. Criando a máquina

  61. Acessando o SSH

  62. Instalando dependências

  63. Configurando

  64. Funcionando

  65. Subindo nosso código

  66. Criando nossa imagem

  67. Balanceamento de carga

  68. Criando nosso controle de escalabilidade

  69. Verificando instancias

  70. Teste de carga

  71. Resultado

  72. Slides https://goo.gl/FivjL7

  73. Perguntas?