Soluções escaláveis com Microsoft Orleans

105 visualizações

Publicada em

Desenvolver soluções escaláveis pode ser mais simples do que pensamos. O Microsoft Orleans utiliza (Virtual) Actor Model para abstrair várias das complexidades envolvidas na criação de um sistema distribuído e escalável para que você possa focar no real problema que seu sistema se propõe a resolver

Publicada em: Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Soluções escaláveis com Microsoft Orleans

  1. 1. Soluções escaláveis com Microsoft Orleans Vinicius Quaiato Mahmoud Ali Lambda3
  2. 2. 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
  3. 3. 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
  4. 4. Você já viu isso?
  5. 5. 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
  6. 6. Escalabilidade horizontal
  7. 7. Possíveis gargalos • Persistência de dados • Recuperação de estado • Serviços centralizadores • Operações computacionalmente custosas
  8. 8. 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
  9. 9. Monolitos
  10. 10. Modelagem concorrente • Granularizar a aplicação • Independência para executar • Comunicação assíncrona
  11. 11. Actor Actor Actor Mensagem
  12. 12. Modelagem concorrente • Unidades isoladas • Estado interno local • Comportamento • Comunicação através de mensagens • Processamento distribuído
  13. 13. 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
  14. 14. Actor Actor Actor Mensagem Actor Actor Actor mensagem
  15. 15. 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?
  16. 16. É 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?
  17. 17. Implementações de Actor Model
  18. 18. 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
  19. 19. 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
  20. 20. 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
  21. 21. Recursos • Stateless • Stateful • At-Most-Once • At-Least-Once • Timers • Reminders • Persistência transparente
  22. 22. Demo (ou quase isso)
  23. 23. Quem está usando? • Microsoft • Azure • Skype • 343 Industries • Halo 4, 5, Reach • Visa
  24. 24. 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
  25. 25. Obrigado =)

×