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 Consul, que abordarei hoje, temos etcd, ZooKeeper. Mas escolhi falar um pouco sobre o Consul por causa do seu DNS interno, e o que vou apresentar hoje utiliza basicamente essa implementação, por ser algo simples, e retrocompatível.

Veja mais

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 exceção. Qual conclusão chegamos? Assiste aê, tire a sua conclusão e retorne com sua opinião. Live…

Veja mais

Contract Package – Uma excelente alternativa ao Service Reference

Falar de WCF em meados de 2017 parece algo sem sentido, no entanto considero relevante tornar públicas soluções e alternativas que muitas vezes só apresentava dentro dos times por onde passei. São soluções, ideias, conceitos que ajudam no desenvolvimento e tornam o dia-a-dia de desenvolvimento mais fácil para quem está ciente dos conceitos ao redor da plataforma. Ignorei a possibilidade de publicar esse tipo de conteúdo para evitar exposição, já que obviamente, os preguiçosos irão reclamar, e muito! De qualquer forma asseguro, se você usa WCF e nunca viu esses conceitos, acredito que ao concluir esse post verá a tecnologia como algo menos místico, e até poderá criar alguma empatia por ela. É ambiciosa a minha proposta, eu sei!

Veja mais

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

Pessoal, hoje vou falar um pouco de um stack de log muito interessante, esse papo acontece aqui no Docker de A a Z pois toda a infra de log é feita usando Docker. Nesse stack de log utilizo RabbitMQ,  LogStash, ElasticSeach e Kibana com Docker Compose. São muitos elementos, mas esse desenho garante o máximo de performance…

Veja mais

Microsoft Virtual Academy – Microservices

Uma boa dica para quem quer conhecer MicroServices sob o ponto de vista da Microsoft é o MVA – Introdução à MicroServiços (em inglês). O conteúdo foi lançado dia 09/Junho e conta com os seguintes tópicos: Introdução a Arquiteturas de Serviço Introdução a Containers Azure Compute Platform e Conjuntos de escalabilidade de Máquinas Virtuais O que é…

Veja mais

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 é extremamente útil quando trabalhamos com legados ou construção de frameworks de baixo nível. Não percam,…

Veja mais

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 com as melhores práticas. Esse post é para você.

Você pode encontrar imagens para os mais variados tipos de serviços e produtos, desde load balancers até blogs, bancos de dados SQL e NoSQL até Log. A maioria delas preza por alguns aspectos que são considerados boas práticas na criação de imagens, entenda como nesse post.

Veja mais

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 aproveitar esse post vou tentar usar uma linguagem ainda mais informal que a de praxe.

O nascimento dos padrões

Na real, uma máxima você não pode ter fora da sua cabeça:

Padrões são escritos por pessoas que interpretam situações, problemas e soluções recorrentes e resolvem escrever sobre o tema.

Um padrão nasce da observação de um grupo de pessoas ou projetos que fazem algo de uma determinada forma (parecida ou idêntica) e que chamam a atenção do observador. O observador identifica o “jeitão”, técnica ou solução para escrever sobre aquilo. Assim nasce um padrão.

Se você não entendeu as implicações disso, pense:

Veja mais

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 cast que está aqui, minha intenção é debater sobre o assunto.

Deja-Vú

O ponto mais engraçado é que para uma grande parte da galera nova, e já trabalhei com um pessoal que pensa isso, WCF é algo totalmente desnecessário e irrelevante, em contrapartida WebAPI é a solução mais eficiente e eficaz para integrações e exposição de serviços.  Na cabeça deles, WCF é quase um elefante branco, desnecessário, over design, simplesmente too much. Eles traziam consigo o hype de que o WCF era tão grotesco e pré-histórico quando cobol.

Veja mais

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.

Você sabe o que são logs estruturados?

Logs estruturados, diferente dos logs de aplicação, comuns, contém uma série informações e metadados adicionais, usados para agrupamento e consulta. Logs estruturados devem conter informações relevantes ao negócio e ao desenvolvedor.

Um log comum de exceções, por exemplo, envia dados da exceção, como mensagem, stack trace, inner exceptions. Um log estruturado de exceções, poderia conter informações que diagnosticam o servidor no qual o log foi gerado, qual a operação estava sendo processada, qual o ID ou dados mais completos dos seus objetos de negócio durante a operação, além da comum severidade. E não para por aí, ainda seria possível informar qual o cliente da requisição, no caso de WebApps, qual o usuário logado, entre outras diversas informações de aplicação que poderiam ser passadas para o log, ajudando no troubleshooting e análise de problemas ou mesmo de fluxos de negócio.

Veja mais

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 criação de novos negócios encontram novas formas de monetizar suas companhias. Independente da forma como esses novos produtos e serviços são criados sempre demandam novas funcionalidades em sistemas antigos, ou até mesmo a criação de novos sistemas.

Veja mais

IoC e Dependency Injection – Os erros comuns

Olá, tudo bem? Que copa né?! Sermos batidos por 7×1, 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 sobre o erro de usar IoC e DI, e quero usar esse post para tonar isso mais óbvio.

Veja mais

O que eu uso?

Olá, como vai você?

As polêmicas

Do lado de cá, continuo me metendo em polêmicas e mais polêmicas nos grupos de discussões nacionais, e nesse final de semana decidi sair desses grupos. A discussão por aqui não é muito produtiva, leva-se tempo para que as pessoas foquem no foco de uma discussão enquanto, outros fazem agressões descabidas, ou mesmo falem muita besteira. Chato isso, mas de fato, há muita gente achando que sabe, o que não sabe!

Veja mais

As dificuldades de profissionalizar as soluções de software de uma Startup

Olá, tudo bem com você? Então comigo anda tudo caminhando, o stress que anda me matando, no mais, a vida segue.

Hoje vou falar um pouco sobre as dificuldades de um dia-a-dia de uma empresa que quer se tornar uma ex-startup.

As primeiras dificuldades que você encontra estão relacionadas à falta de verbas que é comum nos primeiros anos de muitas startups, principalmente as que não tem uma grande ingestão de investimento, nos primeiros anos de existência. Essas empresas possuem características únicas e nocivas à própria empresa, podendo atrapalhar na evolução sustentável de seu parque tecnológico.

Veja mais

Oragon.BuildTools.NugetTools – Utilitário de linha de comando para sincronizar arquivos NuSpec

Olá, como vai você? a partir da seguintes demandas, criei um executável utilizável de linha de comando que ajuda na atualização de Nuspec files. Premissas Minha solution tem uns 25 projetos e são todas bibliotecas publicáveis no NuGet. Se tentar gerar os pacotes com base no CSPROJ, faltam metadados (assemblyInfo) para preencher todos os campos de…

Veja mais

3 em 1: SignalR, INTRODUCING: The Future of .NET on the Server e DEEP DIVE: The Future of .NET on the Server

Olá, como vai você? Nos vimos um post qualquer do passado em que ao final deixei a dica de 3 sessões do TechEd que são imperdíveis! Aqui estão! SignalR: Building Real-Time Applications with ASP.NET SignalR INTRODUCING: The Future of .NET on the Server DEEP DIVE: The Future of .NET on the Server Por hoje não é…

Veja mais

Uma parte do que você precisa saber sobre o Microsoft vNext

[EDITADO]

Olá, como vai você? Espero que esteja tão excitado com as novidades da Microsoft quanto eu, mas se não estiver, vou tentar mostrar um pouquinho da revolução que estamos vivendo em nossa plataforma.

Nessa semana rolou o TechEd North America 2014 e nele muita coisa legal foi apresentada. Aqui faço um compilado da história da plataforma e dos posts mais interessantes, da própria galera da Microsoft e da galera que esteve por lá conferindo as sessões!

Não perca!

Veja mais

Apresentação Oragon Architecture

Olá,

como vai você? Bom, espero que nesse dia das mães não esteja enfurnado no computador. Bom, do meu lado a minha fica distante de mais, em muitos os sentidos, portanto, lá vamos nós!

Hoje não vou falar muito, vou compartilhar apenas uma apresentação que fiz sobre algumas features do Oragon Architecture. A maioria já é bem conhecida, mas algumas outras são novinhas. Abaixo temos a apresentação, espero que goste.

Veja mais

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 vésperas de lançar o projeto Oragon Aaron, onde encontramos o Oragon Architecture Application Server destinado a endereçar diversos aspectos de uma arquitetura baseada em microservices, li um artigo interessante de um pessoal que sigo há pouco tempo. O highscalability.com é um excelente site para quem quer estar antenado nas tendências de escalabilidade e cloud. Em 8/Abril saiu um artigo chamado “Microservices – Not A Free Lunch!” cujo pelo título já temos um overview do que vem pela frente de quem pretende usar esse desenho de arquitetura.

Veja mais