SlideShare uma empresa Scribd logo
.NET
Aplicações distribuídas com .NET e
Apache Kafka
RenatoGroffe
Microsoft MVP, MTAC
Gustavo Bigardi
Microsoft MVP
AGENDAAGENDA
Sistemas distribuídos
Apache Kafka
Serverless / Azure Functions
Exemplos práticos
Sistemas
distribuído
s
Não distribua!
Aplicações Distribuídas com .NET e Apache Kafka
Separar em APIs não necessariamente
quer dizer micros serviços
Aplicações Distribuídas com .NET e Apache Kafka
O que não é?
Microsserviços
• Banco de dados
compartilhado entre 2 ou
mais aplicações;
• Alta dependência de outros
serviços para comunicação;
• Não possui autonomia para
publicação sem ter que
publicar demais serviços;
• Acumula mais
responsabilidades do que seu
objetivo (lembram do S de
SOLID? Vale aqui também);
O que é?
Microsserviços
• Banco de dados dedicados e
isolados se necessário;
• Alta resiliência, podendo se
manter funcionais, ativos,
mesmo que outros serviços
esteja indisponíveis.
• Podem ser publicados a
qualquer momento, sem
dependência direta de outros
serviços;
• Enxuto e focado apenas na
responsabilidade ao qual foi
proposto, como emitir NFe,
processar pagamento, etc.;
Pontos
Positivos
Microsserviços
• Aumentam a disponibilidade e
resiliência de uma solução;
• Permite lidar melhor com grandes
quantidades de acessos e
escalabilidade por serviço, parte
do negócio da aplicação;
• Permite que processamentos mais
demorados sejam realizados em
background com resiliência;
• Melhor distribuição de recursos e
escalabilidade de times de
desenvolvimento grandes,
inclusive com tecnologias
diferentes;
Pontos
Negativos
ou Atenção
Microsserviços
• Aumentam a complexidade
da solução;
• Exige um grande nível de
maturidade nos times e
cultura de DevOps na
empresa;
• Custos melhor distribuídos,
mas não necessariamente
menores, e sim maiores;
• Exige equipes de
monitoramento, arquitetura
sólida comunicação constante
entre times;
Arquitetura
Avalie as necessidades
• Sistema Global
• Alta Disponibilidade / Missão
Crítica
• Custo Operacional
• Evolução
• Times grandes
Arquitetura
Avalie os riscos
• Manutenção
• Custo Operacional
(novamente)
• Times grandes
• Hype
• Comparação com empresas
que utilizam
Apache Kafka
• Kafka foi desenhado para
mover dados em alta
performance;
• Distribuído nativamente e por
padrão, tolerante a falhas;
• Flexível para pub/sub;
• Baixo acoplamento;
• Escalável horizontalmente;
• Usa tópicos ao invés de filas
Mensageria
Filas
Mensageria
Tópicos
Tópicos no
Kafka
• Um tópico é basicamente um
stream que atua como banco
de dados;
• Possui armazenamento
persistente;
• Pode ter 1 ou mais partições,
para organizar melhor os
consumidores e uso de
recursos;
• A quantidade de partições é
definida ao criar um tópico;
• Consumidores são registrados
em grupos. Um mesmo grupo
tem mensagens únicas,
enquanto grupos diferentes
recebem a mesma mensagem
(broadcast)
Visão geral
Azure Functions
• Arquitetura serverless
• Desenvolvimento
multiplataforma (Windows,
Linux e Mac) e orientado a
eventos
• Utilização de
Triggers/Gatilhos, com
suporte à mensageria,
chamadas HTTP e outros
tipos de eventos
• Implementação
descomplicada
Visão geral
Azure Functions
• Baixo Custo
• Atualmente na versão 3.x
• Suporte a várias plataformas
de desenvolvimento
Plataformas
Desenvolvimento
Exemplos práticos
(a.k.a. Demos)
https://github.com/renatogroffe/TDCPortoAlegre-
2020
Obrigado!!!

Mais conteúdo relacionado

PPTX
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
PPTX
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
PPTX
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021
PPTX
Azure Event Hubs: processando eventos em tempo real | MVPConf Latam 2021
PPTX
Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...
PPTX
O novo ASP.NET - Stone Tech Saturday - Março/2017
PPTX
Mulesoft Meetup Latam Summit Brazil
PPTX
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021
Azure Event Hubs: processando eventos em tempo real | MVPConf Latam 2021
Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...
O novo ASP.NET - Stone Tech Saturday - Março/2017
Mulesoft Meetup Latam Summit Brazil
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017

Mais procurados (20)

PDF
Transportando as aplicações entre vários ambientes com Docker
PDF
Arquitetura de microsserviços
PDF
Adotando o Wordpress
PDF
Apresentação sobre Zabbix na iDEZ 2012
PDF
Um método para o desenvolvimento de software baseado em microsserviços
PDF
TCC 1 - Um método para o desenvolvimento de software baseado em microserviços
PPTX
Microsserviços com Serverles e Azure Functions
PDF
Explicando DevOps
PPTX
Dapper - Developers-SP - Junho/2017
PDF
De zero a cem em cloud computing transformando idéias em aplicações em pouco...
PPSX
GABC 2018 - Hands-On: DevOps, CI e CD
PDF
Segurança e automação na Amazon: Lições das trincheiras
PPTX
Slide Live Conhecendo o Kubernetes
PDF
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
PDF
Phprs meetup - deploys automatizados com gitlab
PPTX
Microsserviços, moda ou necessidade?
PPTX
Iac & DevOps no Azure: Automatizando deployments
PDF
Microservices com ASP.NET 5
PDF
Falando sobre DevOps no azure
PDF
4 passos para a Transformação Digital
Transportando as aplicações entre vários ambientes com Docker
Arquitetura de microsserviços
Adotando o Wordpress
Apresentação sobre Zabbix na iDEZ 2012
Um método para o desenvolvimento de software baseado em microsserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviços
Microsserviços com Serverles e Azure Functions
Explicando DevOps
Dapper - Developers-SP - Junho/2017
De zero a cem em cloud computing transformando idéias em aplicações em pouco...
GABC 2018 - Hands-On: DevOps, CI e CD
Segurança e automação na Amazon: Lições das trincheiras
Slide Live Conhecendo o Kubernetes
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
Phprs meetup - deploys automatizados com gitlab
Microsserviços, moda ou necessidade?
Iac & DevOps no Azure: Automatizando deployments
Microservices com ASP.NET 5
Falando sobre DevOps no azure
4 passos para a Transformação Digital
Anúncio

Semelhante a Aplicações Distribuídas com .NET e Apache Kafka (20)

PPTX
Aplicações Distribuídas com .NET | TDC Recife Online 2020
PPTX
Projetando aplicações para a nuvem
PPTX
Kafka: Uma introdução para Desenvolvedores e Arquitetos
PPTX
Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...
PPTX
Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...
PPTX
10 Serviços do Azure que você precisa conhecer na prática - Azure Nights #1 -...
PDF
Apache Kafka: Comunicando microsserviços com performance
PPTX
Migrando Aplicações Legadas para Nuvem
PPTX
Azure + Desenvolvimento Web | Minicurso Gratuito - Azure na Prática
PPTX
Sobrevoando os serviços do Azure | TDC Florianópolis Online 2020
PPTX
IaaS, PaaS e SaaS para Developers
PPTX
.NET: Passado, Presente, Futuro, Mercado de Trabalho… | Generation Brazil
PDF
Preparando sua arquitetura para microservicos
PDF
Apache kafka
PPTX
Microsoft opensource
 
PPT
Servidores de Aplicações
PPTX
Microsoft opensource
 
PPTX
Construindo APIs REST escaláveis na nuvem com Docker e Kubernetes - DEVPIRA F...
PPTX
Cloud Solutions com Microsoft Azure - Azure Talks - Novembro-2019
PPTX
Microsoft .Net
Aplicações Distribuídas com .NET | TDC Recife Online 2020
Projetando aplicações para a nuvem
Kafka: Uma introdução para Desenvolvedores e Arquitetos
Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...
Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...
10 Serviços do Azure que você precisa conhecer na prática - Azure Nights #1 -...
Apache Kafka: Comunicando microsserviços com performance
Migrando Aplicações Legadas para Nuvem
Azure + Desenvolvimento Web | Minicurso Gratuito - Azure na Prática
Sobrevoando os serviços do Azure | TDC Florianópolis Online 2020
IaaS, PaaS e SaaS para Developers
.NET: Passado, Presente, Futuro, Mercado de Trabalho… | Generation Brazil
Preparando sua arquitetura para microservicos
Apache kafka
Microsoft opensource
 
Servidores de Aplicações
Microsoft opensource
 
Construindo APIs REST escaláveis na nuvem com Docker e Kubernetes - DEVPIRA F...
Cloud Solutions com Microsoft Azure - Azure Talks - Novembro-2019
Microsoft .Net
Anúncio

Mais de Gustavo Bellini Bigardi (20)

PPTX
Canal DotNet - Design Patterns - Mediator
PPTX
Azure Labs - Publicando APIs no Azure
PPTX
MVP Week 2020 - Aplicações Modernas com Blazor WASM
PPTX
Codificando Night Week - Blazor, tornando o fullstack C# possível!
PPTX
Ignite The Tour 2019 - Sao Paulo - Blazor, AI & Blockchain
PPTX
DevPira2019 - Blazor
PPTX
Dev week2019 blazor
PPTX
Microsservicos serverles combinacao perfeita
PPTX
Microsservicos com node js + azure functions + azure service bus
PPTX
Blazor and azure functions for serverless websites
PPTX
Implementando rapidamente web apps com blazor e serverless
PPTX
Distribuindo seu app Blazor no Azure com Storage + CDN
PPTX
Esqueca o ETL! Estraindo métricas com CosmosDB e Serverless
PPTX
Blazor, web assembly e o futuro do browser
PPTX
Serverless com azure functions e node js
PPTX
Fullstack C# com Blazor
PPTX
CapiConf Online - Utilizando reconhecimento facial para segurança em aplicações
PPTX
Meetup - FC Nuvem - Serviços Cognitivos
PPTX
7Masters - PWA - Publishing using Universal Windows Apps
PPTX
Azure Conference 2018 - Face Service para gestão de qualidade em Callcenters
Canal DotNet - Design Patterns - Mediator
Azure Labs - Publicando APIs no Azure
MVP Week 2020 - Aplicações Modernas com Blazor WASM
Codificando Night Week - Blazor, tornando o fullstack C# possível!
Ignite The Tour 2019 - Sao Paulo - Blazor, AI & Blockchain
DevPira2019 - Blazor
Dev week2019 blazor
Microsservicos serverles combinacao perfeita
Microsservicos com node js + azure functions + azure service bus
Blazor and azure functions for serverless websites
Implementando rapidamente web apps com blazor e serverless
Distribuindo seu app Blazor no Azure com Storage + CDN
Esqueca o ETL! Estraindo métricas com CosmosDB e Serverless
Blazor, web assembly e o futuro do browser
Serverless com azure functions e node js
Fullstack C# com Blazor
CapiConf Online - Utilizando reconhecimento facial para segurança em aplicações
Meetup - FC Nuvem - Serviços Cognitivos
7Masters - PWA - Publishing using Universal Windows Apps
Azure Conference 2018 - Face Service para gestão de qualidade em Callcenters

Último (19)

PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Apple Pippin Uma breve introdução. - David Glotz
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Processos na gestão de transportes, TM100 Col18
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Aula 18 - Manipulacao De Arquivos python
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Aula04-Academia Heri- Tecnologia Geral 2025
COBITxITIL-Entenda as diferença em uso governança TI
Custos e liquidação no SAP Transportation Management, TM130 Col18
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26

Aplicações Distribuídas com .NET e Apache Kafka

  • 1. .NET Aplicações distribuídas com .NET e Apache Kafka RenatoGroffe Microsoft MVP, MTAC Gustavo Bigardi Microsoft MVP
  • 2. AGENDAAGENDA Sistemas distribuídos Apache Kafka Serverless / Azure Functions Exemplos práticos
  • 6. Separar em APIs não necessariamente quer dizer micros serviços
  • 8. O que não é? Microsserviços • Banco de dados compartilhado entre 2 ou mais aplicações; • Alta dependência de outros serviços para comunicação; • Não possui autonomia para publicação sem ter que publicar demais serviços; • Acumula mais responsabilidades do que seu objetivo (lembram do S de SOLID? Vale aqui também);
  • 9. O que é? Microsserviços • Banco de dados dedicados e isolados se necessário; • Alta resiliência, podendo se manter funcionais, ativos, mesmo que outros serviços esteja indisponíveis. • Podem ser publicados a qualquer momento, sem dependência direta de outros serviços; • Enxuto e focado apenas na responsabilidade ao qual foi proposto, como emitir NFe, processar pagamento, etc.;
  • 10. Pontos Positivos Microsserviços • Aumentam a disponibilidade e resiliência de uma solução; • Permite lidar melhor com grandes quantidades de acessos e escalabilidade por serviço, parte do negócio da aplicação; • Permite que processamentos mais demorados sejam realizados em background com resiliência; • Melhor distribuição de recursos e escalabilidade de times de desenvolvimento grandes, inclusive com tecnologias diferentes;
  • 11. Pontos Negativos ou Atenção Microsserviços • Aumentam a complexidade da solução; • Exige um grande nível de maturidade nos times e cultura de DevOps na empresa; • Custos melhor distribuídos, mas não necessariamente menores, e sim maiores; • Exige equipes de monitoramento, arquitetura sólida comunicação constante entre times;
  • 12. Arquitetura Avalie as necessidades • Sistema Global • Alta Disponibilidade / Missão Crítica • Custo Operacional • Evolução • Times grandes
  • 13. Arquitetura Avalie os riscos • Manutenção • Custo Operacional (novamente) • Times grandes • Hype • Comparação com empresas que utilizam
  • 14. Apache Kafka • Kafka foi desenhado para mover dados em alta performance; • Distribuído nativamente e por padrão, tolerante a falhas; • Flexível para pub/sub; • Baixo acoplamento; • Escalável horizontalmente; • Usa tópicos ao invés de filas
  • 17. Tópicos no Kafka • Um tópico é basicamente um stream que atua como banco de dados; • Possui armazenamento persistente; • Pode ter 1 ou mais partições, para organizar melhor os consumidores e uso de recursos; • A quantidade de partições é definida ao criar um tópico; • Consumidores são registrados em grupos. Um mesmo grupo tem mensagens únicas, enquanto grupos diferentes recebem a mesma mensagem (broadcast)
  • 18. Visão geral Azure Functions • Arquitetura serverless • Desenvolvimento multiplataforma (Windows, Linux e Mac) e orientado a eventos • Utilização de Triggers/Gatilhos, com suporte à mensageria, chamadas HTTP e outros tipos de eventos • Implementação descomplicada
  • 19. Visão geral Azure Functions • Baixo Custo • Atualmente na versão 3.x • Suporte a várias plataformas de desenvolvimento