fbpx
Microsoft Orleans 3.0
Publicado em: quinta-feira, 31 de out de 2019

Sobre esse lançamento vemos algumas novidades, mas eu não abordarei elas. Referenciarei alguns posts e apresentarei o projeto de demonstração que criei no github.

Ainda é cedo para aprofundar no tema e lançar um texto profundo sobre Orleans. Além disso acabaria floodando o assunto pois já tem uma galera atuando em Actor Models.

Actor models é um tema novo pra mim, mas o que me chama a atenção é a capacidade de hospedar componentes remotos. Isso me faz querer entender como e quais tecnologias e recursos estão envolvidos nessa tarefa. É o mesmo motivo que me fez fazer uma análise sobre o recém lançado Dapr.

Microsoft Orleans é uma implementação de Actor Model feito pela Microsoft e um dos seus principais cases é a franquia de jogos Halo. Você encontra uma lista de projetos que usa Microsoft Orleans em Who Is Using Orleans?.

Quem anda falando de .NET e Actor Models aqui no 🇧🇷 ?

Elemar aborda em

REACTIVE MESSAGING PATTERNS WITH THE ACTOR MODEL em 23/Agosto/2019

SIMPLIFICANDO SISTEMAS CONCORRENTES E DISTRIBUÍDOS COM MODELO DE ATORES em 28/Agosto/2019

Alexandre Brandão Lustosa

também aborda o Akka.NET no .NET Inside

Luis Antonio Adolphs Junior

anunciou no grupo de arquitetura a vinda do Akka para o .NET Standard em 27/Maio/2017

Eu, Luiz Carlos Faria

trouxe o tema para discussão em 28/fev/2018 e 15/Abril/2017

Mas o que me motivou a tocar no assunto?

A live do Fabio Gouw (GitHub | Linkedin) no Canal .NET, onde tirei uma dezena de dúvidas me ajudou no interesse pelo Microsoft Orleans.

A live foi fantástica, teve a presença de Magoo, vulgo Alexandre Costa. Onde debatemos sobre o assunto.

O que me motivou a escrever esse post e criar um projeto no GitHub foi a possibilidade de Dockenizar esse projeto e trazer para a realidade dos containers.

Para isso foi necessário realizar análises da documentação e do projeto fabiogouw/OrleansDemo do Fabio que usei para entender algumas decisões.

Meu principal objetivo era trazer para o jogo elementos como Consul, comum no papel de service discovery. Usar uma persistência em um NoSQL como o MongoDB. Isso porque a estrutura de dados do Orleans não tem dependências com modelos relacionais, portanto poderia usar o MongoDB que se encaixa perfeitamente a esse cenário.

Assim nasce luizcarlosfaria/microsoft-orleans-demo um seed project (projeto semente) beeeem divertido.

Microsoft Orleans 3.0 on .NET Core 3 - Seed project

Features

Silo e Cliente executando 100% configurados e rodando com Containers Docker

Tanto o Silo quando o Cliente são aplicações .NET Core 3.0 rodando em containers docker no Linux.

Persistência de Grains no MongoDB

1 Pré-configurado com persistência de Grains direto no MongoDB 4.2.

Service/Silo Discovery (clustering) com Consul

Hashicorp Consul pré-configurado para trabalhar como Discovery para os Silos.

Integrado ao Visual Studio

Clone, Play & Debug! Tudo integrado ao Visual Studio, pronto para debug.

Todos os serviços são hospedados e gerenciados com Docker Compose

O stack é todo implantado com Docker Compose, integrado ao Visual Studio.

Dashboard integrado

Dashboard Configurado e Integrado à Solução

alt text

Requisitos

  • Visual Studio 2019
  • .NET Core 3.0 SDK
  • Docker e Docker Compose

Get Started

Faça o clone do projeto.

Abra a solução ./gaGO.io.MicrosoftOrleansDemo.sln.

Sete o projeto docker-compose como startup project.

Pressione F5.

Conclusão

Orleans e Actor Models são assuntos fantásticos, já tem bastante gente falando sobre o tema.

Por hora, você já tem 2 exemplos bem legais (o meu e o do Fabio) para testar e ver como as coisas funcionam.

Não deixe de marcar o projeto no GITHUB com estrela e colocar na sua watch list para poder receber notificações sobre as evoluções do projeto.

UPDATE 1

Dica do CR (@Crsxx no telegram)!

Um vídeo com "Hewitt é o idealizador do actor model, Meijer é uma das cabeças por trás do LINQ e Reactive Extensions".

Hewitt, Meijer and Szyperski: The Actor Model (everything you wanted to know, but were afraid to ask)

0 comentários

Enviar um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

[docker de a a z]

Lives

Fique de olho nas lives

Fique de olho nas lives no meu canal do Youtube, no Canal .NET e nos Grupos do Facebook e Instagram.

Aceleradores

Existem diversas formas de viabilizar o suporte ao teu projeto. Seja com os treinamentos, consultoria, mentorias em grupo.