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

Post on 14-Feb-2017

68 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 =)

top related