Apis Autoescalveis
Google Cloud Platform
About me
@feroult
Agenda
Introduo
Padres de design
Automao de ambientes
Introduo
APIs everywhere
Exemplos de aplicaes
Global Apps
Escalabilidade vertical
Dados em memria
Menor complexidade
Escalabilidade horizontal
Dados distribudos
Gargalo distribudo
Maior complexidade
Sistemas distribudos
Consistncia eventual
Ausncia de Joins
Automao de ambientes
Padres de design
Aplicao de exemplo
Item
n
order count
Aggregation
count by status
1
*
Order
status:
created
prepared
delivered
City
State
Aplicao de exemplo
Cdigo fonte
bit.ly/qconsp2016
Roteamento
Baixa latncia
Evite grandes sequncias server-side
Chamadas assncronas (outros servios)
Use cache intensivamente
Roteamento
Create
1 doc = 1 tx
Order
Item
Item
Client Side
Security
Validation
Server Side
Regras
Roteamento
Create
1 doc = 1 tx
Order
Security
Validation
Regras
Add
Item
Security
Validation
Regras
Add
Item
Security
Validation
Regras
Client Side
Server Side
Sharding
Shard Key
Replicao
Sharding
POST /orders
Create
Shard
Key
replicao
entre shards
Routing
grupo de
shards
ns quentes
replicao futura
~ 1 write / sec
espera transaes
ns quentes
Pipelines assncronas
Consistncia futura
Pipelines assncronas
POST /orders
GET /cities
GET /states
City
State
status = 200
Order
Fluxo Assncrono
Pipelines assncronas
POST /orders
GET /cities
GET /states
City
State
status = 200
Order
Fluxo Assncrono
Pipelines assncronas
POST /orders
GET /cities
status = 200
Order
acumuladores
evitam conteno
de escrita
City
sequenciamento
1 write / sec
Pipelines assncronas
POST /orders
Order
Mltiplas pipelines
em paralelo
City
GET /cities
Daily
Report
GET /daily
Monthly
Report
GET /monthly
Pipelines assncronas
POST /orders
Order
POST /prices
Price
POST /stock
Stock
GET /sales
Sales
Report
Pipelines convergentes
(Joins)
Automao de ambientes
Automao
Cloud intensive
Todas as camadas
Front / back-end instances, BD, filas, cache
infraestrutura
noite
tempo
Picos inesperados
Solues e ferramentas
Aplicao de exemplo
Item
n
order count
Aggregation
count by status
1
*
Order
status:
created
prepared
delivered
City
State
Projetos reais
High-throughput
Projetos reais
Delivery de comida
Referncias
Referncias
Cdigo fonte
bit.ly/qconsp2016
YAWP! Framework
yawp.io
feroult@gmail.com
@feroult
Obrigado!