O que é Computação em nuvem?
É o uso de recursos computacionais (hardware e software) distribuído como serviço pela internet.
Modelos de Cloud Computing
SaaS (Software como serviço)
PaaS (Plataforma como serviço)
IaaS (Infraestrutura como serviço)
On-Premise vs. Cloud Computing
Capacidade elástica
Os ambientes virtuais tem a capacidade de operar de forma elástica e dimensionar dinamicamente os recursos de computação para atender às necessidades do negócio.
Capacidade elástica
Modelo tradicional
- Temos que planejar a capacidade para prever gastos com TI do cliente.
- Necessidades são variáveis e difíceis de prever.
- Acabamos provisionando recursos de hardware com pouca precisão.
Capacidade elástica
Modelo tradicional
Capacidade elástica
Modelo tradicional
Capacidade elástica
Modelo na nuvem
Capacidade elástica
Modelo na nuvem
Capacidade elástica
Modelo na nuvem
Capacidade elástica
Modelo na nuvem
Segurança
Responsabilidade compartilhada
Segurança
Security Group Multi camada
Serviços
Analogia entre modelo tradicional e AWS
Storage
Simple Storage Service (S3)
Armazenamento para a Internet. Acesso on-line de forma nativa, HTTP.
S3 é WORM (Write Only Read Many)
Limite maximo de 100 buckets e objetos ilimitados.
Otimizado para leitura de dados.
Storage
Amazon Glacier
Armazenamento extremamente baixo custo.
Seguro, armazenamento durável para arquivamento de dados e backup.
Otimizado para dados que são pouco acessados.
Storage
Amazon Elastic Block Store (EBS)
Bloco de volumes de armazenamento para uso com instâncias do Amazon EC2.
Anexa a instância em execução e expõe como um dispositivo de bloco.
Snapshots são armazenados no S3.
Fornece um nível específico de I/O, se desejar.
Otimizado para escrita de dados.
Content Delivery
Amazon CloudFront
Serviço Web para a entrega de conteúdo.
Distribui o conteudo para os usuarios finais com baixa latência, possui alta velocidade de transferência.
Oferece o conteúdo através de uma rede global de pontos de localização.
Suporta download, streaming e transmissão ao vivo com Adobe FMS.
Compute
Amazon Elastic Compute Cloud (EC2)
Capacidade computacional redimensionável.
Controle completo dos recursos computacionais.
Reduz o tempo necessário para obter e inicializar novas instâncias de servidor para minutos.
Capacidade de esclar conforme os requisitos de computação mudem.
Compute
Auto Scaling
Escale a sua capacidade Amazon EC2 automaticamente.
Bem adequado para aplicações que experimentam variabilidade no uso.
Disponível sem custo adicional.
Compute
Amazon Elastic MapReduce (EMR)
Processa grandes quantidades de dados de forma rentável.
Utiliza um framework Hadoop.
Database
DynamoDB
Banco de dados NoSQL
Armazena qualquer quantidade de dados sem limites
Desempenho rápido usando SSDs
Integração com Elastic MapReduce
Altera a capacidade necessária para a solicitação de cada tabela
Database
Relational Database Service (RDS)
Redimensionável (migué o MSSQL não redimensiona) :(
Gerencia demoradas tarefas de administração de banco de dados
Aplica patches automaticamente no banco de dados e faz o backup de seu banco de dados
Applications Services
CloudSearch
Applications Services
Simple Queue Service (SQS)
Applications Services
Elastic Load Balancing
Deployment and Management
CloudWatch
7 boas práticas para a construção de sistemas com AWS
“Everything fails, all the time.”
Werner Vogels, CTO, Amazon.com
1
Design para falhas
Evitar pontos únicos de falha
1
Design para falhas
Evitar pontos únicos de falha
1
Design para falhas
Evitar pontos únicos de falha
Assuma que tudo falha.
Objetivo: As aplicações deverão continuar a funcionar mesmo se o hardware falhar ou for removido / substituído
1
Design para falhas
Evitar pontos únicos de falha
Assuma que tudo falha.
Objetivo: As aplicações deverão continuar a funcionar mesmo se o hardware falhar ou for removido / substituído.
1
Design para falhas
Evitar pontos únicos de falha
Assuma que tudo falha.
Objetivo: As aplicações deverão continuar a funcionar mesmo se o hardware falhar ou for removido / substituído.
2
Diminua o acoplamento
Arquiteturas de design com componentes independentes
Quanto menos acoplados, mais podem ser escalaveis
Projetar cada componente como uma caixa preta
2
Diminua o acoplamento
Use Load balance clusters
2
Diminua o acoplamento
Use Load balance clusters
2
Diminua o acoplamento
Use uma fila para passar mensagens entre os componentes
2
Diminua o acoplamento
Use uma fila para passar mensagens entre os componentes
3
Implemente elasticidade
Elasticidade é uma propriedade fundamental da nuvem
Não assuma a saúde, a disponibilidade ou local fixo de componentes
Faça Bootstrap em suas instâncias. Quando uma instância inicia, deve-se perguntar: "Quem sou eu eu e qual é o meu papel?"
Favorecer configuração dinâmica
4
Construir segurança em todas as camadas
A segurança é uma responsabilidade compartilhada. Você decide como:
Criptografar dados em trânsito e em repouso
Aplicar o princípio do menor privilégio
Criar distintos security groups restritos para cada função do aplicativo
Restringir o acesso externo via esses grupos de segurança
Use autenticação multi-fator
5
Não se assuste com restrições
Precisa de mais memória RAM? Considere a distribuição de carga entre máquinas ou um cache compartilhado
Precisa melhor IOPS para banco de dados? Em vez disso, considere várias réplicas de leitura, sharding ou DB clustering
Hardware falhou ou a configuração foi corrompido? "Rip and replace” - Basta remover as instancias com falha e criar outras
6
Pense paralelo
Experiência com arquiteturas paralelas
6
Pense paralelo
Experiência com arquiteturas paralelas
6
Pense paralelo
Experiência com arquiteturas paralelas
6
Pense paralelo
Experiência com arquiteturas paralelas
6
Pense paralelo
Experiência com arquiteturas paralelas
6
Pense paralelo
Experiência com arquiteturas paralelas
7
Conhecer as diferentes opções de storage
Um tamanho não serve para todos
Object storage
Content delivery network/edge caching
Block storage
Relational database
NoSQL
??? Questions Bitches ???