Soluções escaláveis com Microsoft Orleans
-
Upload
akamud -
Category
Technology
-
view
59 -
download
0
Transcript of Soluções escaláveis com Microsoft Orleans
Soluções escaláveis com Microsoft Orleans
Vinicius QuaiatoMahmoud AliLambda3
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
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
Você já viu isso?
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
Escalabilidade horizontal
Possíveis gargalos• Persistência de dados• Recuperação de estado• Serviços centralizadores• Operações computacionalmente custosas
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
Monolitos
Modelagem concorrente• Granularizar a aplicação• Independência para executar• Comunicação assíncrona
ActorActor
Actor
MensagemMensagem
Mensagem
Modelagem concorrente• Unidades isoladas• Estado interno local• Comportamento• Comunicação através de mensagens• Processamento distribuído
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
ActorActor
Actor
MensagemMensagem
Mensagem
ActorActor
Actor
mensagem mensag
em
mensagem
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?
É 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?
Implementações de Actor Model
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
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
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
Recursos• Stateless• Stateful• At-Most-Once • At-Least-Once• Timers• Reminders• Persistência transparente
Demo (ou quase isso)
Quem está usando?• Microsoft• Azure• Skype
• 343 Industries• Halo 4, 5, Reach
• Visa
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
Obrigado =)