Introduçãoo aws, escalando uma aplicação Web

75
Alessandro de Oliveira Binhara [email protected]

Transcript of Introduçãoo aws, escalando uma aplicação Web

Page 1: Introduçãoo aws, escalando uma aplicação Web

Alessandro de Oliveira Binhara

[email protected]

Page 2: Introduçãoo aws, escalando uma aplicação Web

• Amazon.com + Amazon AWS (+260mil funcionários)• 75 mil vagas empregos aberto no mundo• Receita 107 Bilhões• Valor atual $317 Bilhões

• Chamath Palihapitiya, fundador da Social Capital, empresa de investimentos norte-americana, afirmou hoje (4) que a Amazon, de Jeff Bezos, pode estar por trás de um novo conglomerado avaliado em mais de US$ 3 trilhões.

• Apple $521 bilhões • Google $480 bilhões• Microsoft $238Bilhões

Page 3: Introduçãoo aws, escalando uma aplicação Web

• "Por experiência, sabia que o custo de manutenção de uma infra-estrutura confiável, escalável em um modelo de multi-centro de dados tradicional pode ser tão alta quanto 70 por cento, tanto em tempo e esforço, e exige um investimento significativo de capital intelectual para sustentar por um longo período de tempo . O pensamento inicial era prestar serviços que poderiam reduzir esse custo para 30 por cento ou menos (agora sabemos que pode ser muito menos)." Werner Vogels CTO da Amazon

• - 2003 (Idéia formada, início da construção) - 2005 (produtos AWS sendo vendidos para alguns clientes) - 2006 (Lançamento oficial)

Page 4: Introduçãoo aws, escalando uma aplicação Web

• SaaS • (Entrega Software para o Usuário Final)

• PaaS • ( Entrega uma plataforma, para fazermos o

deploy do Software)

• IaaS • (Entrega Infraestrutura, Servidores, Rede,

Storage)

• Outros Conceitos: DevaaS, CaaS, EaaS, DBaaS, BIaaS, etc.

IaaS

PaaS

SaaS

Page 5: Introduçãoo aws, escalando uma aplicação Web
Page 6: Introduçãoo aws, escalando uma aplicação Web
Page 7: Introduçãoo aws, escalando uma aplicação Web
Page 8: Introduçãoo aws, escalando uma aplicação Web
Page 9: Introduçãoo aws, escalando uma aplicação Web
Page 10: Introduçãoo aws, escalando uma aplicação Web
Page 11: Introduçãoo aws, escalando uma aplicação Web
Page 12: Introduçãoo aws, escalando uma aplicação Web
Page 13: Introduçãoo aws, escalando uma aplicação Web
Page 14: Introduçãoo aws, escalando uma aplicação Web
Page 15: Introduçãoo aws, escalando uma aplicação Web
Page 16: Introduçãoo aws, escalando uma aplicação Web
Page 17: Introduçãoo aws, escalando uma aplicação Web

• Elasticidade.

• Disponibilidade.

• Serviços desacoplados.

• Gestão eficiente.

• Custo.

• Segurança.

Page 18: Introduçãoo aws, escalando uma aplicação Web

• - Especialista em cloud computing.

• - Líder de mercado.

• - Constantes inovações.

• - Serviços gratuitos por até um ano*.

• - Repasse de benefícios.

• - Vários DCs espalhados pelo mundo.

Page 19: Introduçãoo aws, escalando uma aplicação Web
Page 20: Introduçãoo aws, escalando uma aplicação Web

Ritmo de Inovação Plataforma Robusta e Abrangência Global

Page 21: Introduçãoo aws, escalando uma aplicação Web
Page 22: Introduçãoo aws, escalando uma aplicação Web

Core

Services

Platform

Services

Enterprise

Applications

Analytics App Services Deployment and Management Mobile Services

AWS Data

Pipeline

AWS

CloudTrail

CloudWatch

AWS CloudFormation

Elastic

Beanstalk

ElastiCacheAmazon

Redshift

Amazon

RDSDynamoDB

Amazon

CloudSearch

Amazon

SES

Amazon

SWF

Elastic Transcoder

Amazon Kinesis

Amazon

EMR

IAM

AWS

OpsWorks

Compute Networking DatabaseStorage

CloudFront

Amazon

Glacier

Amazon S3

Amazon

EBS

Auto ScalingAmazon

Route 53

Elastic Load

BalancingAWS Direct Connect

Amazon VPC

Amazon EC2

Amazon

WorkSpaces

Amazon WorkDocs

Amazon

SNS

Mobile Analytics

Amazon

Cognito

Page 23: Introduçãoo aws, escalando uma aplicação Web

Actual

EC2

Amazon EC2 Elastic Load BalancingAuto Scaling

Web service queprovê capacidade de

computaçãoredimensionável

Automaticamenteescala a capacidade de instâncias Amazon EC2

de forma elástica

Automaticamente distribuitráfego através de instâncias

Amazon EC1

Page 24: Introduçãoo aws, escalando uma aplicação Web

Amazon EBS

Storage de Blocospara uso com

instâncias Amazon EC2

EBS

Amazon Glacier

Storage de baixocusto para archiving

e backup

Images

Videos

Files

Binaries

Snapshots

Amazon S3

Images

Videos

Files

Binaries

Snapshots

Storage de Objetosdurável e escalável

Page 25: Introduçãoo aws, escalando uma aplicação Web

Amazon RDS

Serviço de Banco de Dados gerenciado

Amazon ElastiCache

Serviço de caching emmemória

Amazon DynamoDB

Serviço de Banco de Dados NoSQL gerenciado

DBA

Amazon RDSFor Aurora

Novo banco de dados relacional

compatível com MySQL

Page 26: Introduçãoo aws, escalando uma aplicação Web

Amazon VPC

Seção Privada, isoladada nuvem da AWS

Amazon Route 53

Serviço DNS WebDomain Name System

Availability

Zone BAvailability

Zone A

Page 27: Introduçãoo aws, escalando uma aplicação Web

AWS Storage Gateway

Integrates on-premises IT and AWS storage

S3,

Glacier

AWS Direct Connect

Private connectivity between AWS and your data center

Page 28: Introduçãoo aws, escalando uma aplicação Web

Amazon Kinesis

Amazon Redshift

Amazon Elastic MapReduce

Processamento de grande quantidade de

dados

Rápido, poderoso, data warehouse na escala

dos petabytes

Processamento de data stream em real-

time

Page 29: Introduçãoo aws, escalando uma aplicação Web

Amazon Simple Email Service (SES)

Amazon Simple Queue Service

(SQS)

Amazon Simple Notification Service

(SNS)

Amazon CloudSearch

Page 30: Introduçãoo aws, escalando uma aplicação Web

AWS ElasticBeanstalk

AWS OpsWorks

AWS CloudFormation

Templates para fazerdeploy e gestão

manage

DevOps framework paragestão do ciclo de vida

das aplicações

Gestãoautomatizada de

recursos

Page 31: Introduçãoo aws, escalando uma aplicação Web
Page 32: Introduçãoo aws, escalando uma aplicação Web

- Processamento

- Armazenamento

- CDN

- Banco de Dados

- Messageria

- Load Balance

- Monitoração

Page 33: Introduçãoo aws, escalando uma aplicação Web

EC2 – WebserverSECURITY

Aquitetura Inicial – Fortemente aclopada

user

SERVIDOR

• Tudo em cima de um único servidor• Que guarda os dados do usuário• O servidor é vital para a aplicação• Não Escala• Não é tolerante a falhas• Famoso “Exécito de um homem só ”

Page 34: Introduçãoo aws, escalando uma aplicação Web

EC2 – WebserverSECURITY

Aquitetura Inicial – Fortemente aclopada

user

SERVIDOR

• Tudo em cima de um único servidor• Que guarda os dados do usuário• O servidor é vital para a aplicação• Não Escala• Não é tolerante a falhas• Famoso “Exécito de um homem só ”

Page 35: Introduçãoo aws, escalando uma aplicação Web

• 1) Separar Web e DB• Mais capacidade

• Escalar a cada lado individualmente

• Escolha de Instancias independente• Tipo de Instancia

• Armazenamento

• Segurança• Cada um com seu security group

• DB vai para um subrede privada

Page 36: Introduçãoo aws, escalando uma aplicação Web

• Relaciona Database Service• Aurora, MySQL, PostgresSQL, Oracle, SQL Server

• Totalmente Gerenciado

• Zero de Administração

• Escalonável

• Durável

• Backup

Page 37: Introduçãoo aws, escalando uma aplicação Web
Page 38: Introduçãoo aws, escalando uma aplicação Web

AmazonS3

Amazon CloudFront

CDN

Amazon

Route 53

Elastic Load

Balancing

EC2 – WebserverSECURITY

Architecture WEB SCALABLE

userCloudFront

distribution

Availability Zone #1 Availability Zone #2

EC2 - WORKERS

encrypted data

Page 39: Introduçãoo aws, escalando uma aplicação Web

AWS cloud

web app

server

security group

RDS DB

instance

Page 40: Introduçãoo aws, escalando uma aplicação Web

• Esacalável ?

• Seguro ?

• Tolerante a Falhas ?

• Altamente disponível ?

Page 41: Introduçãoo aws, escalando uma aplicação Web

• Amazon s3: Serviço de armazenamento de objetos altamente disponíveis• Arquivos staticos (java script, css, imagens)

• Upload de artiovos, conteúdo do usuários

• S3 URLs – sirva HTTP diretamente do s3

• Web Serve somente para a aplicação

Page 42: Introduçãoo aws, escalando uma aplicação Web

• Problema servidores statuful

• Solução: servidores stateful

Page 43: Introduçãoo aws, escalando uma aplicação Web

AWS cloud

web app

server

security group

RDS DB

instance

AmazonS3

Page 44: Introduçãoo aws, escalando uma aplicação Web

• Seu site esta crescendo

• Pague somente pelo que vc utiliza

• Escalabilidade horizontal

• Mais instâncias em horários de pico

• Menos instâncias em horários de vale

• Tolerância a falhas e Alta disponiponibilidade

Page 45: Introduçãoo aws, escalando uma aplicação Web

• Servidore StateLess

• Recurso computacional que permite processar parte de uma arquitetura desacoplada

Page 46: Introduçãoo aws, escalando uma aplicação Web

• Servidore StateLess

• Recurso computacional que permite processar parte de uma arquitetura desacoplada

Aumentando as CPU

Page 47: Introduçãoo aws, escalando uma aplicação Web

• Servidore StateLess

• Recurso computacional que permite processar parte de uma arquitetura desacoplada

Reduzindo as CPU

Page 48: Introduçãoo aws, escalando uma aplicação Web

AWS cloud

web app

server

security group

RDS DB

instance AmazonS3

Amazon

Route 53

AWS cloud

web app

server

security group

Page 49: Introduçãoo aws, escalando uma aplicação Web

• Servicço de balancemanto de carga

• Totalmente tolerante a falhas

• Distribui tráfego entre muiltiplas Azs

• Elastico – automaticamente escala

Page 50: Introduçãoo aws, escalando uma aplicação Web

AWS cloud

web app

server

security group

RDS DB

instance AmazonS3

Amazon

Route 53

AWS cloud

web app

server

security group

Page 51: Introduçãoo aws, escalando uma aplicação Web
Page 52: Introduçãoo aws, escalando uma aplicação Web

• Redimeninamento automático

• Via console da amazona

• Via Chamada de api

• Numero mínimo e máximo

• Alarme

Page 53: Introduçãoo aws, escalando uma aplicação Web

web app

server

security group

RDS DB

instance

AmazonS3

Amazon

Route 53

AWS cloud

web app

server

security group

Auto Scaling group

Auto Scaling

RDS DB

instance standby

(Multi-AZ)

Page 54: Introduçãoo aws, escalando uma aplicação Web

web app

server

security group

RDS DB

instance

AmazonS3

Amazon

Route 53

AWS cloud

web app

server

security group

Auto Scaling group

Auto Scaling

RDS DB

instance standby

(Multi-AZ)

Page 55: Introduçãoo aws, escalando uma aplicação Web

web app

server

security group

RDS DB

instance

AmazonS3

Amazon

Route 53

AWS cloud

web app

server

security group

Auto Scaling group

Auto Scaling

RDS DB

instance standby

(Multi-AZ)

web app

server

web app

serverweb app

server

web app

server

Page 56: Introduçãoo aws, escalando uma aplicação Web

• Rede mundial de pontos de presença

• Cache mais próximo do seu usuário• Reduz latência

• Reduz carga nos servidores de origem

• Conteudo estático e dinâmico

• Otimizações de conexão• Enlace de rede entre os end-points

• Reutilização de conexões

Page 57: Introduçãoo aws, escalando uma aplicação Web

web app

server

security group

RDS DB

instance

AmazonS3

Amazon

Route 53

AWS cloud

web app

server

security group

Auto Scaling group

Auto Scaling

RDS DB

instance standby

(Multi-AZ)

web app

server

web app

serverweb app

server

web app

server

CloudFront

distribution

Page 58: Introduçãoo aws, escalando uma aplicação Web

• Aumentar os specs da instância de banco de dados• Tipo de instância• Mais disco, volumes

• Read Replicas (Master Slave)• Escala além da capacidade do SQL• Disponível para vários bancos• Lag de aplicação • Latencia e consitencia• Pode aumentas as outras maquinas• Ou adicionar readreplica• MultiAZ replicação sincrona

Page 59: Introduçãoo aws, escalando uma aplicação Web

AmazonS3

Amazon CloudFront

CDN

AmazonRDS Multi AZ

Amazon ElastiCache

MEMCACHE-REDIS

Amazon

Route 53

Elastic Load

Balancing

EC2 – WebserverSECURITY

Architecture WEB SCALABLE

userCloudFront

distribution

Availability Zone #1 Availability Zone #2

EC2 - WORKERS

AmazonSQS

EC2 – WebserverSECURITY

EC2 - WORKERS

Auto Scaling

Auto Scaling

AWS Elastic Beanstalk

AWS Elastic Beanstalk

Spot instance

AMI

encrypted data

Page 60: Introduçãoo aws, escalando uma aplicação Web

AmazonS3

Amazon CloudFront

CDN

AmazonRDS Multi AZ

Amazon ElastiCache

MEMCACHE-REDIS

Amazon

Route 53

Elastic Load

Balancing

EC2 – WebserverSECURITY

Architecture WEB SCALABLE

userCloudFront

distribution

Availability Zone #1 Availability Zone #2

EC2 - WORKERS

AmazonSQS

EC2 – WebserverSECURITY

EC2 - WORKERS

Auto Scaling

Auto Scaling

AWS Elastic Beanstalk

AWS Elastic Beanstalk

Spot instance

AMI

encrypted data

Page 61: Introduçãoo aws, escalando uma aplicação Web

web app

server

security group

RDS DB

instance

AmazonS3

Amazon

Route 53

AWS cloud

web app

server

security group

Auto Scaling group

Auto Scaling

RDS DB

instance standby

(Multi-AZ)

web app

server

web app

serverweb app

server

web app

server

CloudFront

distribution

RDS DB

instance read

replica

RDS DB

instance read

replica

Page 62: Introduçãoo aws, escalando uma aplicação Web

• Resposta mais rápidas

• Alivio do trafego no banco de dados

Page 63: Introduçãoo aws, escalando uma aplicação Web

• Facil de implementar

• Gerenciado• Auto escalável

• Elastico

• Compative• Memcache e Redis

Page 64: Introduçãoo aws, escalando uma aplicação Web

AmazonS3

Amazon CloudFront

CDN

AmazonRDS Multi AZ

Amazon ElastiCache

MEMCACHE-REDIS

Amazon

Route 53

Elastic Load

Balancing

EC2 – WebserverSECURITY

Architecture WEB SCALABLE

userCloudFront

distribution

Availability Zone #1 Availability Zone #2

EC2 - WORKERS

AmazonSQS

EC2 – WebserverSECURITY

EC2 - WORKERS

Auto Scaling

Auto Scaling

AWS Elastic Beanstalk

AWS Elastic Beanstalk

Spot instance

AMI

encrypted data

Page 65: Introduçãoo aws, escalando uma aplicação Web
Page 66: Introduçãoo aws, escalando uma aplicação Web
Page 67: Introduçãoo aws, escalando uma aplicação Web
Page 68: Introduçãoo aws, escalando uma aplicação Web
Page 69: Introduçãoo aws, escalando uma aplicação Web
Page 70: Introduçãoo aws, escalando uma aplicação Web
Page 71: Introduçãoo aws, escalando uma aplicação Web
Page 72: Introduçãoo aws, escalando uma aplicação Web
Page 73: Introduçãoo aws, escalando uma aplicação Web
Page 74: Introduçãoo aws, escalando uma aplicação Web
Page 75: Introduçãoo aws, escalando uma aplicação Web