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

Streams no RabbitMQ

Streams no RabbitMQ

Uma novidade que vai deixar aqueles que ficavam comparando RabbitMQ e Kafka mais perdidos ainda. No dia 9 de julho saiu um o RabbitMQ 3.9.0 RC que conta com suporte a Streams. A comparação direta era descabida até então: Enquanto o Kafka trabalha com streams o RabbitMQ lida com filas. Alguns...

ler mais
Kafka vs RabbitMQ

Kafka vs RabbitMQ

Vamos direto ao ponto: São coisas diferentes, se você está comparando ambos ou está querendo decidir entre eles, você não entendeu algum deles ou não entendeu nenhum dos dois. Mentiras ditas sobre RabbitMQ Ao longo dos últimos anos eu ouvi barbaridades, das coisas mais descabidas possíveis e...

ler mais
MVP | Developer Technologies | 2021-2022

MVP | Developer Technologies | 2021-2022

A terceira nomeação chegou!!!! É sempre um momento de muita gratidão. É sempre momento de olhar para o que construímos nesse último ano. No ano passado falei como foi minha primeira renovação. Agora começamos um novo ciclo, e quero compartilhar algumas coisas com você. Uma bandeira clara O...

ler mais
Você sabe se escolheu o data center certo?

Você sabe se escolheu o data center certo?

Na jornada de criar aplicações globais, o arquiteto precisa prover dados que guiem as estratégias de crescimento de qualquer negócio. Esses dados interferem na forma como projetamos disponibilidade, cache, e recursos específicos para atender regiões específicas do globo. Mas e aí, você sabe de...

ler mais
EasyNetQ em perspectiva

EasyNetQ em perspectiva

Abstrações são desenhadas para resolver problemas e abstrair um ou mais aspectos de uma implementação. Uma abstração pode entregar redução de complexidade, maior coesão, configuração facilitada, adaptação e até mesmo suprimir aquilo que não nos é relevante quando um novo padrão emerge do seu...

ler mais
Arquitetura de Software – 10 anos de Facebook

Arquitetura de Software – 10 anos de Facebook

No dia 1° de Abril de 2011 eu fundei um grupo de arquitetura que amanhã, no último dia 1° completou 10 anos. É sobre essa história que vou falar hoje. O ano era 2010, e eu já estava cansado dos mesmos assuntos, do bairrismo. Entrar na comunidade naquela época foi um desafio. Os assuntos estavam...

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

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

EasyNetQ em perspectiva

EasyNetQ em perspectiva

Abstrações são desenhadas para resolver problemas e abstrair um ou mais aspectos de uma implementação. Uma abstração pode entregar redução de complexidade, maior coesão, configuração facilitada, adaptação e até mesmo suprimir aquilo que não nos é relevante quando um novo padrão emerge do seu...

ler mais
Arquitetura de Software – 10 anos de Facebook

Arquitetura de Software – 10 anos de Facebook

No dia 1° de Abril de 2011 eu fundei um grupo de arquitetura que amanhã, no último dia 1° completou 10 anos. É sobre essa história que vou falar hoje. O ano era 2010, e eu já estava cansado dos mesmos assuntos, do bairrismo. Entrar na comunidade naquela época foi um desafio. Os assuntos estavam...

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

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

ler mais
MongoDump e MongoRestore com Docker

MongoDump e MongoRestore com Docker

Recentemente produzi a Jornada Dev Pro e foi um evento que teve uma aplicação de suporte. Embora funcionalmente não tenha atendido minhas expectativas, o projeto atendeu bem à seu propósito. Agora é hora de migrar essa infra para outro servidor, e aí? Como lidar com backup/restore do mongodb?...

ler mais
A Jornada DEV PRO

A Jornada DEV PRO

Ao longo dos últimos anos eu vi muitos desenvolvedores batendo cabeça, cada do seu jeito. Não foram nem uma, nem duas, nem três vezes em que vi profissionais desdenhando de projetos com Redis, RabbitMQ, Kong, Keycloak, ELK Stack e diversas outras tecnologias, eles dizem: "É um canhão para matar...

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

DevWeek 2019 | Canal .NET

DevWeek 2019 | Canal .NET

O Canal .NET apresenta pelo 5° ano consecutivo o DevWeek. O evento começa hoje, segunda-feira e termina nessa quarta.

Convidados

São 4 convidados que falarão sobre Desenvolvimento Móvel, ASP.NET Core, Blazor e Prometheus!

Canal .NET #completo

Dessa vez, nosso time do Canal .NET está completo, sem desfalques! Uhuuuuu!!!

Aqui fica meu convite, se inscreva pelo meetup para saber mais sobre o evento.

Fica aqui meu convite! Compartilhe esse post com alguém, principalmente se essas tecnologias fizerem sentido para o projeto dela.

A propósito, vou falar de RabbitMQ. Tem uma série super legal aqui no site.

Os 8 primeiros posts da série sobre RabbitMQ já estão no ar.
📍#1 Prefácio
https://gago.io/blog/rabbitmq-amqp-1-prefacio/

📍#2 Pra que mensageria?
https://gago.io/blog/rabbitmq-amqp-2-pra-que-mensageria/

📍#3 Conceitos
https://gago.io/blog/rabbitmq-amqp-3-conceitos/

📍#4 Perguntas e Respostas
https://gago.io/blog/rabbitmq-amqp-4-qna/

📍#5 Management UI, Filas e Exchanges
https://gago.io/blog/rabbitmq-amqp-5-management-ui-filas-e-exchanges/

📍#6 – Show me the code
https://gago.io/blog/rabbitmq-amqp-6-show-me-the-code/

📍#7 – Pipelines & Youtube Downloader
https://gago.io/blog/rabbitmq-amqp-7-pipelines-youtube-downloader/

📍 #8 – RabbitMQ & AMQP – Redis, um Message Broker?
https://gago.io/blog/rabbitmq-amqp-8-redis/

Até mais tarde!

Open Application Model

Open Application Model

2019 tem sido um ano intenso, cheio de novidades e muitos novos padrões e standards. Kubernetes já se consolidou como plataforma de orquestração default há alguns anos e agora o movimento que vemos é na linha de criação de standards sobre o Kubernetes. Por outro lado, essa nova leva de padrões e especificações oferece um modelo de aplicações e serviços dinamicamente alocáveis, conectáveis e desalocáveis que parece vir de um futuro muito, mas muito distante. São iniciativas interessantes que muito provavelmente ainda sofrerão mutações e algumas fusões no percurso, mas que oferecem imenso potencial para viajarmos nas possibilidades de um futuro nem tão distante assim.

Assim começamos com o Open Application Model.

ler mais…

Arquitetura

Resiliência: Polly vs RabbitMQ

Resiliência: Polly vs RabbitMQ

Fato que eu adoro essas comparações inusitadas! A intenção desse post é poder trazer de forma consistente uma visão que ajude a trazer clareza, e me permita também referenciar um conteúdo mais estruturado em vez de ter de construir toda uma argumentação em locais que propositalmente não possuem esse espaço para isso.

Nos últimos meses falando de RabbitMQ eu escutei algumas falácias a respeito do Polly e vamos desmistificar o assunto. Bora falar de resiliência de forma séria.

ler mais…
RabbitMQ Streams com TypeScript e NodeJS

RabbitMQ Streams com TypeScript e NodeJS

Em Julho o RabbitMQ ganhou suporte a Streams. De um lado aproxima o RabbitMQ do Kafka já que possui a mesma estrutura de dados, mas por outra ótica se isola completamente sendo provavelmente o único produto da categoria com suporte a ambos. Mas você sabia que a diferença entre Streams e Queues são enormes? Ao ponto da discussão RabbitMQ vs Kafka sequer fazer muito sentido?

Hoje entrego mais um projeto de exemplo para os alunos do curso de RabbitMQ, e dessa vez é uma demo 2 em 1. Além de apresentar RabbitMQ com NodeJS, aproveitei para entregar o suporte a Streams e demonstrar as demandas específicas para lidar com o consumo dessa estrutura, visando mostrar uma forma uniforme de trabalhar com queues e streams.

ler mais…

Containers

O breakeven dos projetos Docker – Sem docker é mais caro

O breakeven dos projetos Docker – Sem docker é mais caro

Docker já faz parte de muitos projetos que tenho assistido e participado, e está cada vez mais no dia-a-dia de mais gente. Uma vez superada a curva de aprendizado, você rapidamente se vê com super poderes, compondo suas aplicações com os mais variados serviços, e eliminando assim a necessidade de construção e setup extenso de diversos desses serviços. Esse empoderamento lhe permite fazer muito mais, de forma muito mais profissional com menor custo1.Então vemos um fenômeno curioso, o breakeven dos projetos Docker, onde meus orçamentos saem mais caros quando não uso docker, do que usando docker. É sobre isso que vou abordar hoje.

ler mais…

Message Broker & .Net Core – Introdução ao RabbitMQ

Message Broker & .Net Core – Introdução ao RabbitMQ

Pessoal, no dia 15/Fev batemos um papo no Canal .NET com o título Message Broker & .Net Core – Introdução ao RabbitMQ. Nesse bate-papo apresentamos RabbitMQ como Message Broker, mas com foco no AMQP, que por sua vez desponta como principal standard, amplamente utilizado e implementado por diversos serviços, projetos e produtos, oferecendo maior flexibilidade na hora de escolher sua implementação de message broker.

Na narrativa abordei modelos de integração mais antigos, até uma implementação com AMQP, mostrando features, e algumas dicas valiosíssimas que ajudam no entendimento de alguns elementos, que a princípio parecem não fazer muito sentido, mas depois se mostram valiosíssimos dada a sua simplicidade e flexibilidade.

Hangout (Gravado)

 

Se você quer saber mais sobre RabbitMQ, AMQP, e conhecer algumas demonstrações de uso, fique de olho aqui no site pois tem muito conteúdo a respeito.

Apresentação

[slideshare id=88038393&doc=20-rabbitmq-180215092334]

Demos e Código Fonte

RabbitMQ – Exemplos de Setup

RabbitMQ no Docker (Este projeto consistem em um conjunto de dockerfiles que demonstram as diversas formas de configurar e habilitar plugins no RabbitMQ)

No github separei em um modelo gradativo do mais simples para o mais complexo, adicionando features a cada nova pasta: Gradualmente adicionei vhosts à configuração, depois volumes, plugins (management, mqtt, stomp, nativo e com suporte web), até termos uma instância full featured.

Apresentei também demos com AMQP + .NET Core além de MQTT e STOMP usando as páginas de exemplo que vão embarcadas no RabbitMQ.

O código está no meu github: https://github.com/luizcarlosfaria/CanalDotNet-MessageBroker

Youtube Downloader

As demos anteriores são muito boas, mas precisava mostrar algo mais “real”, então apresentei esse projeto. Esse foi um projeto que serviu de narrativa entre dezembro e fevereiro, me ajudando a apresentar cenários reais de uso de RabbitMQ entre outros diversos elementos. A segunda demonstração foi pautada sob esse projeto e seu código fonte está disponível no github.

https://github.com/luizcarlosfaria/youtube-downloader

 

 

Docker Compose: simplificando o deployment de aplicações

Docker Compose: simplificando o deployment de aplicações

Docker Compose é um serviço do próprio Docker voltado à criação e execução conjunta dos múltiplos containers de uma aplicação. Tal capacidade contribui para facilitar o deployment de um projeto em diferentes ambientes.

Além disso, o Docker Compose é considerado uma alternativa extremamente útil em cenários que envolvam a implementação de uma arquitetura de microsserviços.

Esta tecnologia foi abordada em detalhes num evento online recente do Canal .NET:

 

Mensageria

docker-gallery/EnterpriseApplicationLog – v3.0

docker-gallery/EnterpriseApplicationLog – v3.0

Em outubro no post Docker – de A a Z – 15 – RabbitMQ, LogStash, ElasticSearch e Kibana com Docker Compose eu apresentei um modelo interessante de Log, com uma abordagem diferente. Ficou muito simples para trabalhar com o stack, no entanto a Elastic.co mudou muita coisa no meio do caminho e foi necessário readaptar o projeto às novidades da plataforma. Para alegria dos que gostam do projeto que compilei, aqui está a novidade: Revisitei as configuração e acertei o que era necessário para o stack!

A premissa base que me levou à compilar esse stack é criar a possibilidade de utilização desses 5 elementos, sem dor de cabeça. Conectando os pontos, e criando um pacote pré-moldado, todo o entendimento e gerenciamento da plataforma se torna mais simples, e se você quer um stack funcional em minutos, é uma das poucas alternativas.

Eu já fiz pelo menos 2 setups desse stack sem docker e docker-compose e te garanto: é absurdamente traumático, principalmente se quem for executar a tarefa precisa de um documento formal que diga como fazer tudo, from scratch! São 5 elementos, 5 configurações específicas, cada um em um documento, cada um com seus passos em ordem, enfim, um mini-inferno para ambientes mais burocráticos e inviável para quem só quer estudar. Esses motivos me fizeram criar o projeto, permitir que com 3 linhas de comando e alguns segundos, você tenha tudo isso rodando e colaborando em sua infraestrutura.

Sobre os comandos, continuam os mesmos:

git clone https://github.com/docker-gallery/EnterpriseApplicationLog.git
cd ./EnterpriseApplicationLog
docker-compose up

Entre a primeira release, em outrubro de 2016, e meados de 2017 muita coisa coisa mudou, a Elastic criou seu repositório próprio para imagens docker e lançou algumas releases de seus produtos, com isso muita coisa parou de funcionar, e o stack ficou quebrado. As últimas releases no docker hub causaram essas quebras, mas serviram de alerta.

Agora o stack está aqui novamente!

A release 3.0 do projeto  conta com:

  • Adequação à mudança de hub.docker.com para docker.elastic.co.
  • Revisão das configurações e adequação para as novas versões dos produtos.
  • Update do RabbitMQ indo para a versão baseada em apline.
  • Remoção do Xpack (o stack ELK é open source, no entanto o Xpack é um pacote pago).

Se quer conferir, rode as linhas de comando acima, ou visite o repositório que está disponível no GitHub. Esse projeto não possui imagem própria, apenas configura imagens do hub.docker.com e agora do docker.elastic.co.

Docker – de A a Z – 15 – RabbitMQ,  ElasticSearch , LogStash e Kibana

Docker – de A a Z – 15 – RabbitMQ, ElasticSearch , LogStash e Kibana

Durante a série Docker de A a Z, esse foi um dos Stacks entregues para facilitar a compreensão de como docker pode nos ajudar a unir soluções complexas, colaborando para criar stacks com diversos projetos e produtos.

Esse stack serviu para a apresentação, mas também virou projeto e hoje é mantido e atualizado, por mim e por colaborações.

Para simplificar a apresentação desse conteúdo o post foi movido para a página do Stack aqui no site.

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.