• Nenhum resultado encontrado

Workshops. Rubens Devito Filho, Arquiteto de Soluções. 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

N/A
N/A
Protected

Academic year: 2021

Share "Workshops. Rubens Devito Filho, Arquiteto de Soluções. 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved."

Copied!
43
0
0

Texto

(1)

© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Rubens Devito Filho, Arquiteto de Soluções

(2)

Agenda

• 30/03 -

Escalando sua aplicação para os primeiros 10 milhões de usuários

• 25/04 -

Criação de Clusters HPC como código

• 27/04 -

Conhecendo as opções de Bancos de Dados na Nuvem da AWS

• 25/05 -

Introdução a arquitetura serverless

(3)

© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Rubens Devito Filho, Arquiteto de Soluções

(4)

Agenda

Background

AWS Lambda

Amazon API Gateway

Amazon S3

Amazon Cognito

Padrões de Arquitetura Serverless

Demo (Frontend, backend, autenticação)

Melhores Práticas para Serverless

(5)

Background

Como arquiteturas serverless usando AWS Lambda são a próxima evolução da construção de aplicações

(6)
(7)

Arquitetura Orientada a Serviço (SOA)

Camda de Apresentação Camada Lógica

(8)
(9)

Ferramentas para te auxiliar são MUITAS

Servidores web

Code libraries

Web service/application frameworks

Ferramentas de gerenc. de config.

Plataformas de gereciamento de APIs

Padrões de Deployment

Padrões de CI/CD

Containers

(10)

AWS Também Tem Ajudado!

Amazon EC2

Auto Scaling

Elastic Load Balancing

Amazon EC2 auto recovery

AWS Trusted Advisor

AWS Elastic Beanstalk

AWS OpsWorks

Amazon ECS

Etc. Etc. Etc.

(11)

Mas….

muitas dessas ferramentas são

ainda acopladas a uma

(12)

Servidores (AAHHHHHHHHH!!)

Qual tamanho de servidores

são o melhor para o meu budget?

Quantos usuários conectados

meu servidor aguenta? Quanto de capacidade ainda

meus servidores têm? Como posso detectar se um servidor está comprometido?

Quantos servidores

tenho que calcular para o

orçamento?

Qual SO meus servidores irão usar?

Quais usuários deverão ter

acesso aos servidores?

Como posso controlar o acesso aos servidores?

Como consigo manter a

atualização de OS?

Como fazer deploy nos servidores?

Como aumentar a utilização dos servidores?

Quando devo escalar os servidores?

Qual tamanho de servidor é o melhor para performance?

Devo tunar o SO

para otimizar minha aplicação? Quais pacotes devem ser

incluídos na imagem do servidor?

Como devo lhe dar com

mudanças de configuração?

Como a aplicação lida com falhas de hardware do servidor?

(13)

Arquitete para ser Serverless

Totalmente gerenciado

• Sem provisionamento • Zero administração • Altamente disponível

Produtividade do desenvolvedor

• Foco no que importa: código • Inove rapidamente

• Reduza o time to market

Escale continuamente

• Automaticamente

(14)

O Manifesto Serverless

• Funções são a unidade de deploy e escala.

• Sem máquinas, VMs, ou containers visíveis no modelo de programação.

• Armazenamento permanente está em outro lugar.

• Escale por requisição. Usuários não conseguem sub/super provisionar a capacidade.

• Nunca pague pelo ocioso (nenhum servidor/container ”cold”).

• Tolerância a falhas implícita pois funções podem rodar em qualquer lugar.

• BYOC - Bring your own code.

(15)
(16)

Serverless, serviço computacional baseado em evento

(17)

Componentes do Lambda

• Uma função Lambda (escrita por você)

• Um evento de origem (Event Source)

• O serviço AWS Lambda

(18)

Função Lambda

• Seu código

(Java, NodeJS, Python, C#)

• O IAM role que o código

assume durante a

execução

• A quantidade de memória

alocada para o seu código

(afeta CPU e rede também)

Uma função Lambda válida e completa

(19)

Eventos de Origem (Evento Source)

• Quando uma função

Lambda deve executar?

• Vários serviços da AWS

podem ser um event

source:

• Amazon S3 • Amazon Kinesis • Amazon SNS • Amazon DynamoDB • Amazon CloudWatch • AWS Config Rules • Amazon Echo

• Etc.

• …e Amazon API Gateway (mais sobre isso daqui a pouco)

(20)

AWS Lambda

• Executa seu código da função sem você gerenciar ou

escalar servidores.

• Provê uma API para engatilhar uma execução para sua

função.

• Garante a execução da sua função quando acionada,

em paralelo, independente da escala.

(21)

Ambiente de rede da função

Default – um ambiente de rede

padrão dentro da VPC é provido à você

• Acesso à internet é sempre permitido para sua função

• Não acessa a recursos da VPC que ela roda

Customer VPC – Sua função executa dentro do contexto da VPC em que ela foi configurada.

• Comunicação privada com outros recursos da VPC.

• Configuração e comportamento bem familiar:

– Subnets

– Elastic network interfaces (ENIs) – EC2 security groups

– VPC route tables – NAT gateway

(22)
(23)

Várias Maneiras Atuais de Abstratir Servidores

SaaS

PaaS

MBaaS

*aaS

Application Engines/Platforms

(24)

O Que tem de Único no Lambda?

Abstração é no nível do código/função

O modelo de segurança (IAM, VPC)

O modelo de preço

A comunidade

Integração com o ecossistema da AWS!

• Escala • Aciona

(25)

Exemplo de Arquitetura

Serverless

(26)

PlayOn! Sports – Video Stream Processing

Laptop Encoders HLS S3 Playback VOD Stream mobile client CloudFront Streaming Live stream mobile client CloudFront S3 Ingest 480p Transcode HQ Copy 360p Transcode Audio-only Transcode Thumbnail QOS Analytics Cascading Lambda Functions

(27)

“Mas…

para usar Lambda, eu realmente

preciso arquitetar aplicações que são

baseadas em eventos?” – você (talvez)

(28)
(29)
(30)

Um Serviço Totalmente Gerenciado Para Suas APIs

Criar Configurar Publicar

(31)
(32)
(33)

Amazon Simple Storage Service (S3)

Armazenamento de objetos durável e escalável

• Arquitetado para 99.999999999% de durabilidade

e 99.99% de disponibilidade

• Armazene trilhões de objetos e suporte milhões de

requisições por segundo

• Armazenamento infinito sem provisionamento de

capacidade

(34)

Amazon S3

S3 é uma solução de baixo custo e altamente

disponível para um website estático – totalmente

serverless

• Entregue de maneira confiável seu website estático e

suporte picos inesperados sem se preocupar com a

infraestrutura e escalabilidade

• Integra com Amazon CloudFront para entrega de

conteúdo na borda, ao redor do mundo

(35)
(36)

Amazon Cognito

Adicione sign-up e sign-in de usuários, além de sincronização de dados entre seus dispositivos

Adicione sign-up and sign-in de usuários para seus apps mobile ou web

Federe identidades e proveja acesso seguro aos

recursos da AWS

Armazene e sincronize dados entre dispositivos

(37)
(38)

Melhores Práticas para

Serverless

(39)

Melhores Práticas de AWS Lambda

1. Limite o tamanho da sua

função – especualmente para Java (inicalizar JVM demora um pouco).

2. Node – execução é assíncrona.

3. Não assuma reuso do container – mas leve

vantagem caso isso ocorra.

4. Não se esqueça do disco (500 MB /tmp para cada function).

5. Use function aliases. 6. Use the included logger

(include details from service-provided context).

7. Crie custom metrics

(centradas na sua operaçã ou negócio).

(40)

Melhores Práticas de Amazon API Gateway

4. Use request/response mapping templates

everywhere within reason, not passthrough.

5. Take ownership of HTTP response codes.

6. Use Swagger import/export for cross-account sharing. 1. Use mock integrations

2. Combine com Amazon

Cognito para um controle de acesso dos usuários

gerenciado.

3. Use stage variables (inject API config values into

Lambda functions for logging, behavior).

(41)

Melhores Práticas Serverless

1. Use convenções de nome que façam sentido (nome de funções Lambdas, IAM roles, nomes de API, nomes do

stage, etc.).

2. Use versionamento

3. Externalize autorização para IAM roles sempre que

possível.

4. Menor privilégio and separe IAM roles.

5. Externalize a configuração – DynamoDB é ótimo para isso. 6. Contate o Suporte da AWS

antes eventos em larga escala já sabidos.

7. Esteja atento aos throttlings de serviço, engaje com o Suporte da AWS.

(42)

Várias Opções Serverless na AWS

Armazenamento Rede Banco de Dados

Computação Segurança Mensageria e Filas Entrega de Conteúdo

Gateways

Gerenciamento de Usuários Monitoramento e Logging

Internet of Things

Machine Learning

(43)

© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Referências

Documentos relacionados