fbpx

Arquitetura de Software & Arquitetura de Soluções

Galeria de Patterns

Uma lista de patterns para ajudar na resolução de problemas

.NET Design Patterns

Cloud Patterns

SOA Patterns

Cloud Native | 1 – Definindo Cloud Native

Ao longo dos últimos anos Cloud Native tem estado em evidência.

Mas afinal, do que se trata?

É isso que vamos descobrir tentar descobrir.

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!

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?

Publicações

Meus posts sobre Arquitetura de Software, Arquitetura de Solução e Design System.

6 Semanas com .NET Aspire

6 Semanas com .NET Aspire

Estamos na semana 43 de 2024, faltam 9 semanas para o réveillon. Desde a semana 38 estou trabalhando com ASPIRE e quero falar sobre essa experiência. Contexto O primeiro ponto para a contextualização é que o Academia Pay não é um projeto para ser comercializado,...

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

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

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

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

ler mais
Dev ou Ops, de quem é a responsabilidade?

Dev ou Ops, de quem é a responsabilidade?

Muitas e muitas vezes me envolvi em discussões sobre responsabilidades sobre serviços de suporte e tudo que está ao redor das nossas aplicações, como Proxy Reverso, API Gateway, Cache Server, Mensageria, Vault, Plataforma e por aí vai. Afinal, quem é o Owner dessas...

ler mais
Quais dados, logs estruturados precisam ter?

Quais dados, logs estruturados precisam ter?

Eu estava escrevendo sobre logs estruturados, em especial sobre o Enterprise Application Log, e resolvi quebrar meus argumentos em frações menores para poder isolar as ideias. Aqui hoje quero falar sobre o que um bom log deve ter. Nos primeiros anos de 2010, a...

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

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

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

ler mais
Cloud Native | 1 – Definindo Cloud Native

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

ler mais
Além das 3 camadas | Componente: CDN e Cache

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

ler mais
Além das 3 camadas | Ferramenta: Redis

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

ler mais
Além das 3 camadas | Iniciando os trabalhos

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

ler mais
Porque Injeção de Dependência importa?

Porque Injeção de Dependência importa?

Algumas coisas são feitas no automático, e se você não entendeu porque o ASP .NET usa Injeção de Dependência by default, você deveria ler esse post. O que vamos entender hoje é porque Injeção de Dependência é importante, e as implicações em não usá-la. Engraçado que...

ler mais
Certificado, TLS, SSL, como funciona?

Certificado, TLS, SSL, como funciona?

Você já deve ter ouvido em algum lugar que precisa colocar um certificado, ou habilitar o SSL em algum lugar, certo? A intenção é tornar esse assunto menos abstrato com a intenção de trazer clareza sobre como as coisas funcionam. Você já dever ter vivenciado, como...

ler mais
Abstrações e seu ciclo evolutivo

Abstrações e seu ciclo evolutivo

Uma das ideias que tenho amadurecido ao longo dos últimos anos está ligado às implementações de mecanismos arquiteturais e abstrações. Em Abstrações – Tradeoffs e co-responsabilidade eu falei sobre o que são abstrações boas, abstrações ruins, ponderei sobre quando...

ler mais
Be Welcome .NET 5

Be Welcome .NET 5

É incrível ver que mesmo diante do dilema de uma mudança abrupta de rotina, o calendário de Releases do .NET 5 se manteve intacto. Temos uma mudança incrível na plataforma e enfim chegou o .NET 5! O Release Candidate 2 do .NET 5 já é SUPORTADO EM PRODUÇÃO pela...

ler mais
Microsoft Orleans 3.0

Microsoft Orleans 3.0

Sobre esse lançamento vemos algumas novidades, mas eu não abordarei elas. Referenciarei alguns posts e apresentarei o projeto de demonstração que criei no github. Ainda é cedo para aprofundar no tema e lançar um texto profundo sobre Orleans. Além disso acabaria...

ler mais
OSBAPI –  Open Service Broker API

OSBAPI – Open Service Broker API

Em um mundo conectado, com cada vez mais soluções SaaS e PaaS. Há uma boa tendência e convergência em iniciativas que visam criar marketplaces de soluções. Compondo serviços dos mais variados estendendo as capacidades de nuvens públicas e privadas. Ao mesmo tempo,...

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

ler mais
Oragon Spring 2.0

Oragon Spring 2.0

Finalmente trago o Spring.NET em seu fork Oragon.Spring para o .NET Standard 2.1 e ASP.NET Core 3.0. Nos últimos anos tenho me dedicado a falar mais de arquitetura de solução do que arquitetura de software em si. Cada vez que peso os estudos em uma das duas direções,...

ler mais
O fim do IIS

O fim do IIS

Talvez você esteja acostumado com o Internet Information Services, talvez conheça-o, assim como eu, desde o tempo do Personal Web Server. Entre amor e ódio o IIS ajudou muita gente, mas seus dias de apogeu estão chegando ao fim. TL;DR; IIS morreu ou vai morrer? Não!...

ler mais
Sobre Formula 1 e Microsserviços

Sobre Formula 1 e Microsserviços

A busca pelo Santo Graal, agora personificado nos microsserviços, causa uma euforia semelhante ao que víamos nas filas de pessoas dando voltas em quadras, em véspera de lançamento do iPhone. Hoje microsserviços virou uma febre, o que é intuitivo e natural, mas nem de...

ler mais
Diário de Bordo – Poltys – #2

Diário de Bordo – Poltys – #2

Esse é um post complementar que endereça algumas dúvidas da galera que viu esse post e me chamaram para tirar suas dúvidas. Desde já vou chamar esse Controller/Scheduler/Manager de CSM, isso porque até então todos esses nomes são compatíveis com seus comportamentos...

ler mais
Riscos Técnicos: Tomar ou Declinar?

Riscos Técnicos: Tomar ou Declinar?

Então você se deparou com a necessidade de tomar decisões e está inseguro? Será que alguém já fez aquilo que você está pensando? Será que sua decisão é uma gambiarra ou não? Bom, eu já me questionei sobre isso diversas vezes, e algumas decisões difíceis de fato já...

ler mais
Modelagem – Conectando os pontos

Modelagem – Conectando os pontos

Já faz muito tempo que gosto de modelar os elementos de uma arquitetura como componentes reaproveitáveis, em geral abstrações que me proporcionem a qualquer consumidor simplesmente usá-la, e para isso há algum esforço na modelagem para abstrair aspectos que são...

ler mais
Estratégia Técnica

Estratégia Técnica

Meio a tantos incentivos e pressões para gerarmos ciclos de entrega cada vez mais curtos, não passam despercebidas as oportunidades de entregar código de baixa qualidade para agradar um chefe, um gerente, um cliente, ou quem quer que esteja interessado na data da...

ler mais
RESTHeart – The Web API for MongoDB

RESTHeart – The Web API for MongoDB

Esse post é super rápido já que perdi um bom tempo documentando o projeto no github. Então vamos lá! Trata-se de uma web api para o MongoDB. Eu já falei sobre isso no passado quando citei o que eu usei em Uma PoC de Sucesso. Agora que estamos às vésperas do Hangout...

ler mais
Consul – DNS – Visão Geral

Consul – DNS – Visão Geral

Service Discovery é a capacidade que trata da descoberta de serviços em uma rede. É um elemento fundamental no dia-a-dia de quem trabalha com MicroServices, mas também pode ser usado por qualquer um que precise de algum dinamismo na descoberta de serviços. Além do...

ler mais
Exception Handling

Exception Handling

Pessoal, rolou hoje no Software em Contexto um bate papo sobre Exception Handling muito legal. Nesse papo abordamos exceptions quando lançar, quando não lançar, falamos diversas formas de tratar exceptions, apresentamos códigos e refletimos sobre o que é ou não uma...

ler mais
Uma PoC de Sucesso

Uma PoC de Sucesso

Esse post não tem o intuito de falar de boas práticas, de abordar padrões, técnicas mirabolantes, ou nada disso. É sobre fazer concessões para obter um resultado, levando em conta recursos disponíveis como know how, equipe e principalmente tempo. Parece familiar? Ok,...

ler mais
NGINX Automation

NGINX Automation

Se você usa o NGINX em produção, como Reverse Proxy, já se perguntou se seria possível criar algum tipo de automação. Essa é uma demanda pois quanto mais apps passando por ele, mais endereços, mais configurações serão necessárias. Se você usa todo o potencial do...

ler mais
DevOps & Tests Hack Nights – Microsoft Fakes

DevOps & Tests Hack Nights – Microsoft Fakes

Pessoal, daqui a pouco 19 horas vou falar sobre Microsoft Fakes no Canal .Net. Para quem não conhece, Microsoft Fakes é uma infraestrutura de Mocking que suporta teste de artefatos "intestáveis", seja comportamentos do .Net Framework ou métodos estáticos, esse recurso...

ler mais
Todo WebDev deveria saber: Infraestrutura

Todo WebDev deveria saber: Infraestrutura

Nós trabalhamos com projetos web, serviços, apis, conversamos e definimos soluções, desenhamos projetos pequenos, médios, mas e quando o bicho pega e você precisa de algo maior? Estar pronto para administrar e resolver problemas do dia-a-dia no desenvolvimento web,...

ler mais
Docker Images – Dicas e Truques

Docker Images – Dicas e Truques

Você já criou suas primeiras imagens, mas algo não ficou bom e teve muito trabalho? Periódicas atualizações fizeram com que gastasse um tempo não previsto para atualizar imagens?! Deseja criar imagens mas não sabe como criar imagens de forma eficiente e de acordo...

ler mais
MonolithFirst @ Fowler, artigo comentado

MonolithFirst @ Fowler, artigo comentado

Olá pessoal, hoje vou falar um pouco sobre um padrão detalhado pelo Fowler meses depois da minha saída do iMusica. Por sinal, há algo de interessante com esse padrão, pois era algo que alguns membros do meu time reclamavam e consideravam um anti-pattern. Vou...

ler mais
TypeScript + Classic ASP … Why not?

TypeScript + Classic ASP … Why not?

As vezes algumas limitações impostas por clientes, times de arquitetura e empresas atrapalham nossas vidas. Não é fácil, nos dias de hoje, se sentir confortável em desenvolver algo com ASP Clássico. ASP pode ser facilmente considerado o cobol da Web. Com TypeScript...

ler mais
WebAPI não é bala de prata

WebAPI não é bala de prata

O tema Pessoal, faz alguns dias que assisti um debate interessante e muito produtivo com o tema "Serviços na plataforma .NET: WCF ou WebAPI?". Quem conduziu o debate foi a galera do AspNetCast‬, com a presença do Evilásaro Alves. Bom, não vou debater a respeito do...

ler mais
Logs Estruturados

Logs Estruturados

Então, meses sem escrever nada mas hoje estou aproveitando o domingo para escrever algumas coisas sobre o que tenho vivido no último ano. Olhando projeções para o próximo ano, vejo alguns pontos relevantes relacionados ao que posso contribuir com o dia-a-dia de vocês....

ler mais
Pragmatismo nunca é demais

Pragmatismo nunca é demais

As empresas cada vez mais tornam-se especialistas em suas áreas, demandando cada vez mais complexidade de seu parque tecnológico. Enquanto no início de suas atividades poucos sistemas davam conta de todo o negócio. Com o passar dos anos, áreas especializadas na...

ler mais
IoC e Dependency Injection – Os erros comuns

IoC e Dependency Injection – Os erros comuns

Olá, tudo bem? Que copa né?! Sermos batidos por 7x1, em casa, não é nada legal, mas poderia ser pior, em vez da Alemanha, a Argentina! Bom, independente do resultado da copa, esse assunto aqui pode realmente tirar seu sono. É comum entrar em discussões eternas...

ler mais
Microservices – Buzzword da vez

Microservices – Buzzword da vez

Olá, como vai você? Bom, embora eu tenha citado Microservices nos posts Oragon Architecture - Application Hosting e Roadmap da Reestruturação do Oragon Architecture, acho que é hora de entrar um pouco no detalhe do que vem a ser este "novo velho mundo". Bom, às...

ler mais
Integrações, XML`s e NoSQL

Integrações, XML`s e NoSQL

Olá, tudo bom? Nesse post gostaria de abordar uma solução que usei no iMusica e que pode também te ajudar com integrações baseadas em XML ou qualquer formato unquerable(neologismo). Antes de falar da solução, vou falar do problema. Nossas integrações no iMusica...

ler mais
Future Plans for C# – Null Propagation

Future Plans for C# – Null Propagation

No artigo Future Plans for C# de InfoQ Internacional, temos um ponto que acho bem interessante de ser ressaltado: Null Propagation Esse assunto já foi tema de muita discussão no DotNetArchitects em um post sobre Null Object Pattern. When working with messy data,...

ler mais
SOLID

SOLID

Olá,  já temos conteúdo suficiente indexado pelo Google falando de SOLID. Minha intenção é criar um debate sobre SOLID e não definí-lo para você. Single responsibility principleOpen/closed principleLiskov substitution principleInterface segregation...

ler mais
IOC / DI – Você está fazendo isso errado!

IOC / DI – Você está fazendo isso errado!

Olá, agora vou tocar em um assunto que parece uma ferida para muitos, mas considero bem básico. Infelizmente, acredito haja quem confunda estes conceitos, e por ter encontrado pela estrada alguns projetos com tais problemas relacionados à compreensão de IoC e DI,...

ler mais

.NET é o ponto central nos meus 2 principais cursos:

RabbitMQ para Aplicações .NET

e

O Roadmap / Docker Definitivo.