Cassler, Chaos Monkey no Gin, Post-Mortens, DynamoDB e Golang pra caramba.
Oi Leitor San, moshi moshi kawai desu eu voltei hihihi :3
Eu to sumido sim. Final de ano, black friday, pix e etc… Eu sei que já passou, mas peguei uns dias ai pra desligar e me recuperar. Mas agora vamos voltar 100% e VOCÊ VAI TOMAR NEWSLETTER NO MEIO DA TUA CARA, É ISSO QUE VOCÊ QUERIA??? ENTÃO É ISSO, TOMA NEWSLETTER BEBÊ!
Vamos lá que tem bastante coisa útil hoje!
Chaos Monkey no Gin Gonic Framework? Eu que fiz papae.
Esses dias estava estressado e decidi codar alguma coisa pra me lembrar que eu ainda tenho algum tipo de utilidade além de escrever Terraform. Nesse caso me inspirei no Framework de Assaults do Spring Framework pra criar um Middleware de Chaos Monkey pro Gin Framework. O Gin tem sido meu framework preferido até o momento. Eu gosto pra caramba dele tanto pra criar coisas simples e rápidas quanto pra projetos mais elaborados com camadas mais inteligentes. Então decidi eu mesmo codar uma dessas camadas, em forma de middleware que fosse facilmente configurável via variáveis de ambiente e que pudesse injetar falhas automaticamente durante o uso do serviço. Ainda tenho um backlog grandão pela frente, mas vou deixar o framework aqui pra quem quiser contribuir e usar.
Da um liga no meu projeto do Git. Aproveita e deixa o Star, e manda PR’s ❤️
Versão nova do Cassler, minha tool pra análise de certificado e protocolos TLS.
Já que eu comecei chutando o balde de coisas que eu codei, vou aproveitar e mandar a braba que eu lancei a versão v0.0.9 do cassler. A novidade é que eu fiz alguns refactors e adicionei a opção de especificar um servidor de DNS customizado, utilizando a opção `—dns`. Uma outra tool que eu fiz pra resolver um problema pessoal e acabei ajudando uma galera ai, eu amo muito quando isso acontece. Me sinto útil.
Essa tool já apareceu na edição passada, que pelos meus cálculos foi há 86 anos, e tem o intuito de fazer testes de conexão pra testar as versões de TLS habilitadas em todos os hosts de um dominio, além de fazer um dump do certificado SSL de todos eles. Tem release pra Linux, Mac e Windows eu quero que se lasque.
Aceito contribuições também. Da aquela estrelinha, um fork e um PR no repo do Git ❤️
Estratégias de Mocking Go
Testes são um grande ponto de melhoria entre minhas skills, confesso que sou muito "cru" em criatividade quando o assunto são tipos de testes do meu código. Achei esse artigo bem bacana escrito pelo Tim Winkler exemplificando vários tipos e técnicas de mocking em Golang como Higher-Order Functions, Monkey Patching, Interface Substitution, Embedding Interfaces e Mocking de chamadas HTTP. Meu conhecimento sobre nunca foi muito formal tecnicamente sobre isso, admito, tanto que eu descobri que eu aplicava (algo parecido) com Monkey Patching em muitos cenários sem saber o nome. Ta aqui pra vocês darem uma olhada nas ideias.
Linkerd 2.9 Testei há umas semanas semanas atrás, tava bugado
Saiu uma release nova do Linkerd com algumas features muito interessantes pro (que realmente é) service mesh. Uma parada muito massa que foi adicionada na release é o mTLS By Default em toda a comunicação interna entre os pods. Isso é bem bacana porque nos permite deixar o controle de tráfego (que é pra isso que service mesh serve) cada vez mais segura e customizável. Na real mesmo eu nem imaginava que o Linkerd não tinha essa feature como opcional.
Eu testei essa feature semana passada pelo quickstart da doc sem reparar que existia uma release nova, o problema é que: bugou pra caralho. Erros de Invalid Certificate pra todo lado e causou um downtime chato no cluster. Sorte que era meu, então não é downtime, no maximo fiquei puto por achar que eu sou burro.
Architecture Playbook
Como muita gente já reparou, meus amigos próximos já sabem de cor e até saem de perto quando o assunto é esse, eu amo guias de referencia de arquiteturas, tanto com base na lógica de software, padrões estruturais, organização e tal. Achei esse guia chamado No Complexity (só o nome já diz bastante coisa) que eu confesso que não digeri completamente. Os guias são bem bacanas, uma série de "cagadinhas de regra" saudáveis de uma série de assuntos que envolvem arquitetura, desde software, negócios , modelos de dados, QA, Risco, e etc. To tentando seguir por ordem alfabética e já reli algumas vezes até o modelo de dados. É bem bacana e vou deixar aqui pro backlog de vocês. Depois me da um ping sobre o que você achou. Vou deixar aqui um abraço pro meu amigo Karlisson que me passou esse cara no grupo dar Fiiiirrrrrma.
WAF no Envoy, finalmente! Que Legal!
Sempre que possível eu me forço a falar do Envoy. Eu tenho muito orgulho do que a plataforma (sim, plataforma) que o Envoy Proxy se tornou. A quantidade de coisas que podem ser construídas em cima dele são incríveis, veja por você mesmo. Uma das principais críticas que surgem na adoção dele como front proxy, além dos sidecars de service meshs e ingress controllers, sempre foi a falta de um proxy layer 7. Até que eu conheci esse Curiefense pelo tweet do mestre Fernando Ike. É um projeto novo, eu ainda não usaria em produção mas ficaria de olho. Da uma olhada no github desse cara que foda.
Otimizando imagens Docker pra Spring Framework
Agora umas dicas base de criação de otimização de imagens Docker pra rodar Spring de forma mais otimizada e leve. Tudo que você coloca em cima de uma JVM você sabe que é um parto na hora de fazer build e startup, certo? Nesse artigo temos alguns insights bacanas pra otimizar a release de imagens Java e Kotlin rodando Spring Framework. Vou deixar aqui, eu sei que o Javinha não é o hype da maioria, mas com certeza pode ajudar bastante gente, assim como me ajudou.
Post Mortem da AWS sobre as falhas do Kinesis
Saiu o post mortem / tracing técnico da AWS sobre a falha do Kinesis que impactou uma baralhada de outros serviços no dia 25 de Novembro. Eu sei, eu to atrasado, e eu avisei. Eu achei bem bacana, uma vez que a Amazon AWS não é uma referencia técnica na transparência de resolução e causa raiz pros clientes. Uma parada que me deixou um tanto preocupado é que até a AWS usa esse conceito de “pecinhas de lego” pra própria arquitetura, e possivelmente o que faz o Cloudwatch ser tão caro na maioria das vezes é a execução não intencional de uma “frotinha” de Kinesis na sua conta, por exemplo. Vou deixar aqui pra vocês lerem. Eu fiquei bem feliz pelo posicionamento da AWS. Parabéns AWS, meu amigo, você é um amigo. Da um liga.
Command Not Found, aquela firulinha gostosa.
Muito legal esse sitezinho chamado Command Not Found que te ajuda a descobrir o nome da maioria dos pacotes dentro dos gerenciadores de pacote.
Bem simples, eu achei mega divertido. Da uma olhada que legal.
Calculadora de DynamoDB (Cassandrinha as a Service)
Durante algumas estimativas achei uma calculadora bem legal de estimativa de custos do DynamoDB.
Ela é bem melhor que a oficial da amazon e pode estimar desde o banco provisionado ou quanto ele vai custar no modelo on demand com base na sua estimativa de uso. Com certeza já entrou aqui na minha lista de links favoritos pro dia a dia, e talvez possa entrar pro seu. Da um liga nesse monstrinho.
20 pacotes que (talvez) você não conhecia pra ta te ajudar no seu projeto em Go
Ta aqui uma daquelas listinhas que todo mundo (pelo menos eu) gosto muito de receber. Normalmente são compiladas por alguém que conseguiu fechar um “pacotinho” de utils que implementa em vários projetos pra ganhar uma certa agilidade depois de escovar um pouquinho de bits em cima. Eu sou bem fã desse tipo de conteúdo e amo receber. Então se você já teve algum x pacotinhos pra usar com y, me manda que eu vou ler. Nesse artigo, em especifico, veio do Fernando Souza que possivelmente era um bom programador Python e montou seu toolkit em cima de algo que familiarizasse ele com o uso da linguagem. Pelo menos minha leitura foi essa, e se foi mesmo, conseguiu! Peguei dicas bem interessantes como o golang-set e o grequest, e alguns já apareceram algumas vezes por aqui como o GoKit. Da um liga na listinha dele, tenho certeza que você vai achar algo que ajude.
Go Routines & Channels sem Bugs
Agora um artigo bem interessante sobre como codar suas Go Routines evitando bugs e execuções intermináveis, ou até indevidas.
Eu gosto bastante de utilizar Go pra escrever código assíncrono. Mania que eu trouxe do Javascripto, e nesse artigo o Lewis Fairweather nos dá várias dicas de como evitar os maiores imprevistos e principalmente quanto não utilizar routines e os channels. Eu achei bem interessante e contribuiu demais pro meu código. Podem ficar de zoio no meu Github nas próximas semanas que vocês vão ver eu corrigindo um monte de cagada que eu fiz. Da uma lida, isso aqui é ouro demais!
Até já já pessoal! Me sigam no Twitter pra ler minhas tretas e no Instagram pra ver foto de bebidas e gatos. Eu não gosto muito de fazer follow up de redes sociais mas meus consultores de mídia me disseram que isso é bom.