CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x...

36
X X CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE FUNCTIONS, BLOB STORAGE E COSMOSDB Rafael Turino

Transcript of CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x...

Page 1: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE FUNCTIONS, BLOB STORAGE E COSMOSDBRafael Turino

Page 2: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

Rafael Turino

LinkedIn - https://www.linkedin.com/in/trturino/Github - https://github.com/trturino

Page 3: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X

O QUE É SERVERLESS?

aplicativos que dependem significativamente de serviços de terceiros

Page 4: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

O que é Serverless? | Vantagens

• \Pague por execução (com free tier)🤑

Page 5: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

O que é Serverless? | Vantagens

Não precisa gerenciar servidores👾

Page 6: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

O que é Serverless? | Vantagens

Escalonamento infinito

Page 7: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X

CQRS

Page 8: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

CQRS | O que é?

Command Query Responsibility Segregation

Page 9: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

CQRS | O que é?

Orientado a mensagens

Page 10: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

CQRS | O que é?

Command —> Escrita Query —> Leitura

Page 11: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X

AZURE FUNCTIONS

Page 12: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

Azure Functions | O que é?

Código hospedado em nuvem

Page 13: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

Azure Functions | O que é?

Varias triggers (Timer, HTTP, CosmosDB, Blob Storage e Service Bus)

Page 14: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

Azure Functions | O que é?

Tempo de inicialização

Page 15: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X

TODO APP

Page 16: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

Todo APP

https://turino-tdc.azureedge.net/

Page 17: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X

AZURE BLOB STORAGE

Page 18: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

Azure Blob Storage | O que é?

Armazenamento de arquivos na nuvem

Page 19: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

Azure Blob Storage | O que é?

Pago por transferencia de dados

Page 20: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

Azure Blob Storage | O que é?

Servidor de arquivos estáticos (static files)

Page 21: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

Todo APP | Front End

Page 22: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

Todo APP | Endpoints

Endpoint Tipo

GET /todo QUERY

POST /todo COMMAND

DELETE /todo COMMAND

PUT /todo/done COMMAND

GET /todo/completed QUERY

GET /todo/pending QUERY

Page 23: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

Framework CQRS com Azure Functions

https://functionmonkey.azurefromthetrenches.com/

Todo APP | Function Monkey

Page 24: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X

AZURE COSMOS DB

Page 25: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

Azure CosmosDB | O que é?

Distribuido globalmente

Page 26: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

Azure CosmosDB | O que é?

Multiplas APIs

Page 27: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

Azure CosmosDB | O que é?

Throughput ajustável

Page 28: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X

COSMONAUT

Page 29: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

Todo APP | Cosmonaut

ORM para CosmosDB

Page 30: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

Todo APP | Cosmonaut

Possui API nativa para lidar com a paginação do CosmosDB

Page 31: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

Todo APP | Cosmonaut

Lida automaticamente com erros 429 (throughput excedido)

Page 32: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

Todo APP | Backend

Page 33: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

Todo APP | Arquitetura

Page 34: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X

https://github.com/trturino/TodoServerlessApp

Page 35: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X�X

https://docs.microsoft.com/en-us/azure/azure-functions/

https://docs.microsoft.com/en-us/azure/cosmos-db/

https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-static-website

https://functionmonkey.azurefromthetrenches.com/

https://github.com/Elfocrash/Cosmonaut

https://docs.microsoft.com/en-us/azure/architecture/patterns/cqrs

Referência | Links para mais conteúdo

Page 36: CRIANDO UMA APLICAÇÃO SERVERLESS COM CQRS, AZURE … › thedevconf › ... · 2019-05-16 · x criando uma aplicaÇÃo serverless com cqrs, azure functions, blob storage e cosmosdb

�X

OBRIGADO.

We are hiring !