.NET
Cloud Native e Cloud Agnostic
para rodar .NET em qualquer Cloud
ou sem Cloud sempre de forma profissional!
Últimas publicações
The Microservices Journey – S2E1: Independência ou morte
Recentemente a discussão sobre microsserviços retornou das profundezas da escuridão, sob temas superados, e reforçados em inúmeras oportunidades ao longo dos últimos anos. Afinal, banco de dados compartilhado? Pode? E monorepo? Faz sentido? E o que Sam Newman diz sobre isso tudo? Será que ele...
Oragon.RabbitMQ – A relação entre Ack e Resiliência
Oragon.RabbitMQ está no forno! Hoje começamos uma série que trata dos argumentos para a criação desse projeto. Começamos pela relação entre a escolha entre Ack Manual e Ack Automático e por que ack automático remove o benefício da resiliência no consumo de mensagens do RabbitMQ. Se olharmos os...
Habemus .NET ASPIRE
Estamos no último dia do Microsoft Build e sem sombra de dúvidas o maior lançamento dessa edição é o .NET ASPIRE. É hora de falar tudo que você precisa saber sobre a história recente que nos remete à criação do projeto e suas ambições. A conta não fecha Conforme havíamos sinalizado em 2022,...
Generalismo: Um trampolim para excelência ou um atalho para o fracasso?
No mundo dinâmico do desenvolvimento de software, o debate entre especialização e generalismo é eterno. Com a rápida evolução das tecnologias, a pressão para que os desenvolvedores se adaptem e expandam suas habilidades é intensa. Mas, qual é a melhor abordagem: ser um especialista em uma área ou...
Quando fazer upgrade da minha aplicação .NET?
Muitas vezes aparece a dúvida sobre quando fazer o upgrade de uma versão do .NET. Será que vale a pena pular de LTS em LTS ou vale a pena pegar as STS's no meio do caminho? Empresas burocráticas, devem mudar suas políticas ou não? Hoje vamos tratar desse assunto, com os meus argumentos, mostrando...
.NET ASPIRE Dashboard Standalone como Container
Nessa sexta-feira dia 16 foi lançado o Dashboard do ASPIRE como uma implementação OTLP standalone, em uma imagem docker, pronta para uso. Entenda as novidades nesse post. Novidade no .NET ASPIRE, habemus dashboard para todos! Ontem, dia 16, David Fowler postou uma nova feature do .NET ASPIRE....
Microsoft Artifact Registry (MAR) – Descobrindo imagens e tags
Ao longo da jornada de containers do novo .NET desde sua primeira versão (.NET Core), temos o docker hub e posteriormente o MCR servindo imagens docker para nossas aplicações e servidores. Sempre foi chato buscar as tags disponíveis, nos fazendo voltar às documentações e papers que descrevem...
OCR Minimal API | .NET 8
Já pensou subir um serviço, com um simples docker run e ter um OCR ilimitado disponível para seu sistema? Você pode usar, comercializar, e fazer absolutamente qualquer coisa com o OCR. Você pode usar para leitura de documentos, validação de prints, e muito mais. Pois bem, hoje falarei sobre um...
Logs Estruturados – Correlacionando Dados Técnicos com Eventos de Negócio
Introdução Em um mundo onde dado é o novo petróleo, a habilidade de extrair informações valiosas de um mar de dados é crucial. No contexto da observabilidade em arquiteturas de software, os logs estruturados desempenham um papel central. Eles não são apenas ferramentas para trace, debug ou...
Comece sempre com 2 instâncias
Subir uma única instância de qualquer componente, seja uma API, um Worker ou um Job, pode parecer suficiente em fases iniciais. No entanto, a verdadeira eficiência e capacidade de resposta de uma aplicação só são testadas quando operam em múltiplas instâncias. Iniciar com duas ou mais instâncias...
Cloud Native .NET com .NET Aspire – Primeiras Impressões
Um dos lançamentos do .NET Conf foi o .NET Aspire. Ele é um orquestrador de recursos (containers ou não), é um conjunto de building blocks para inicialização resiliente e observável dos principais recursos que sua aplicação pode depender. Diferente de tudo que já vimos, hoje começamos a desvendar...
Keyed DI services e Como o uso de tipos como identidade penaliza o design
Nos últimos anos vimos muitas implementações que usam Tipos (classes ou interfaces) como discriminador único em diversos contextos. Essa é uma decisão prejudicial que torna o design mais burocrático, eleva a complexidade desnecessariamente. Como veremos nesse post o resultado é que temos um código...
Projetos Open Source
projetos ativos e projetos antigos disponíveis para estudo
Nenhum resultado encontrado
A página que você solicitou não foi encontrada. Tente refinar sua pesquisa, ou use a navegação acima para localizar a postagem.
Entender | Analisar | Projetar | Desenvolver | Implantar | Manter
A segurança que você busca não está em um tutorialPara entender uma tecnologia é importante entender o que influenciou sua criação, o que ela faz de fato, como ela faz. Para que então se sinta seguro e confiante a respeito das decisões que está prestes a tomar.
De um lado precisamos compreender o que está sendo feito por baixo dos panos para descobrir como extrair o máximo de uma tecnologia ou, ao menos, não atrapalhar o bom funcionamento dela.
O Cloud Native .NET é uma jornada de descoberta sobre tecnologias e patterns que fazem parte da maioria dos softwares que usamos, que somos usuários e que suportam e toleram altas cargas de trabalho, de forma eficaz, eficiente e sustentável.
É primeiro entendendo o que eles fazem, que podemos descobrir oportunidades e evoluir no que fazemos…
Conheça nosso Podcast
DevShow PodcastEm 2019 resolvemos criar um podcast, o DevShow Podcast, desde lá são mais de 40 episódios com muito assunto legal, sempre com essa pegada pessoal, falando coisas sérias, mas sem o menor compromisso com a formalidade.
.NET
OCR Minimal API | .NET 8
Já pensou subir um serviço, com um simples docker run e ter um OCR ilimitado disponível para seu sistema? Você pode usar, comercializar, e fazer absolutamente qualquer coisa com o OCR.
Você pode usar para leitura de documentos, validação de prints, e muito mais.
Pois bem, hoje falarei sobre um projeto que criei e pode te economizar tempo e dinheiro no seu próximo projeto.
ler mais…Comece sempre com 2 instâncias
Subir uma única instância de qualquer componente, seja uma API, um Worker ou um Job, pode parecer suficiente em fases iniciais. No entanto, a verdadeira eficiência e capacidade de resposta de uma aplicação só são testadas quando operam em múltiplas instâncias. Iniciar com duas ou mais instâncias desde o começo do projeto não é apenas uma medida de precaução, mas uma estratégia proativa para garantir paz de espírito e salvar noites de sono.
ler mais…Cloud Native .NET com .NET Aspire – Primeiras Impressões
Um dos lançamentos do .NET Conf foi o .NET Aspire. Ele é um orquestrador de recursos (containers ou não), é um conjunto de building blocks para inicialização resiliente e observável dos principais recursos que sua aplicação pode depender.
Diferente de tudo que já vimos, hoje começamos a desvendar o .NET Aspire e seus recursos.
ler mais…Keyed DI services e Como o uso de tipos como identidade penaliza o design
Nos últimos anos vimos muitas implementações que usam Tipos (classes ou interfaces) como discriminador único em diversos contextos.
Essa é uma decisão prejudicial que torna o design mais burocrático, eleva a complexidade desnecessariamente. Como veremos nesse post o resultado é que temos um código mais caro e mais pobre.
Esse fenômeno afeta o mecanismo de injeção de dependência do ASP.NET, MediatR, Masstransit e outras várias implementações da Microsoft ou da comunidade.
Há exemplos dessa natureza por todo lado.
Hoje é dia de explicar porque tipos, sozinhos, são incompletos e porque estamos reaproveitando cada vez menos nosso código.
ler mais…RabbitMQ e .NET – Usar ou não usar bibliotecas?
Nesse post detalho meus argumentos para que você não use nenhuma abstração e use o cliente nativo do RabbitMQ feito para .NET.
ler mais…Arquitetura
Habemus .NET ASPIRE
Estamos no último dia do Microsoft Build e sem sombra de dúvidas o maior lançamento dessa edição é o .NET ASPIRE.
É hora de falar tudo que você precisa saber sobre a história recente que nos remete à criação do projeto e suas ambições.
ler mais….NET ASPIRE Dashboard Standalone como Container
Nessa sexta-feira dia 16 foi lançado o Dashboard do ASPIRE como uma implementação OTLP standalone, em uma imagem docker, pronta para uso.
Entenda as novidades nesse post.
ler mais…Cloud Native .NET com .NET Aspire – Primeiras Impressões
Um dos lançamentos do .NET Conf foi o .NET Aspire. Ele é um orquestrador de recursos (containers ou não), é um conjunto de building blocks para inicialização resiliente e observável dos principais recursos que sua aplicação pode depender.
Diferente de tudo que já vimos, hoje começamos a desvendar o .NET Aspire e seus recursos.
ler mais…RabbitMQ e .NET – Usar ou não usar bibliotecas?
Nesse post detalho meus argumentos para que você não use nenhuma abstração e use o cliente nativo do RabbitMQ feito para .NET.
ler mais…Filas exclusivas e autodelete
Nem sempre as demandas exigem filas que durem aos restarts da sua aplicação. Há casos de uso significativos em que você quer que a fila nasça com a instância da sua aplicação e morra junto com ela.
Embora seja um conceito trivial, em mais de 10 anos usando RabbitMQ, essa foi a primeira vez que tive de fato essa a necessidade de adotar essa abordagem.
ler mais…Containers
RabbitMQ Operators | RabbitMQ Messaging Topology Operator for Kubernetes – Tutorial PT-BR
No último post sobre Operators, eu falei sobre o RabbitMQ Cluster Operator for Kubernetes, o papel dele é construir um cluster. Uma vez que o cluster está ativo e em operação, é hora de começar a usar esse cluster. Virtual Host, Exchanges, Filas e Binds, afinal quem e quando eu deveria criar esses recursos?
Eles devem ser criados previamente durante a construção do cluster?
Ou durante o deployment da aplicação?
Ou especificamente pela aplicação?
ler mais…Perdemos 17 anos por não entender redes Docker
Somos 6390 pessoas no grupo de Docker do telegram. Se cada um de nós perdeu ao menos 1 dia tentando fazer 2 contêineres conversarem então juntos perdemos mais de 17 anos!
Esse é um guia prático de redes docker que ajudará a entender esse universo.
A missão desse post é trazer os principais conceitos para evitar sofrimento. São conceitos ridiculamente simples, mas que vão poupar horas, dias ou até semanas de cada indivíduo que ler esse post.
Como sei isso?
Bom, eu ajudo a comunidade docker desde 2016, todo dia, várias vezes por dia.
ler mais…RabbitMQ Operators | RabbitMQ Cluster Operator for Kubernetes – Tutorial PT-BR
E se eu dissesse para você que você pode, com apenas 1 comando, criar um cluster RabbitMQ dentro do seu Kubernetes, de forma segura e prática?
Hoje é a vez de criarmos o seu cluster RabbitMQ com a ajuda do RabbitMQ Cluster Operator for Kubernetes.
ler mais…RabbitMQ Operators | Entendendo Kubernetes Operators
Embora não seja comum ver conteúdo sobre o assunto, Operators está no coração do Kubernetes e esse definitivamente é um dos temas mais legais na minha opinião no que diz respeito ao projeto.
Nessa série composta por 3 posts, vamos abordar step-by-step os 2 operators do RabbitMQ, mas hoje vamos primeiro elucidar o que são Operators e CRD’s.
ler mais…Os 6 níveis de maturidade no uso de Containers
Do usuário eventual ao heavy user, Docker consegue entregar diversas experiências de acordo com seu nível de maturidade e conhecimento.
ler mais…Mensageria
10 anos com RabbitMQ — O que aprendi sobre – parte 1
Uma das ferramentas que mudou minha carreira foi sem dúvidas o RabbitMQ.
RabbitMQ, embora tenha Coelho no nome, se comporta mais como um cavalo selvagem e arisco.
Mensageria, Aplicações assíncronas e Aplicações distribuídas são mais complexas, mas dão um poder que poucos no mercado conseguem compreender, e hoje quero trazer um pouco dessa experiência acumulada ao longo de uma década usando RabbitMQ em produção em projetos de todos os tamanhos.
Hoje é dia de falarmos de RabbitMQ.
ler mais…RabbitMQ Clustering #6 | Formas de Configurar um cluster
Agora vou te dar algumas estratégias diferentes para a construção do Cluster. Uma estática, outra baseada em peer discovery. Aí podemos usar K8S, Etcd, Consul ou o próprio EC2.
ler mais…RabbitMQ Clustering #5 | Projetando para disponibilidade
Se você sabe que precisa de um cluster, então é hora de pensar em como desenhar esse projeto.
ler mais…RabbitMQ Clustering #4 | Como as mensagens são persistidas
RabbitMQ é um excelente aliado na hora de entregar alta disponibilidade, resiliência, confiabilidade, eficiência e escalabilidade. Mas não basta subir uma instância, e sair usando de qualquer forma.
Um dos cenários mais comuns que já esbarrei em consultorias ou na comunidade, é a falta de atenção por total ignorância, produzindo como efeito, risco.
Na ansia de pegar um exemplo e tentar rodar com base no exemplo, ignoram-se os fundamentos, ignoram-se as boas prática e o entendimento de como RabbitMQ funciona e como consequência, o que está sendo implantado vai falhar, vai perder mensagens.
ler mais…RabbitMQ Clustering #3 | RabbitMQ consome muita memória e disco?
Será que o RabbitMQ consome demais?
ler mais…Conteúdo e Posicionamento
.NET + Cloud Native + Cloud Agnostic
.NET | DevOps | Microservices | Containers | Continuous Delivery
.NET muito além do .NET
O mínimo de infra que todo dev e/ou arquiteto deveria saber
Aplicações distribuídas e comunicação entre serviços (RabbitMQ / gRPC)
Containers, Docker e Kubernetes
RabbitMQ e Mensageria e comunicação assíncrona entre aplicações e serviços
Arquitetura de Software e Arquitetura de Solução com foco no melhor aproveitamento em projetos .NET
Nossos números
Desde 2002 trabalhando com desenvolvimento de software
Desde 2002 ajudando outros devs
Desde 2010 trabalhando exclusivamente como arquiteto
Contas atingidas no telegram/facebook
Alunos
Microsoft MVP
Conteúdo Gratuito
Tudo que está aqui no gaGO.io é conteúdo gratuito, feito para ajudar desenvolvedores dos mais variados níveis.
Cursos
Tenho também alguns programas de acompanhamento. Esses programas tem a função de ajudar desenvolvedores em áreas específicas ou de forma mais abrangente na jornada do arquiteto.