.NET

Cloud Native e Cloud Agnostic

para rodar .NET em qualquer Cloud
ou sem Cloud sempre de forma profissional!

Últimas publicações

Aqui estão os últimos 12 posts de mais de 500…

Projetando um Chat Server para a escala com .NET

Projetando um Chat Server para a escala com .NET

Arquitetura é estratégia. Projetar uma arquitetura envolve muito mais do que escolher tecnologias, implica em compreender como os conectar pontos e principalmente como lidar com limitações e restrições. Em um mundo utópico, sem escassez, não precisaríamos nos preocupar com arquitetura, toda...

ler mais
Cache-Aside Wins

Cache-Aside Wins

O uso de caching em sistemas distribuídos tornou-se uma prática essencial para melhorar a performance e a escalabilidade de aplicações. A escolha da estratégia de caching adequada é um desafio que muitos enfrentam. Com diversas abordagens disponíveis, é fácil se perder entre as opções e acabar...

ler mais
Habemus .NET ASPIRE

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,...

ler mais
Quando fazer upgrade da minha aplicação .NET?

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...

ler mais

Fique por dentro e não perca nada

Menos de 10% da audiência recebe o conteúdo publicado

A newsletter é o meio mais eficiente de furar o bloqueio dos algoritmos das redes sociais e fazer o conteúdo chegar até você.

Assim evitamos poluir as comunidades com chamadas para eventos e lives.

Essa é forma mais eficiente de receber meu conteúdo.

Somos mais de 6k inscritos

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 tutorial

Para 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…

Conteúdo

Habemus .NET ASPIRE

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,...

ler mais
Quando fazer upgrade da minha aplicação .NET?

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...

ler mais
OCR Minimal API | .NET 8

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...

ler mais
Comece sempre com 2 instâncias

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 instâncias desde o...

ler mais

Conheça nosso Podcast

DevShow Podcast

Em 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.

Saiba mais...

.NET

Oragon.RabbitMQ 1.1 – Reduzindo Alocações

Oragon.RabbitMQ 1.1 – Reduzindo Alocações

Então esse foi o dia que queimei a lingua!

Uma das criticas que faço às publicações que falam sobre ganhos absurdos de 50%, 80% e até mais de 100% de performance onde todas as variáveis se mantiveram as mesmas, é que afinal: Ganhamos 100% ou deixamos de perder 50%?

Como o velho ditado “A estatística é a arte de torturar os números até que eles confessem o que você quer demonstrar”.

Bem, eu não passei batido à minha própria critica! Hoje vou falar sobre a redução nas alocações de respostas.

ler mais…
Monorepo vs Multirepo?

Monorepo vs Multirepo?

Gerenciar configurações em projetos de software vai muito além de uma simples questão técnica — é algo que realmente faz diferença na maturidade da equipe e na eficiência do desenvolvimento.

Se você já trabalhou com repositórios cheios de serviços diferentes, sabe bem que decidir como implantar, versionar e coordenar tudo é o que separa um sistema tranquilo de um pesadelo de dependências quebradas.

Neste artigo, quero compartilhar com você algumas estratégias práticas para garantir que cada implantação seja consistente e rastreável. Além disso, vamos conversar sobre os desafios e como lidar quando precisamos gerenciar serviços de forma separada. Vamos nessa?

ler mais…
Otimizando consumo de recursos em aplicações .NET com RingBuffer

Otimizando consumo de recursos em aplicações .NET com RingBuffer

Frequentemente nos deparamos com desafios relacionados ao gerenciamento eficiente de recursos limitados, como conexões de banco de dados, sockets e serviços como RabbitMQ e Redis. Para solucionar esses desafios, um conceito fundamental e poderoso entra em cena: o Ring Buffer ou Circular Buffer. Este artigo explora o conceito, os benefícios e as aplicações do Ring Buffer, com foco no desenvolvimento .NET e em cenários de alto desempenho.

ler mais…

Arquitetura

Mensageria .NET for Architects Day | Sábado, 05 de outubro

Mensageria .NET for Architects Day | Sábado, 05 de outubro

Nesse sábado vai rolar o Mensageria .NET for Architects Day, um evento que gostaria de ter realizado há muito tempo!

Mensageria não é disruptivo apenas pela natureza assíncrona. Tampouco pela lavagem cerebral que sofremos ao aprendermos a programar, que nos faz esquecer da natureza caótica do dia-a-dia. Mensageria nos devolve o caos, agora nos eventos assíncronos disparados por cada ator simultaneamente.

A parte ruim é que muitos ficam pelo caminho, muitos profissionais, projetos, e a parte legal é que de certa forma: é desafiador e divertido!

Nesse evento, que acontecerá no sábado vamos dar vazão aos últimos conteúdos do Mensageria .NET for Architects, e finalizar essa entrega que dura alguns anos.

ler mais…
Resiliência – Tolerância a Falhas (Fault Tolerance)

Resiliência – Tolerância a Falhas (Fault Tolerance)

Tolerância a falhas é a capacidade de um sistema continuar operando corretamente mesmo quando uma ou mais de suas componentes falham. Em vez de interromper ou degradar o serviço, um sistema tolerante a falhas é projetado para lidar com falhas, mantendo o funcionamento normal ou próximo ao normal. A tolerância a falhas é um aspecto fundamental de sistemas críticos onde a disponibilidade e a confiabilidade são prioritárias, como em aplicações financeiras, sistemas de saúde, infraestrutura de telecomunicações e serviços de nuvem.

ler mais…

Containers

Entrypoint vs CMD – v2 – Conteinerizando o Kubectl

Entrypoint vs CMD – v2 – Conteinerizando o Kubectl

Se você precisa interagir com um cluster kubernetes, você já deve ter ouvido falar do Kubectl (o Cube Control). Hoje eu vou abordar os conceitos de Entrypoint e CMD, e vou mostrar como eu conteinerizei o Kubectl em uma imagem docker, vou explicar o porquê e vou te mostrar o repositório do github com todo esse rolê.

ler mais…
Habemus Kubernetes

Habemus Kubernetes

Hoje eu estou muito feliz por fazer esse anúncio por aqui. Oficialmente estamos subindo as primeiras aulas de Kubernetes no Docker Definitivo, hoje também temos live no canal .NET, falando do Hub de Eventos e em breve teremos conteúdo aqui no gaGO.io que abordam direta ou indiretamente o tema também.

ler mais…

Mensageria

RabbitMQ Clustering #4 | Como as mensagens são persistidas

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 #1

RabbitMQ Clustering #1

Você já deve ter visto que o RabbitMQ é usado para entregar resiliência, disponibilidade e confiabilidade.

Eu já mostrei isso algumas vezes nos últimos anos.

Talvez já tenha descoberto como pode reduzir a pressão de um volume intenso de trabalho sob seus sistemas, sua infra e seu banco, fazendo com que seja possível tolerar cargas de trabalho vezes maiores do que de fato seu parque consegue tolerar, sem precisar escalar seus sistemas.

Mas afinal, e se o RabbitMQ falhar? O que acontece? Como lidar com isso caso aconteça? Como contornar?

Essa série de posts RabbitMQ Clustering – Publish & Consumer Recovery aborda a criação de clusters, seus principais comportamentos e como aplicações .NET podem se recuperar de falhas com pouco ou nenhum esforço.

Usamos Docker e Docker Compose em exemplos de código que são feitos com C# e .NET 7. Divirta-se.

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

2018-2020

2020-2021

2021-2022

2022-2023

2023-2024

2024-2025

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.