.NET
Cloud Native e Cloud Agnostic
para rodar .NET em qualquer Cloud
ou sem Cloud sempre de forma profissional!
Últimas publicações
Rancher Longhorn no Kubernetes 1.25
Recém lançado em agosto, Kubernetes 1.25 trouxe desafios para o longhorn. Há pouco mais de 10 dias foi liberada na master do projeto a versão que permite usá-lo no Kubernetes 1.25. Mas afinal, o que é Longhorn? Se você usa AKS, EKS, GKE, ou Microk8s e instalações das mais variadas de Kubernetes,...
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...
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...
Sobre Ports and Adapters, Agnostic Services e modelagem de Serviços
Se você busca flexibilidade e alguma versatilidade para escolher entre estratégias de deployment e distribuição de aplicações a qualquer momento do ciclo de vida do projeto. Desde o dia 1 até a véspera de uma implantação. Ou se você não está certo, mas quer poder trocar uma chamada HTTP por uma...
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...
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...
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...
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...
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...
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...
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...
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...
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
gRPC no ASP.NET Core – Guia Introdutório
Há inúmeros bons argumentos para deixarmos de usar HTTP + JSON para boa parte de nossos serviços, gRPC é uma boa alternativa a esse modelo. Cross platform, Open Source e Universal, gRPC foi originalmente desenvolvido pelo google agora é parte da CNCF, Cloud Native Computer Foundation.
Adeus MobyLinux – WSL 2 Suportará Docker sem a necessidade de máquinas virtuais no Windows
São tantos títulos possíveis para esse post:
ler mais…Notification Pattern – Estão te vendendo um conceito errado
Notification Pattern prevê uma forma permissiva que troca exceptions por notificações em um determinado contexto, no entanto embora a maioria das publicações a respeito falem em não lançar exceptions, veremos que isso não é bem assim.
ler mais…IntelliCode no Visual Studio 2019
Em menos de 6 minutos nesse vídeo vemos, como habilitar, como treinar seu primeiro modelo, como compartilhar com seu time e como importar um modelo criado por outra pessoa. Além, de claro, mostrar a diferença e o impacto em produtividade no dia-a-dia!
ler mais…Dev Desktop .NET Core: Windows ou Linux?
Esse post fala sobre ambiente de desenvolvimento. O lugar onde você está escrevendo código, compilando, rodando, debugando, e testando o que está produzindo.
ler mais…Arquitetura
RabbitMQ e Kubernetes | Rivais ou Aliados?
Se, ambos, RabbitMQ e Kubernetes promovem um melhor uso de sua infraestrutura, trazem resiliência, escalabilidade, performance, será que eles não seriam concorrentes? Como eles concorrem? Eles podem colaborar?
ler mais…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.
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.
ler mais…Entendendo RabbitMQ #2 – Caso de Estudo – Envio de Emails
Essa segunda série de posts sobre RabbitMQ visa mostrar como podemos usar RabbitMQ em cenários que não demandam escala. É para explodir a cabeça de quem diz que RabbitMQ é um canhão para matar uma formiga.
ler mais…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 onde está vindo o acesso às suas aplicações e serviços? Você já sabe qual o próximo passo?
Hoje eu vou mostrar como aproveitei recursos e dados que já estavam disponíveis para mim, para criar uma visão que me permite entender o tráfego para os meus servidores.
ler mais…Containers
Envoy ganha novo amigo: Consul
Essa é uma notícia que poderia passar despercebida, mas não, é muito relevante para nós.
ler mais…Forçar IP’s nos Containers Docker – Erro de Principiante
Se você tem um background de infra grande e está acostumado a entregar IP’s para suas máquinas virtuais, é super natural que você considere essa a solução ideal para containers. Não é!
Se sua resposta foi sim, você não poderia estar mais errado!
ler mais…[Workshop] [Online] [Pago] – Docker + Bancos de dados #NaPrática
Você deve ter ouvido falar que Docker não serve para executar seus bancos de dados de produção, eu concordo, mas talvez você não saiba que essa não é a única forma de usar docker para aumentar sua capacidade de entregar projetos com Bancos de Dados.
ler mais…Natal Nerd 2018 – Workshop sobre Docker
Pessoal, para quem não está sabendo vai rolar hoje o treinamento de Docker Online (Docker de Ponta a Ponta – do Desenvolvimento à Nuvem). O Renato Groffe irá ministrar e eu vou ajudar na organização e moderação.
Booking.com – Shipper – BlueGreen e Canary Deployents no Kubernetes
A Booking.com publicou no dia 9/Dezembro/2018 o código fonte do Shipper. Shipper é um projeto de open source que oferece rollouts avançados e personalizados para um ou vários Clusters Kubernetes. Shipper usa gráficos Helm e conceitos nativos do Kubernetes para facilitar a configuração de blue/green ou canary deployments em seus aplicativos.
A versão atual usa a versão padrão do Kubernetes com seu traffic shifting, dessa forma você não precisa de um service mesh para começar. O suporte à Istio está no roadmap e segundo eles ficará pronto nos próximos meses.
ler mais…Mensageria
RabbitMQ & AMQP – #1 – Prefácio
Todas as semanas, algumas semanas mais, outras menos, me questionam sobre RabbitMQ. Sua utilidade, se vale a pena ou não aprender ou usar, ou até se não é mais adequado criar uma tabelinha no banco para controlar o que foi processado e o que não foi.
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
Messaging Patterns – Pipelines Elásticos
Pipelines Elásticos quebram processamentos em pipes que por sua vez podem ser escalados individualmente. Atuando com grandes cargas de trabalho, oferece flexibilidade, melhor consumo de recursos e melhora no tempo de resposta com o aumento de paralelismo.
A dinâmica peculiar aos processos de longa duração exige sempre algum tipo de reengenharia e algum nível de inventividade. São cenários em que o mais simples nem sempre traz os resultados esperados. Escalar processos de longa duração pode não ser tão trivial quando parece. A dificuldade mora na razão entre paralelismo e produtividade, depreciados pela natureza desse tipo de processamento.
ler mais…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
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
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.