soluções escaláveis com microsoft orleans e windows azure

33
Soluções escaláveis com Microsoft Orleans Vinicius Quaiato Mahmoud Ali Lambda3

Upload: vinicius-quaiato

Post on 14-Feb-2017

67 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Soluções escaláveis com Microsoft Orleans e Windows Azure

Soluções escaláveis com Microsoft Orleans

Vinicius QuaiatoMahmoud AliLambda3

Page 2: Soluções escaláveis com Microsoft Orleans e Windows Azure
Page 3: Soluções escaláveis com Microsoft Orleans e Windows Azure

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 e Windows Azure

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 e Windows Azure

Você já viu isso?

Page 6: Soluções escaláveis com Microsoft Orleans e Windows Azure

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 e Windows Azure

Escalabilidade horizontal

Page 8: Soluções escaláveis com Microsoft Orleans e Windows Azure
Page 9: Soluções escaláveis com Microsoft Orleans e Windows Azure
Page 10: Soluções escaláveis com Microsoft Orleans e Windows Azure
Page 11: Soluções escaláveis com Microsoft Orleans e Windows Azure

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 e Windows Azure

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 e Windows Azure

Monolitos

Page 14: Soluções escaláveis com Microsoft Orleans e Windows Azure

Modelagem concorrente• Granularizar a aplicação• Independência para executar• Comunicação assíncrona

Page 15: Soluções escaláveis com Microsoft Orleans e Windows Azure

ActorActor

Actor

MensagemMensagem

Mensagem

Page 16: Soluções escaláveis com Microsoft Orleans e Windows Azure

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 e Windows Azure
Page 18: Soluções escaláveis com Microsoft Orleans e Windows Azure

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 e Windows Azure

ActorActor

Actor

MensagemMensagem

Mensagem

ActorActor

Actor

mensagem mensag

em

mensagem

Page 20: Soluções escaláveis com Microsoft Orleans e Windows Azure

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 e Windows Azure

É 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 e Windows Azure

Implementações de Actor Model

Page 23: Soluções escaláveis com Microsoft Orleans e Windows Azure

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 e Windows Azure

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 e Windows Azure

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 e Windows Azure
Page 27: Soluções escaláveis com Microsoft Orleans e Windows Azure
Page 28: Soluções escaláveis com Microsoft Orleans e Windows Azure

Recursos• Stateless• Stateful• At-Most-Once • At-Least-Once• Timers• Reminders• Persistência transparente

Page 29: Soluções escaláveis com Microsoft Orleans e Windows Azure

Demo (ou quase isso)

Page 30: Soluções escaláveis com Microsoft Orleans e Windows Azure

Quem está usando?• Microsoft• Azure• Skype

• 343 Industries• Halo 4, 5, Reach

• Visa

Page 31: Soluções escaláveis com Microsoft Orleans e Windows Azure
Page 32: Soluções escaláveis com Microsoft Orleans e Windows Azure

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 e Windows Azure

Obrigado =)