Cloud & AWS:
Da teoria à prática
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
# 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
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
- Processamento
- Armazenamento
- Software
Tipos: Pública, Privada e Híbrida
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.
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).
Vantagens & Desvantagens
● Desvantagens:
○ Dependência de Internet;
○ Latência dependendo da conexão;
○ Preços em dólar
Modelo em Camadas
IaaS
PaaS
SaaS
Abstração
Controle
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.
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).
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.
Recapitulando
Recapitulando
Aplicação
Plataforma
Infraestrutura
Virtualização
Servidor Servidor Servidor Storage Storage
Recapitulando
Aplicação
Plataforma
Infraestrutura
Virtualização
Servidor Servidor Servidor Storage StorageVirtualização não é Computação em Nuvem
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).
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.
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.
● 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
Infraestrutura AWS
A AWS fornece uma coleção de serviços de infraestrutura
Infraestrutura AWS
Regiões de Infra
Pontos Edge
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.
Infraestrutura AWS
Infraestrutura AWS
Infraestrutura AWS
Segurança AWS
Segurança compartilhada
Segurança AWS
● IAM
● ACL
● NACL
● Security Groups
● VPC
● 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
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.
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
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.
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
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.
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.
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
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.
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.
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.
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.
IoT
● Internet das Coisas
○ Amazon IoT: Conecte dispositivos à Cloud. Permite a interação de dispositivos conectados
com aplicativos na nuvem e com outros dispositivos.
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;
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.
Ferramentas de gerenciamento
● Otimização de segurança e desempenho
○ Trusted Advisor: Otimize o desempenho, segurança e custos.
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
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.
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.
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.
Serviços para aplicações
● Pesquisa
○ Amazon CloudSearch: Serviço de pesquisa gerenciada. Usado como ferramenta de busca
full-text em sites ou apps.
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
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
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
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.
Perguntas?!
Obrigado.
http://www.ricardomartins.com.br

Cloud & AWS: Da teoria à prática

  • 1.
    Cloud & AWS: Dateoria à prática
  • 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.
    # whoami · Tecnólogoem 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.
    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.
  • 6.
  • 7.
    Pilares da Computaçãoem 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.
    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.
    Vantagens & Desvantagens ●Desvantagens: ○ Dependência de Internet; ○ Latência dependendo da conexão; ○ Preços em dólar
  • 10.
  • 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.
    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.
    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.
  • 15.
  • 16.
  • 17.
    Hypervisor, Virtualização Fulle 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.
    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.
    Tipo 2: Hospedado Estetipo 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.
    ● Paravirtualização Um HypervisorTipo-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.
    Infraestrutura AWS A AWSfornece uma coleção de serviços de infraestrutura
  • 22.
  • 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.
  • 25.
  • 26.
  • 27.
  • 28.
    Segurança AWS ● IAM ●ACL ● NACL ● Security Groups ● VPC
  • 29.
    ● Serviços deInfraestrutura 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.
    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.
    Computação ● Implantação deaplicativos 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.
    Armazenamento e entregade 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.
    Armazenamento e entregade 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.
    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.
    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.
    Redes ● Virtual PrivateCloud ○ 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.
    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.
    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.
    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.
    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.
    IoT ● Internet dasCoisas ○ Amazon IoT: Conecte dispositivos à Cloud. Permite a interação de dispositivos conectados com aplicativos na nuvem e com outros dispositivos.
  • 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.
    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.
    Ferramentas de gerenciamento ●Otimização de segurança e desempenho ○ Trusted Advisor: Otimize o desempenho, segurança e custos.
  • 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.
    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.
    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.
    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.
    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.
    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.
    Demo EC2 ● Configuraçãode 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.
    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.
    Demo Beanstalk ● Createapplication ● 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.
  • 55.