RAFAEL NUNES


-Sócio da YaW Tecnologia
-Desenvolvimento em Python e Java principalmente
-Consultoria para o Mercado Financeiro(Q10 Informática)
-Instrutor da Globalcode
-Editor da InfoQ Brasil(www.infoq.com/br)
O QUE NÃO VEREMOS
-   O que é Django
-   O que é Cloud Computing
-   Todos os serviços da Amazon
-   Qual a resposta para a vida, o universo e todas as coisas….
    (R:42)
O QUE VEREMOS
Como utilizar a estrutura do AWS para escalar uma aplicação Django.
Onde utilizar cada um dos serviços e onde cada um se encaixa.
ANTES DE COMEÇAR
Eu preciso escalar?
APLICAÇÃO WEB
Requisitos comuns de uma aplicação web escalável:
-   Procesamento variável
-   Armazenamento
-   Banco de Dados distribuido
-   Messageria
-   Balanceamento de carga
-   Cluster
-   Monitoração
-   Cache
-   Picos de requisições
AMAZON AWS
PROCESSAMENTO
Elastic Cloud Computing
-    Uma das partes centrais do AWS
-    Instâncias de acordo com sua necessidade
       - Standard(Small 1.7Gb 1 ECU, Large 7.5Gb 4ECU, Extra Large 15Gb 8
         ECU )
       - Micro(613Mb memória, 2 EC2 Compute Units)
       - High Memory(Extra Large 17Gb, Double 34Gb , Quadruple 68Gb)
       - High CPU(Medium, Extra Large)
       - Cluster Compute(23Gb memmória, 33.5 EC2 Compute Units)
       - Cluster GPU(22Gb memória, 33.5 EC2 Compute Units, 2 Nvidia Tesla
         ‘Fermi’)
-    Sistema Operacional via AMI(Amazon Machine Image)

    * EC2 Compute Unit = 1.0 - 1.2 GHz 2007 Opteron ou processador Xeon
    2007
INSTANCE REGIONS
Cloud Computing não são duendes em numa nuvem cuidando dos meus
   servidores.
ELASTIC LOAD BALANCE

                  ELB
   US Virginia          Tokio




                           0



    Instância            Instância
ARMAZENAMENTO
Elastic Block Store(EBS)
-   Um ‘HD’ para sua instância
-   Pode ser formatado e montado como uma unidade de sua instância
-   Snapshot para backups
-   Expansível até 1Tb
-   Instalações locais(Apache, Banco de Dados, Varnish, Git, SVN, etc)
BANCO DE DADOS
Relational Database Service(RDS)
-   MySQL e Oracle
-   Escalabilidade de armazenamento
-   Backup via Snapshot
-   Replicacão(entre regiões inclusive) e Master/Slave
MAIS ARMAZENAMENTO
Simple Storage Service(S3)
-   Acesso via Webservice SOAP/REST
-   Utilizado pela própria infraestrutura da amazon
-   449 bilhões de objetos
-   Hospedagem de conteúdo estático: imagens, vídeos, .js, .css, backups,
    snapshots, versões de deploy
E MAIS ARMAZENAMENTO
SimpleDB
-   Banco de dados não relacional
-   Armazenamento chave-valor
-   Não recomendado para cache distribuído
CACHE
-    Localmente com Memcached e EBS
    - Configuração e gerenciamento manual
    - Replicação manual


-    Serviço ElasticCache
    - Implementação do protocolo Memcached
    - Replicação e gerenciamento automático
CONTENT DELIVERY NETWORK
CloudFront
-   CDN para objetos armazenados no S3
-   Servidores em 20 localidades entre Europa, Ásia, EUA
-   E finalmente primeira localidade na América do Sul: BRASIL!!
MUITOS OUTROS SERVIÇOS
-   Messageria com Simple Queue Service
-   Envio de e-mails com Simple E-mail Service
-   Notificações e monitoramente com Simple notification Service
-   Mechanical Turk
APP WEB PADRÃO
E COMO ESCALAR?
-   Picos de demanda
-   Localidade
-   Demanda esperada
-   Horário de funcionamento
ISSO ESCALA?
Claro, é só plugar mais máquinas…..
E COMO ESCALA ISSO?
ESCALANDO NA AMAZON
GERENCIAMENTO DOS SERVICOS
-   Autoscaling: Gerenciamento das instâncias, de forma programática
    com diretrizes definidas para up e down
-   CloudWatch e Web Console: Monitoração dos serviços e instâncias,
    métricas utilizadas para Autscaling
Django no AWS

Django no AWS

  • 2.
    RAFAEL NUNES -Sócio daYaW Tecnologia -Desenvolvimento em Python e Java principalmente -Consultoria para o Mercado Financeiro(Q10 Informática) -Instrutor da Globalcode -Editor da InfoQ Brasil(www.infoq.com/br)
  • 3.
    O QUE NÃOVEREMOS - O que é Django - O que é Cloud Computing - Todos os serviços da Amazon - Qual a resposta para a vida, o universo e todas as coisas…. (R:42)
  • 4.
    O QUE VEREMOS Comoutilizar a estrutura do AWS para escalar uma aplicação Django. Onde utilizar cada um dos serviços e onde cada um se encaixa.
  • 5.
    ANTES DE COMEÇAR Eupreciso escalar?
  • 6.
    APLICAÇÃO WEB Requisitos comunsde uma aplicação web escalável: - Procesamento variável - Armazenamento - Banco de Dados distribuido - Messageria - Balanceamento de carga - Cluster - Monitoração - Cache - Picos de requisições
  • 7.
  • 8.
    PROCESSAMENTO Elastic Cloud Computing - Uma das partes centrais do AWS - Instâncias de acordo com sua necessidade - Standard(Small 1.7Gb 1 ECU, Large 7.5Gb 4ECU, Extra Large 15Gb 8 ECU ) - Micro(613Mb memória, 2 EC2 Compute Units) - High Memory(Extra Large 17Gb, Double 34Gb , Quadruple 68Gb) - High CPU(Medium, Extra Large) - Cluster Compute(23Gb memmória, 33.5 EC2 Compute Units) - Cluster GPU(22Gb memória, 33.5 EC2 Compute Units, 2 Nvidia Tesla ‘Fermi’) - Sistema Operacional via AMI(Amazon Machine Image) * EC2 Compute Unit = 1.0 - 1.2 GHz 2007 Opteron ou processador Xeon 2007
  • 9.
    INSTANCE REGIONS Cloud Computingnão são duendes em numa nuvem cuidando dos meus servidores.
  • 10.
    ELASTIC LOAD BALANCE ELB US Virginia Tokio 0 Instância Instância
  • 11.
    ARMAZENAMENTO Elastic Block Store(EBS) - Um ‘HD’ para sua instância - Pode ser formatado e montado como uma unidade de sua instância - Snapshot para backups - Expansível até 1Tb - Instalações locais(Apache, Banco de Dados, Varnish, Git, SVN, etc)
  • 12.
    BANCO DE DADOS RelationalDatabase Service(RDS) - MySQL e Oracle - Escalabilidade de armazenamento - Backup via Snapshot - Replicacão(entre regiões inclusive) e Master/Slave
  • 13.
    MAIS ARMAZENAMENTO Simple StorageService(S3) - Acesso via Webservice SOAP/REST - Utilizado pela própria infraestrutura da amazon - 449 bilhões de objetos - Hospedagem de conteúdo estático: imagens, vídeos, .js, .css, backups, snapshots, versões de deploy
  • 14.
    E MAIS ARMAZENAMENTO SimpleDB - Banco de dados não relacional - Armazenamento chave-valor - Não recomendado para cache distribuído
  • 15.
    CACHE - Localmente com Memcached e EBS - Configuração e gerenciamento manual - Replicação manual - Serviço ElasticCache - Implementação do protocolo Memcached - Replicação e gerenciamento automático
  • 16.
    CONTENT DELIVERY NETWORK CloudFront - CDN para objetos armazenados no S3 - Servidores em 20 localidades entre Europa, Ásia, EUA - E finalmente primeira localidade na América do Sul: BRASIL!!
  • 17.
    MUITOS OUTROS SERVIÇOS - Messageria com Simple Queue Service - Envio de e-mails com Simple E-mail Service - Notificações e monitoramente com Simple notification Service - Mechanical Turk
  • 18.
  • 19.
    E COMO ESCALAR? - Picos de demanda - Localidade - Demanda esperada - Horário de funcionamento
  • 20.
    ISSO ESCALA? Claro, ésó plugar mais máquinas…..
  • 21.
  • 22.
  • 23.
    GERENCIAMENTO DOS SERVICOS - Autoscaling: Gerenciamento das instâncias, de forma programática com diretrizes definidas para up e down - CloudWatch e Web Console: Monitoração dos serviços e instâncias, métricas utilizadas para Autscaling