.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…
Cloud Native | 2 – A relação com Microservices
O que faz Microsserviços estar no coração do Cloud Native? Seria a forma de distribuir aplicações? Seria a forma de lidar com complexidade? Seria pela forma como usa recurso de cloud? Qual é a relação entre Microsserviços e Cloud Native? Hoje vamos abordar essa relação de proximidade! Não podemos...
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...
Cloud Native | 1 – Definindo Cloud Native
Ao longo dos últimos anos Cloud Native tem estado em evidência. Há a oportunidade de retrocesso? É hype? Sempre teremos quem defenda que tudo é hype! Por quê com Cloud Native seria diferente? Na real, essas pessoas em geral adiam por anos o estudo por julgaram que algo é hype, até não conseguirem...
Porque as empresas vão continuar buscando seniors ao invés de júniores?
O apagão na TI é um fenômeno real, mas um fenômeno bem estranho do nosso mercado é a distância entre o JR e o estagiário, ou seja o profissional possível, e o profissional desejável. É sobre esses problemas que vamos discutir hoje. De um lado jovens querendo um emprego na TI, a nova mina e ouro do...
Bloqueio do Telegram – SITREP 02 – Quem vai pagar essa conta é você!
Hoje somos dezenas de milhares de profissionais de tecnologia amontoados em grupos do telegram. Nós nos ajudamos e fazemos da vida do desenvolvedor, devops, infra mais fácil, na medida que ele conta com suporte da própria comunidade. Cada comunidade técnica é composta por um grupo de pessoas...
Bloqueio do Telegram – SITREP 01 – Situação e Plano de ação
O bloqueio do telegram está causando histeria na comunidade técnica e em grupos privados. Aqui vou abordar 2 temas. Comunidades técnicas e Grupos de Alunos. Contexto Decisão do supremo demanda bloqueio do Telegram no Brasil. Como é realizado o bloqueio? Quando um país bloqueia um serviço de...
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. Se comparado com outras tecnologias, Docker e Containers em geral são assuntos pequenos, para poucas semanas de estudo. Mas embora a extensão do conhecimento não...
Além das 3 camadas | Containers
Docker está para o desenvolvimento de software como o IPOD esteve para a indústria da música. Não inventou a música portátil, mas revolucionou a experiência dos usuários. Se você trabalha com algum backend, java, .NET, node, python, ruby... e docker não está no teu radar, meu amigo... você tá...
RabbitMQ, .NET, OpenTelemetry, Distributed Tracing, Jaeger, Prometheus e Grafana
Parece sopa de letrinhas aleatórias né? Mas isso fez algum sentido para você, e achou legal, deixa eu te contar o que fizemos aqui do lado de dentro. Uma das demandas que tenho no curso de RabbitMQ para Aplicações .NET, é trazer conforto e clareza sobre o desenvolvimento de fluxos assíncronos com...
RabbitMQ | Eficiência | Como jogar dinheiro fora, case da Digital Ocean
A Digital Ocean é um Cloud Provider famoso e muito usado no mundo todo, mas nem por isso deixaram de cometer o amadorismo de usar bancos de dados como filas. E pior, para atender um throughput pífio! Conclusão: Mesmo sendo owners de infraestrutura, ou seja, com dinheiro infinito para infra,...
Event Driven Or Not? Quando usar Event Driven e quando usar só usar mensageria
Sempre que somos tocados por algum tipo de desenho ou arquitetura que demonstra significativo ganho em um determinado cenário, tendemos a tentar reaproveitar esse mesmo desenho mais pela memória do sucesso passado, do que pela necessidade efetivamente. Aqui está uma casca de banana, e é sobre isso...
Além das 3 camadas | Componente: CDN e Cache
Já falamos de práticas e tecnologias, agora vamos falar de um componente o CDN. Ele é fundamental para a internet como a conhecemos hoje. Da netflix que você assiste, ao gaGO.io, você vai encontrar CDN para reduzir a pressão sob as aplicações, e para reduzir a latência entre o conteúdo e você,...
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…
Conteúdo
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. Se comparado com outras tecnologias, Docker e Containers em geral são assuntos pequenos, para poucas semanas de estudo. Mas embora a extensão do conhecimento não...
Além das 3 camadas | Containers
Docker está para o desenvolvimento de software como o IPOD esteve para a indústria da música. Não inventou a música portátil, mas revolucionou a experiência dos usuários. Se você trabalha com algum backend, java, .NET, node, python, ruby... e docker não está no teu radar, meu amigo... você tá...
RabbitMQ, .NET, OpenTelemetry, Distributed Tracing, Jaeger, Prometheus e Grafana
Parece sopa de letrinhas aleatórias né? Mas isso fez algum sentido para você, e achou legal, deixa eu te contar o que fizemos aqui do lado de dentro. Uma das demandas que tenho no curso de RabbitMQ para Aplicações .NET, é trazer conforto e clareza sobre o desenvolvimento de fluxos assíncronos com...
RabbitMQ | Eficiência | Como jogar dinheiro fora, case da Digital Ocean
A Digital Ocean é um Cloud Provider famoso e muito usado no mundo todo, mas nem por isso deixaram de cometer o amadorismo de usar bancos de dados como filas. E pior, para atender um throughput pífio! Conclusão: Mesmo sendo owners de infraestrutura, ou seja, com dinheiro infinito para infra,...
Event Driven Or Not? Quando usar Event Driven e quando usar só usar mensageria
Sempre que somos tocados por algum tipo de desenho ou arquitetura que demonstra significativo ganho em um determinado cenário, tendemos a tentar reaproveitar esse mesmo desenho mais pela memória do sucesso passado, do que pela necessidade efetivamente. Aqui está uma casca de banana, e é sobre isso...
Além das 3 camadas | Componente: CDN e Cache
Já falamos de práticas e tecnologias, agora vamos falar de um componente o CDN. Ele é fundamental para a internet como a conhecemos hoje. Da netflix que você assiste, ao gaGO.io, você vai encontrar CDN para reduzir a pressão sob as aplicações, e para reduzir a latência entre o conteúdo e você,...
Concorrência e Race Condition com Cache Distribuído: O Workflow correto
Se você está vendo cache distribuído pela primeira vez, talvez tenha deduzido qual é a forma adequada de trabalhar com ele. A pergunta que fica é: Você levou em conta a concorrência?. A questão é que quando o cache expira, devemos usar o recurso "lento" para produzir o dado que será cacheado. Mas...
Além das 3 camadas | Prática: Reduzindo pressão sob a aplicação e banco
Nessa série de posts estamos furando a bolha, saindo do desenho básico de 3 camadas, indo além. Hora vamos abordar práticas, hora vamos abordar ferramentas. Hoje vamos falar de uma prática: Reduzir a pressão sobre aplicação e banco de dados. Essa é uma prática super comum, mas negligenciada...
Além das 3 camadas | Ferramenta: Redis
Nessa série de posts estamos furando a bolha, saindo do desenho básico de 3 camadas, indo além. Hora vamos abordar práticas, hora vamos abordar ferramentas. Hoje vamos falar de uma ferramenta, o Redis. Ele pode ser seu aliado na hora de hospedar dados pré-processados. Disclaimer sobre a...
Além das 3 camadas | Iniciando os trabalhos
Se um dia você se questionou sobre o que deveria estudar sobre projetos que vão além de uma Web App, uma API e um Banco de dados aqui vão minhas dicas. Eu separei 3 tecnologias que são matadoras porque ajudam projetos de todos os tamanhos. Dê uma olhada e me diga o que você achou! Por que sair do...
Processamento Síncrono vs Assíncrono e Black Friday – Case Pan, Kabum e Pichau 2021
Essa noite aconteceu uma coisa muito chata. Em plena Black Friday, eu saí frustrado por 2 problemas de arquitetura encadeados. De um lado um banco digital que fica offline todo dia durante a madrugada e pior, inclusive na Black Friday. Do outro, um e-commerce com o fluxo de pagamento síncrono, que...
Overengineering, BDUF, Complexidade Acidental? Por que estamos usando tantas ferramentas, tecnologias etc?
Se você está nesse planeta ativo em alguma comunidade deve ter percebido que todo dia surge uma nova solução que dizem que devemos usar. Docker, Kubernetes, Redis, Jaeger, Helm, RabbitMQ, Kafka, ELK, Kong, NGINX, Traefik, Keycloak, Jenkins, SonarQube... onde isso vai parar? Como deixamos chegar...
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
NHibernate em 2022 – Será que faz sentido?
Se você já me viu falar de persistência, você talvez já saiba do que eu estou falando, mas talvez não entenda os argumentos.
ler mais…
Enterprise Application Log v4
Hoje chegamos à versão 4 do nosso stack de observabilidade. Contamos com o upgrade para a versão 7.13.0 de todos os recursos da Elastic e a adição de novos componentes entre eles o Application Performance Monitoring (APM).
ler mais…
Hub de Eventos
Na quinta-feira, dia 18/Março/2021 vamos falar do Hub de eventos que produzi para atender uma demanda particular. Eu não precisava de extrema performance e redundância, mas e se precisasse?
ler mais…
Publish com VS em produção: Impactos e Consequências
A Microsoft sem sombra de dúvidas é uma empresa com um foco incrível no desenvolvedor. Diariamente recebemos algum tipo de update, feature, novo produto ou projeto para ajudar no nosso dia-a-dia.
ler mais…
Kubernetes em C#, seria possível?
Você já pensou em criar seu próprio Kubernetes em C#? Hoje eu vou mostrar como você pode dar os primeiros passos nessa direção.
ler mais…Arquitetura
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!
ler mais…
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?
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
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.
ler mais…
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.
ler mais…
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…Containers
Docker Definitivo – Janela de Inscrição Aberta!
Em 2015 eu conduzi um projeto de refactoring daqueles complicados.
Ao todo foram quase 10 meses com um time dedicado ao refactoring desse projeto. Mas uma coisa que chamou a atenção nesse projeto. Foram 4 meses em que eu me dediquei a entender a baseline de código, sem entregar absolutamente NENHUMA LINHA DE CÓDIGO.
Eu precisava entender o projeto para propor uma solução.
Não era apenas o que fazer, era sobre como e onde fazer.
Nessa jornada, levei esses 4 meses compreendendo como faria uma aplicação que caia com 5 usuários, suportar 1000 usuários simultâneos.
A questão é que naquela época eu havia escutado a respeito de Docker. Era algo que estava no meu radar, mas naquela época era uma buzzword, um termo da modinha. Não tinha compreensão plena de como usar, nem tinha maturidade para implantar algum projeto baseado nele. Aliás, naquela época ainda não havia muita informação sobre .NET Core. .NET core era algo em desenvolvimento.
Meses depois, dediquei a estudar docker e Voilà!
Descobri que “havia perdido semanas” produzindo uma documentação de implantação, com os mínimos detalhes sobre como subir uma infra completa com RabbitMQ, Elasticsearch, LogStash e Kibana. Do download à produção!
Mais tarde, na medida que aprendia docker e me apaixonava pelas oportunidades que ele me traria, recriei esse mesmo stack que mantenho, cariosamente, até hoje. O EnterpriseApplicationLog.
Eu troquei mais de 10 documentos Word, complexos, cheios de detalhes, por alguns poucos arquivos de configuração e composição de stack.
Você não precisa mais do que:
git clone https://github.com/docker-gallery/EnterpriseApplicationLog.git cd ./EnterpriseApplicationLog docker-compose up
Para ter esse stack na sua infra.
Se eu tivesse docker ao meu lado naquela época…
- Eu poderia demonstrar e acelerar todo o processo de convencimento a respeito do uso desse stack.
- Eu não perderia tanto tempo criando documentos texto, perecíveis.
- Eu produziria um repositório que por si só colocaria o stack no ar, sem intermediários, sem procedimentos lentos.
- Eu trocaria uma implantação de 8-16 horas por 8-16 minutos.
Enfim, esse projeto foi um sucesso, faltava muito pouco para colocar o projeto em produção, mas já conseguíamos alcançar nosso objetivo com ferramentas de teste de carga especializadas. Aliás, subir essas ferramentas com Docker seria algo absolutamente incrível.
Docker e o Novo mundo
O ponto é que Docker mudou a forma como vemos automação, isolamento, tornando Linux Container algo popular, fácil de usar, algo produtivo.
Vemos claramente uma disruptura da forma com lidamos com infraestrutura e como compomos stacks.
Um dia será difícil explicar como fazíamos quando não tínhamos Docker.
Minha jornada
Essa jornada de aprender docker se confunde com minha jornada de ensinar docker.
Eu vi tanto potencial e fiz uma aposta tão grande em empenho de tempo e dedicação ao assunto, que acabei por me sentir no DEVER de trazer isso para a comunidade .NET.
Eu queria mostrar como é mais fácil, como podemos criar aplicações mais robustas, eficientes e resilientes usando o que há de melhor no mundo open source.
Encontrei no Docker uma oportunidade para oxigenar os projetos com tecnologias especialistas, evitando a criação de gambiarras. Agora uma solução especialista em cache como Redis, ou em mensageria como RabbitMQ, estão ao seu dispor com muito pouco esforço.
Essa caminhada ensinando docker me fez produzir muito, mas muito conteúdo mesmo!
Ao todo, caminhando para as 8 mil horas de conteúdo assistido em mais de 30 horas de conteúdo.
Seu pedido…
Mas vocês pediram um modelo de treinamento.
Vocês que me chamam no privado! Pediram muito! E agora está aqui!
Mas eu não queria fazer um treinamento qualquer. Tinha de ser algo agressivo, que pudesse de fato transformar quem não conhece absolutamente nada de Linux.
E com as partes chatas mesmo, com os fundamentos explicados pela perspectiva de quem sempre usou Windows.
Aliás, até 2015 minhas experiências com Linux haviam sido pífias. Hoje conseguimos nos entender bem, é uma relação que parece muito mais estável e duradoura! 🙂
Eu vivi essa frustração, angustia, em não saber qual o próximo passo na hora de lidar com um linux server headless. Foi frustrante até me jogar de cabeça!
Eu quero trazer essa experiência para o treinamento. Uma experiência que mostre exatamente o que fazer para não se sentir desconfortável
Ah, mas você só quer ganhar dinheiro!!!

A forma menos eficiente que eu conheço para quem quer vender algo, é você mesmo produzir um concorrente gratuito!
Docker de A a Z é uma série gratuita. Que “concorre” diretamente com o Docker Definitivo.
A diferença é que o Docker de A a Z é limitado em atenção, em acompanhamento. Não tem o viés de uma jornada, com uma turma. Não tem lives quase que semanais.
Se o objetivo fosse ganhar dinheiro, não faria sentido ter produzido tanto conteúdo gratuito!
Não teria produzido tantos stacks.
Não teria disponibilizado tantos projetos, no github, ou no docker hub.
Dezenas de milhares de potenciais “clientes” aprenderam docker com o Docker de A a Z.
Sinceramente! Para muitos só faltava um detalhe. E eu fiz questão de atender a essa expectativa. E o conteúdo gratuito continua arqui: gago.io/docker/.
Use o conteúdo gratuito para me testar
Se quer ver como eu ensino, como eu apresento conteúdos técnicos, você tem zilhões de horas no youtube.
Esse material serve para você me avaliar!
Aproveite! Você tem até domingo, 27/out 23:59 para tomar sua decisão!
Garantia
Meu compromisso é com o resultado. Com o teu engajamento nessa jornada. Inclusive é por isso que eu não deixei a janela de inscrição aberta por muito tempo. É injusto com a galera que está comprando. Com a galera que comprou nessa madrugada e hoje durante o dia.
E para mostrar meu compromisso, de forma contundente! Te dou uma garantia de 30 dias.
Uma garantia incondicional!
Então se você acha que não tem tempo, não tem aptidão, não tem skill ou sei lá o que. Basta apertar um botão e desistir. Ter seu dinheiro de volta!
São 30 motherfucker dias de garantia!
Sim, todo o risco é MEU, e somente MEU.
Ou você gosta do Docker Definitivo! E esse projeto traz para você a transformação que você quer, ou ok, você cancela e pronto, está tudo bem!
Janela de Inscrição
Para ser justo com quem já comprou, a janela é curta, fecha domingo, dia 27/out às 23:59, ou quando a turma lotar. O evento que ocorrer primeiro, causa o fechamento da janela.

CNAB – Cloud Native Application Bundle
No post anterior eu falei sobre Open Application Model (OAM) o que me leva a falar de CNAB comparando-o com OAM.
ler mais…
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…
Proxy Reverso: Pra quê? Por quê?
Você já nos viu falando de Proxy Reverso, em geral usamos NGINX nessa tarefa, mas afinal? Pra quê isso? Por que “isso” é necessário?
ler mais…
Docker – de A a Z – 20 – Volume TMPFS – o poder do file system em memória
Uma das coisas lindas do Linux é a separação volumes e file system. E você não faz ideia do que dá para fazer com file system em memória!!!?
ler mais…Mensageria
Hub de Eventos
Na quinta-feira, dia 18/Março/2021 vamos falar do Hub de eventos que produzi para atender uma demanda particular. Eu não precisava de extrema performance e redundância, mas e se precisasse?
ler mais…
RabbitMQ – Guia de Estudo Gratuito 2021
RabbitMQ é simples e incrível. São apenas 4 componentes. Relativamente simples, mas cada um tem detalhes que escondem ouro.
Se você conhece estruturas de filas, pode pensar que já sabe do que se trata. E é aí que mora o engano. O RabbitMQ não é simplesmente uma infraestrutura de filas, é um Message Broker. Essa categoria exige que tenha habilidades que vão muito além de simplesmente possuir filas FIFO. Há detalhes que levariam semanas ou meses para implementar e anos para estabilizar, dependendo da linguagem.
Por isso defendo seu uso nos cenários mais variados.
ler mais…
Como perder mensagens com RabbitMQ
É comum falarmos sobre receitas de sucesso e como resolver problemas, mas será que você está fazendo essas coisas, está perdendo mensagens e vai culpar o RabbitMQ por isso?
Se liga nessas dicas, pois se você está perdendo mensagens com RabbitMQ, a culpa é totalmente sua! E vou mostrar como você pode perder mensagens para que isso não ocorra mais.
ler mais…
Ring Buffer – Antecipe, otimize e evite custos excessivos
Ring Buffer, também chamado de Circular Buffer é uma estrutura de dados muito poderosa. Seu nome já traz o spoiler e entrega o ouro, afinal não deixa de ser um buffer, só que trabalhando em formato de anel/circular. Se você não faz ideia do que seja, vem comigo nessa viagem pois vamos dissecar o assunto e ainda compará-la ao processo de uberização dos objetos custosos.
(mais…)
Post Resposta: POR QUE ADOTAR KAFKA PARA MENSAGERIA?
Esse é um post resposta ao post POR QUE ADOTAR KAFKA PARA MENSAGERIA? do Elemar JR no site da Eximia, sua empresa.
A resposta estava ficando longa demais, e resolvi transformar em post. Principalmente por se tratar de um conteúdo (RabbitMQ) que está no meu toolset, assim como Kafka está para entrar. Vou aproveitar para usar essas resposta para compor a seqüência de posts da série RabbitMQ de A a Z, pois essa questão RabbitMQ vs Kafka foi um tema solicitado pela audiência e não foi respondida na época.
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.



















