Arquitetura com AWS – Construindo sistemas para nuvem – Capacidade elástica



Arquitetura com AWS – Construindo sistemas para nuvem – Capacidade elástica

0 0


architecting-with-aws


On Github nbrtec / architecting-with-aws

Arquitetura com AWS

Construindo sistemas para nuvem

Por Fernando Salomão / @fernandosalomao

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

Serviços

Plataforma 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 ???