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

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

ler mais
Cloud Native – Pela perspectiva das big techs

Cloud Native – Pela perspectiva das big techs

Ainda existe uma aura em torno do termo, mas com uma mensagem clara. Não basta só DevOps, não basta só Microsserviço, não basta só Nuvem. Cada uma dessas camadas de complexidade são complementares, e tem como objetivo aumentar a eficiência e eficácia de soluções projetadas para a nuvem. Aplicações...

ler mais
RabbitMQ – Trabalha em memória?

RabbitMQ – Trabalha em memória?

Já não é tão comum, mas ainda existe quem diga que RabbitMQ é rápido porque não tem banco de dados. Essa é uma MEN-TI-RA!! Ele entrega resiliência e performance, por outros motivos. É sobre isso que vamos falar hoje! Essa semana recebi uma mensagem que dizia algo aproximadamente assim: Gago, como...

ler mais
Depende!

Depende!

Sempre que uma pergunta técnica ou sobre system design, ou até mesmo arquitetura é respondida com "Depende!", há quem se questione se realmente estamos trabalhando com exatas. Afinal, se estamos no mundo das exatas, porque tudo depende? O que de fato faz os melhores profissionais responderem essas...

ler mais
Chiseled Ubuntu Images – O mais próximo que teremos de Imagens Distroless  para .NET chega junto com o anúncio do .NET 6 no Ubuntu 22.04

Chiseled Ubuntu Images – O mais próximo que teremos de Imagens Distroless para .NET chega junto com o anúncio do .NET 6 no Ubuntu 22.04

No dia 16 de agosto de 2022, a Microsoft anunciou o resultado de sua parceria com a Canonical. Os frutos vão desde o .NET 6 instalável via APT, mas passam também pelas Chiseled Ubuntu Images. Imagens docker super enxutas. Claro que o anúncio não poderia deixar de falar sobre as novas imagens...

ler mais
Quiet Quiting – Problema ou Oportunidade?

Quiet Quiting – Problema ou Oportunidade?

Se você acredita que é responsável pelos seus próprios resultados e acredita que pode crescer pelo trabalho duro, disciplina e estudo, esse post é para você. Se você está disposto a sacrificar o hoje por um amanhã melhor, e acredita que tem de ralar para conseguir suas coisas, esse post é para...

ler mais
Cloud Native | 4 – DevOps

Cloud Native | 4 – DevOps

Ao lado de Containers, Microsserviços e Entrega Contínua, DevOps está no alicerce do Cloud Native. Hoje desmistificaremos DevOps e espero acabar de uma vez por toda com essa ideia de que é coisa de infra. Antes de começarmos, preciso recorrer à sua própria memória recente. Preciso que você faça...

ler mais
RabbitMQ Operators | RabbitMQ Messaging Topology Operator for Kubernetes – Tutorial PT-BR

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

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

Depende!

Depende!

Sempre que uma pergunta técnica ou sobre system design, ou até mesmo arquitetura é respondida com "Depende!", há quem se questione se realmente estamos trabalhando com exatas. Afinal, se estamos no mundo das exatas, porque tudo depende? O que de fato faz os melhores profissionais responderem essas...

ler mais
Chiseled Ubuntu Images – O mais próximo que teremos de Imagens Distroless  para .NET chega junto com o anúncio do .NET 6 no Ubuntu 22.04

Chiseled Ubuntu Images – O mais próximo que teremos de Imagens Distroless para .NET chega junto com o anúncio do .NET 6 no Ubuntu 22.04

No dia 16 de agosto de 2022, a Microsoft anunciou o resultado de sua parceria com a Canonical. Os frutos vão desde o .NET 6 instalável via APT, mas passam também pelas Chiseled Ubuntu Images. Imagens docker super enxutas. Claro que o anúncio não poderia deixar de falar sobre as novas imagens...

ler mais
Quiet Quiting – Problema ou Oportunidade?

Quiet Quiting – Problema ou Oportunidade?

Se você acredita que é responsável pelos seus próprios resultados e acredita que pode crescer pelo trabalho duro, disciplina e estudo, esse post é para você. Se você está disposto a sacrificar o hoje por um amanhã melhor, e acredita que tem de ralar para conseguir suas coisas, esse post é para...

ler mais
Cloud Native | 4 – DevOps

Cloud Native | 4 – DevOps

Ao lado de Containers, Microsserviços e Entrega Contínua, DevOps está no alicerce do Cloud Native. Hoje desmistificaremos DevOps e espero acabar de uma vez por toda com essa ideia de que é coisa de infra. Antes de começarmos, preciso recorrer à sua própria memória recente. Preciso que você faça...

ler mais
RabbitMQ Operators | RabbitMQ Messaging Topology Operator for Kubernetes – Tutorial PT-BR

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

ler mais
MVP | Developer Technologies | 2022-2023

MVP | Developer Technologies | 2022-2023

A quarta nomeação chegou!!!! É sempre um momento de muita gratidão. É sempre momento de olhar para o que construímos nesse último ano. Hoje eu darei continuidade ao papo do ano passado, há exatos 1 ano eu falava de Lock-In e posicionamento, agora é hora de continuar essa conversa. No ano passado...

ler mais
Oficialmente: 20 anos de Carreira!

Oficialmente: 20 anos de Carreira!

No dia 1° de julho de 2002, por volta de 19 horas, momento em que esse post será publicado, eu estava chegando em casa do meu primeiro dia de trabalho na Petrobras. Hoje contarei um pouco desse início, os primeiros anos da minha carreira foram decisivos para o resto dessa jornada. O Brasil estava...

ler mais
Cloud Native | 3 – Continuous Delivery

Cloud Native | 3 – Continuous Delivery

Nós já vimos como Cloud Native está próximo de microsserviços. Agora é hora de pensar em colocar esses serviços em produção. Com fazemos isso? Tecnologias Cloud Native permite a criação de aplicações escaláveis, resilientes, observáveis, e modernas em um ambiente extremamente dinâmico. Podendo...

ler mais
Perdemos 17 anos por não entender redes Docker

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

ler mais
RabbitMQ Operators | RabbitMQ Cluster Operator for Kubernetes – Tutorial PT-BR

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. Se você chegou até aqui se perguntando: Afinal, 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

GPT para Desenvolvedores .NET

GPT para Desenvolvedores .NET

Nos últimos meses venho experimentando o ChatGPT e a API dos modelos GPT 3.5-turbo e GPT 4.0.

Como sempre esse assunto foi compartilhado na mentoria, e naturalmente consigo encontrar dúvidas que não me pareciam óbvias.

Esse é um guia que pode te ajudar a pensar nas possibilidades e também permite que você dê seus primeiros passos.

ler mais…
Entendendo o poder do WASM + WASI

Entendendo o poder do WASM + WASI

Quando se fala em WebAssembly no universo .NET, é comum pensar imediatamente no Blazor, não é mesmo?

No entanto, para mim, a imagem que surge é a revolução que o WebAssembly no backend pode desencadear. Imagina mudar completamente a maneira como construímos, encapsulamos, hospedamos e gerenciamos sistemas, criando uma interoperabilidade inédita.

Não me refiro ao WebAssembly em navegadores. Estou falando sobre o WebAssembly no SERVIDOR, rodando jobs, Api’s, Workers, servidores de jogos, servidores de mensageria, qualquer coisa que seja backend, distante do browser. Sem nenhuma relação com blazor ou com front-end.

E o que estou prestes a revelar não tem qualquer relação com o Blazor!

Estamos falando de algo tão surpreendente quanto poderoso!

Sei que muitos ainda estão fascinados com o Blazor e com o WebAssembly no browser.

ler mais…
Adicionando ChatGPT na sua aplicação

Adicionando ChatGPT na sua aplicação

A primeira vez que ouvi falar em chatGPT fiquei empolgado com o avanço das IA’s Generativas, mas nem passou pela minha cabeça que já fosse possível usar em uma aplicação real.

Ao encontrar no ChatGPT inputs e outputs em texto livre, que hora traz texto normal, hora markdown, hora outros formatos, sem a capacidade de forçar o tipo de dado, via parâmetros, me pareceu uma realidade distante.

Uma vez que as API’s foram liberadas, não conseguia sequer pensar em uma utilização que não fosse simplória.

Hoje eu vou mostrar todo o caminho até conseguir produzir
insights,
predições,
recomendações
e expectativas
usando ChatGPT de forma estruturada produzindo JSON como output.

Embora esse projeto de referência seja feito em C# com .NET, você consegue replica em qualquer lugar, com qualquer linguagem/plataforma que consiga fazer uma requisição para um endpoint HTTP.

ler mais…
Entendendo CORS

Entendendo CORS

CORS é um daqueles assuntos que atrapalha de iniciante a veteranos.

Considerando que toda nova aplicação poderá sofrer com erros de CORS e muitas vezes leva algum tempo para resolver, ou pior, muitas vezes resolvemos da forma errada, esse post vem para ajudar nesse assunto.

Hoje abordaremos tudo que você precisa saber CORS, para economizar semanas da sua vida.

Faça bom proveito desse tempo!

ler mais…

Arquitetura

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…

Containers

Do WCF para ASP.NET Core Web API com Docker no Linux 2/2

Do WCF para ASP.NET Core Web API com Docker no Linux 2/2

Agora é hora de mostrar como podemos tirar proveito dos contratos (interfaces) existentes para promover essa migração. Esse é o momento em que a “SOPA de LETRINHAS” ou melhor, os design patterns fazem sentido. Graças a eles, essa migração que poderia ser dolorosa e desastrosa, se torna algo fácil. Não é simples, mas exige pouco esforço. Esses patterns permitirão que o cliente tenha APENAS A FACTORY alterada nessa transição.

ler mais…
Do WCF para ASP.NET Core Web API com Docker no Linux 1/2

Do WCF para ASP.NET Core Web API com Docker no Linux 1/2

Não sei se você conhece WCF, rodando uma enquete eu percebi que uma parcela considerável sequer conhece WCF. Hoje vamos costurar o assunto com um outro post para que eu possa mostrar como fazer uma migração de WCF pra Web API no ASP.NET Core, rodando em containers Linux.

Nosso cenário de teste é super simples, uma API de Cálculo, que só tem uma operação de SOMA. Sem acesso a dados, uma API tão simples quanto isso.

ler mais…

Mensageria

EDA – Event Driven Architecture: Não confunda eventos com comandos

EDA – Event Driven Architecture: Não confunda eventos com comandos

A diferenciação entre eventos e comandos foi um tema discutido dentro do grupo de arquitetura do Docker Definitivo, e como um tema que gera confusão e ceticismo em alguns aspectos, é hora da gente sair da discussão sobre a parte visível desse iceberg e aprofundarmos na execução e nos cuidados a respeito do tamanho de mensagens e principalmente na diferenciação entre evento e comando.

ler mais…
RabbitMQ é Resiliente? [video]

RabbitMQ é Resiliente? [video]

Será que o RabbitMQ de fato é seguro?

O que acontece quando ele cai?

O que acontece se minha aplicação cai?

Será que o RabbitMQ persiste os dados no disco?

Ou o RabbitMQ trabalha somente com dados em memória?

Todas essas perguntas são pertinentes, e vou abordá-las nesse vídeo.

A maior parte do meu conteúdo é o mesmo em todas as redes sociais. 

Mas algumas delas me permitem criar conteúdo mais focado na audiência e interesse de cada plataforma.

Assim, instagram, facebook, linkedin e Youtube possuem conteúdos diferentes.

Siga para ficar por dentro de tudo.

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.