Soluções escaláveis com Microsoft Orleans
-
Upload
akamud -
Category
Technology
-
view
58 -
download
0
Transcript of Soluções escaláveis com Microsoft Orleans
![Page 1: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/1.jpg)
Soluções escaláveis com Microsoft Orleans
Vinicius QuaiatoMahmoud AliLambda3
![Page 2: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/2.jpg)
![Page 3: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/3.jpg)
Esta palestra não é sobre• A venda de um produto• Deep dive em código• Comparativos entre frameworks• Gatinhos fofinhos• Ensinar padrões arquiteturais super bacanas• Repositórios
![Page 4: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/4.jpg)
Esta palestra é sobre• Conhecer algo novo• (Brevemente) conhecer um novo padrão• Ver um pouco de código (ilustrar exemplo)• Pensar fora da caixa• Gatinhos fofinhos
![Page 5: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/5.jpg)
Você já viu isso?
![Page 6: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/6.jpg)
Alto tráfego• Sua aplicação recebe uma grande quantidade de
acessos (sazonal ou constante)• Seu servidor não é capaz de atender todas as
requisições
![Page 7: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/7.jpg)
Escalabilidade horizontal
![Page 8: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/8.jpg)
![Page 9: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/9.jpg)
![Page 10: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/10.jpg)
![Page 11: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/11.jpg)
Possíveis gargalos• Persistência de dados• Recuperação de estado• Serviços centralizadores• Operações computacionalmente custosas
![Page 12: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/12.jpg)
Diminuindo gargalos• Analisar as tecnologias de armazenamento• Cache• Otimizações no front-end• Pré-compilação de views• Processamento em fila• Mudança de paradigma arquitetural
![Page 13: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/13.jpg)
Monolitos
![Page 14: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/14.jpg)
Modelagem concorrente• Granularizar a aplicação• Independência para executar• Comunicação assíncrona
![Page 15: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/15.jpg)
ActorActor
Actor
MensagemMensagem
Mensagem
![Page 16: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/16.jpg)
Modelagem concorrente• Unidades isoladas• Estado interno local• Comportamento• Comunicação através de mensagens• Processamento distribuído
![Page 17: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/17.jpg)
![Page 18: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/18.jpg)
Actor Model• Padrão criado na década de 70 que propõe tratar
“atores” como a primitiva universal num sistema• Atores devem poder• tomar decisões locais• criar mais atores• enviar mensagens
• Atores devem ser isolados
![Page 19: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/19.jpg)
ActorActor
Actor
MensagemMensagem
Mensagem
ActorActor
Actor
mensagem mensag
em
mensagem
![Page 20: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/20.jpg)
Como pensar em Actors?• Pense em trechos de computação com estado• Carrinho de compra?• Processo de checkout?• Rastreamento de carro/pet?• Processador de achievements (gamification)?• Saldo de cartão de crédito?• Histórico de compras de cartão de crédito?
![Page 21: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/21.jpg)
É tudo sempre simples?• Complicações de aplicações concorrentes com actor
model:• Como subir novos atores?• Como gerenciar o ciclo de vida desses atores?• Como detectar que um ator morreu?• Como se recuperar de erros?• Como localizar um ator para enviar uma mensagem a ele?
![Page 22: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/22.jpg)
Implementações de Actor Model
![Page 23: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/23.jpg)
O que é o Microsoft Orleans?• Framework .NET para a criação de aplicações
distribuídas e concorrentes. • Implementa e disponibiliza o padrão (Virtual) Actor Models dentro do .NET• Como framework padrão Microsoft, facilita sua vida e
abstrai uma série de preocupações
![Page 24: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/24.jpg)
Principais Benefícios• Escalável por padrão• Orleans lida com toda a complexidade na distribuição de
sistemas, escalando sua aplicação para o infinito e além• Baixa latência• Manter estado necessário em memória
• Concorrência simplificada• Escreva código C# da forma como você está acostumado/a,
mensagens assíncronas entre Grains
![Page 25: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/25.jpg)
Conceitos Chave• Grains – Representação de Actors• São a menor unidade computacional neste tipo de sistema
• Silos – Gerenciam os ciclos de vida dos Grains• Não acessam estado de outros Grains diretamente• Escaláveis de forma horizontal • Leves
• Clients – Aplicações que fazem chamadas aos Grains
![Page 26: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/26.jpg)
![Page 27: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/27.jpg)
![Page 28: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/28.jpg)
Recursos• Stateless• Stateful• At-Most-Once • At-Least-Once• Timers• Reminders• Persistência transparente
![Page 29: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/29.jpg)
Demo (ou quase isso)
![Page 30: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/30.jpg)
Quem está usando?• Microsoft• Azure• Skype
• 343 Industries• Halo 4, 5, Reach
• Visa
![Page 31: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/31.jpg)
![Page 32: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/32.jpg)
Ah, quem somos nós..?
akamud (Mahmoud Ali)• @akamud• http://github.com/akamud• Lambda3• http://high5devs.com• Mestre cervejeiro
Vinicius Quaiato• @vquaiato• http://github.com/vquaiato• Lambda3• Juiz de Magic• Pai• Ciclista• Vegano
![Page 33: Soluções escaláveis com Microsoft Orleans](https://reader036.fdocumentos.com/reader036/viewer/2022062412/587123791a28abe4448b5995/html5/thumbnails/33.jpg)
Obrigado =)