2. PARTE I
• O que é escalabilidade?
• Visão geral do Elastic Benstalk
• Visão geral do Lambda
• Prós, Contras e comparativos entre os dois
• Considerações importantes de escalabilidade
• Banco de dados numa aplicação escalável
4. ESCALABILIDADE
“Scalability is the property of a system
to handle a growing amount of work
by adding resources to the system”
• Geographic scalability: The ability to
maintain effectiveness during
expansion from a local area to a
larger region.
• Load scalability: The ability for
a distributed system to expand and
contract to accommodate heavier or
lighter loads, including, the ease
with which a system or component
can be modified, added, or
removed, to accommodate changing
loads.
6. AWS ELASTIC BEANSTALK
• “AWS Elastic Beanstalk is an easy-to-use service for deploying and
scaling web applications and services”
• “You can simply upload your code and Elastic Beanstalk automatically
handles the deployment, from capacity provisioning, load balancing,
auto-scaling to application health monitoring. At the same time, you
retain full control over the AWS resources powering your application
and can access the underlying resources at any time.”
• “There is no additional charge for Elastic Beanstalk - you pay only for
the AWS resources needed to store and run your applications.”
14. ELASTIC BEANSTALK
PRÓS
• Variedade de linguagens e
docker
• Deploy, balanceamento, controle
de versão, escalabilidade
• Deploy muito fácil
• Tipos de deploy
• Altamento configurável
• Custo 0 (paga estrutura por trás)
CONTRAS
• Muito sensível a falhas de
deploy
• Configuração inicial complexa
• Busca por erros difícil
• Deploy pode demorar muito
• Limitado em alguns pontos
• Versões das linguages demoram
• Permissionamento
15. LAMBDA
• “AWS Lambda lets you run code without provisioning or
managing servers. You pay only for the compute time you
consume.”
• “With Lambda, you can run code for virtually any type of
application or backend service - all with zero administration.
Just upload your code and Lambda takes care of everything
required to run and scale your code with high availability. You
can set up your code to automatically trigger from other AWS
services or call it directly from any web or mobile app.”
19. LAMBDA
PRÓS
• Custo reduzido para baixo
tráfego
• Sem necessidade de
gerenciamento
• Rápido desenvolvimento (1
função)
• Alta escalabilidade
• Deploy independente por
função
CONTRAS
• Alto custo para grande tráfego
• Sem controle sobre ambiente
• Arquitetura complexa
• Quantidade de funções aumenta rápido
• DoS (1000 concorrências)
• Duração (máximo de 15 minutos)
• Cold Starts
• Monitorar / debugar (onde achar um erro entre
300 funções)
27. DATABASES
• Pontos obrigatórios
1. Replicação para outras regiões com baixa latência
2. Serviço gerenciado
3. Baixo custo
• Desejáveis
1. NoSQL para evitar migrations
2. Global Write
28. DATABASES
MySQL Aurora MongoDB DynamoDB
Replicação X X X X
Gerenciado X X X X
NoSQL X X
Global Write +- X
Facilidade de uso X X X