Globalcode – Open4education
Arquitetura .NET – .NET + Microsserviços: alternativas open
source para descomplicar a sua vida
Renato Groffe – Walter Coan
Globalcode – Open4education
Renato Groffe
Microsoft Most Valuable Professional (MVP)
Multi-Plataform Technical Audience Contributor (MTAC)
20 anos de experiência na área de Tecnologia
Community Leader, Autor Técnico e Palestrante
https://renatogroffe.medium.com/
Globalcode – Open4education
Walter Silvestre Coan
Microsoft MVP em Azure 2020/2021
Certificações
Azure Solutions Architect
Azure Security Engineer
Azure IoT Developer – Specialty
Azure Developer – Associate
Azure Administrator - Associate
Azure Fundamentals
MCT
MCSD – MCSA (C# e Web Apps)
AWS Academy Accredited Educator
AWS Certified Developer – Associate
AWS Certified Cloud Practitioner
Sun Certified Programmer em Java 5.0
Mestre em Ciência da Computação na área de Sistemas
Distribuídos e Redes de Sensores sem Fio - PUCPR
Pós-Graduado em Engenharia de Software - PUCPR
Bacharel em Informática - UNIVILLE
Professor no Bacharelado em Sistemas de Informação e do
Bacharelado em Engenharia de Software da UNIVILLE
walter.coan@gmail.com – walter.s@univille.br – www.waltercoan.com.br
Globalcode – Open4education
Agenda
Resiliência e Chaos Engineering
CQS e CQRS
Mensageria
Exemplos práticos
Globalcode – Open4education
Algumas práticas comuns
com Microservices
Implementações resilientes e Chaos
Engineering
Adoção de técnicas como CQS e CQRS
Uso de mensageria
Globalcode – Open4education
Polly: Tratamento de Falhas e
Resiliência em .NET
Garantir uma alta disponibilidade da
aplicação
Tratar falhas que certamente irão ocorrer
Impedir o mau funcionamento de uma
aplicação
Globalcode – Open4education
Polly: Tratamento de Falhas e
Resiliência em .NET
Aplicações Web, desktop, mobile…
Tratamento de falhas e resiliência com
um código mais simples (evitando try-
catch, loops)
Suporte a Patterns como Retry, Circuit
Breaker, Timeout e Fallback
Globalcode – Open4education
Circuit Breaker
Close
Half-
Open
Open
O padrão Circuit Breaker, popularizado
por Michael Nygard em seu livro, Release
It!, pode impedir que um aplicativo tente
repetidamente executar uma operação
que provavelmente falhará. Permitir que
continue sem esperar que a falha seja
corrigida ou desperdiçar ciclos de CPU
enquanto determina que a falha é de
longa duração. Ele também permite que
um aplicativo detecte se a falha foi
resolvida. Se o problema parece ter sido
corrigido, o aplicativo pode tentar invocar
a operação.
Fonte: https://docs.microsoft.com/pt-br/azure/architecture/patterns/circuit-breaker?WT.mc_id=AZ-MVP-5003638
Globalcode – Open4education
Simmy
Simmy é uma ferramenta de Engenharia de Caos (Chaos
Engineering) e injeção de falhas, integrando-se ao projeto de
resiliência Polly para .NET
AsyncPolicyWrap
CircuitBreakerAsync
BulkheadAsync
InjectExceptionAsync
Globalcode – Open4education
CQS e CQRS em .NET com
MediatR
Implementação do pattern Mediator
Favorece um baixo acoplamento
Facilita implementações baseadas em
CQS (Command-query Separation) e
CQRS (Command query responsibility
separation)
Globalcode – Open4education
Mensageria em .NET com
MassTransit
Descomplica a implementação de
aplicações distribuídas
Suporte a diversas soluções de
mensageria
Globalcode – Open4education
Exemplos práticos
https://github.com/renatogroffe/DotNet6-Microservices-TDC_Connections-2022
https://github.com/waltercoan/tdc2022con-webapi-dotnet6-polly-simmy
.NET + Microsserviços: alternativas open source para descomplicar a vida | TDC Connections 2022

.NET + Microsserviços: alternativas open source para descomplicar a vida | TDC Connections 2022

  • 1.
    Globalcode – Open4education Arquitetura.NET – .NET + Microsserviços: alternativas open source para descomplicar a sua vida Renato Groffe – Walter Coan
  • 2.
    Globalcode – Open4education RenatoGroffe Microsoft Most Valuable Professional (MVP) Multi-Plataform Technical Audience Contributor (MTAC) 20 anos de experiência na área de Tecnologia Community Leader, Autor Técnico e Palestrante https://renatogroffe.medium.com/
  • 3.
    Globalcode – Open4education WalterSilvestre Coan Microsoft MVP em Azure 2020/2021 Certificações Azure Solutions Architect Azure Security Engineer Azure IoT Developer – Specialty Azure Developer – Associate Azure Administrator - Associate Azure Fundamentals MCT MCSD – MCSA (C# e Web Apps) AWS Academy Accredited Educator AWS Certified Developer – Associate AWS Certified Cloud Practitioner Sun Certified Programmer em Java 5.0 Mestre em Ciência da Computação na área de Sistemas Distribuídos e Redes de Sensores sem Fio - PUCPR Pós-Graduado em Engenharia de Software - PUCPR Bacharel em Informática - UNIVILLE Professor no Bacharelado em Sistemas de Informação e do Bacharelado em Engenharia de Software da UNIVILLE walter.coan@gmail.com – walter.s@univille.br – www.waltercoan.com.br
  • 4.
    Globalcode – Open4education Agenda Resiliênciae Chaos Engineering CQS e CQRS Mensageria Exemplos práticos
  • 5.
    Globalcode – Open4education Algumaspráticas comuns com Microservices Implementações resilientes e Chaos Engineering Adoção de técnicas como CQS e CQRS Uso de mensageria
  • 6.
    Globalcode – Open4education Polly:Tratamento de Falhas e Resiliência em .NET Garantir uma alta disponibilidade da aplicação Tratar falhas que certamente irão ocorrer Impedir o mau funcionamento de uma aplicação
  • 7.
    Globalcode – Open4education Polly:Tratamento de Falhas e Resiliência em .NET Aplicações Web, desktop, mobile… Tratamento de falhas e resiliência com um código mais simples (evitando try- catch, loops) Suporte a Patterns como Retry, Circuit Breaker, Timeout e Fallback
  • 8.
    Globalcode – Open4education CircuitBreaker Close Half- Open Open O padrão Circuit Breaker, popularizado por Michael Nygard em seu livro, Release It!, pode impedir que um aplicativo tente repetidamente executar uma operação que provavelmente falhará. Permitir que continue sem esperar que a falha seja corrigida ou desperdiçar ciclos de CPU enquanto determina que a falha é de longa duração. Ele também permite que um aplicativo detecte se a falha foi resolvida. Se o problema parece ter sido corrigido, o aplicativo pode tentar invocar a operação. Fonte: https://docs.microsoft.com/pt-br/azure/architecture/patterns/circuit-breaker?WT.mc_id=AZ-MVP-5003638
  • 9.
    Globalcode – Open4education Simmy Simmyé uma ferramenta de Engenharia de Caos (Chaos Engineering) e injeção de falhas, integrando-se ao projeto de resiliência Polly para .NET AsyncPolicyWrap CircuitBreakerAsync BulkheadAsync InjectExceptionAsync
  • 10.
    Globalcode – Open4education CQSe CQRS em .NET com MediatR Implementação do pattern Mediator Favorece um baixo acoplamento Facilita implementações baseadas em CQS (Command-query Separation) e CQRS (Command query responsibility separation)
  • 11.
    Globalcode – Open4education Mensageriaem .NET com MassTransit Descomplica a implementação de aplicações distribuídas Suporte a diversas soluções de mensageria
  • 12.
    Globalcode – Open4education Exemplospráticos https://github.com/renatogroffe/DotNet6-Microservices-TDC_Connections-2022 https://github.com/waltercoan/tdc2022con-webapi-dotnet6-polly-simmy