Sistemas Distribuídos, Readiness for Production, Padrões Arquiteturais e Firulinhas Gostosas

Fala pessoal, tudo bem? Opa, o pai ta! To atrasado novamente, dessa vez deu umas merdinhas por ai que me atrasaram legal. Mas tudo vai ficar bem já já. Essa semana não tive como ler muita coisa, porque necessariamente me debrucei muito em torno de poucos artigos, que inclusive vou revisitar na semana seguinte, e quem sabe na próxima. Então não fiquem tristes caso eu repita algum aqui semana que vem, blz? Kkkkk

Vamos lá que o trem tá top.

Uma proposta de arquitetura de aplicação em Golang

Durante esses dias encontrei uma proposta muito legal de organização de aplicações em Golang, ela foi bolada pelo Jacob Godwin e se baseia em facilitar testes unitários e isolar domínios de aplicação, segregando funcionalidades / domínio de dados desacordados dos serviços REST. Uma complicação gostosa do cenário de microserviços que evoluiu o “Coloca tudo no controller” pro “Já que é um microserviço resolve tudo na rota ai e boa”. É um modelo bem legal e da pra perder algumas horinhas aprendendo a implementar, ele foi baseado em uma outra proposta chamada go-clean-arch que eu também não conhecia. Vou deixar o artigo aqui pra você ler, e espero que te ajude.

Style Guide em Go, pros codeculturistas de plantão

Uma thread muito interessante no subreddit de Golang no Reddit a respeito de Style Guides em Go. Eu sou meio vaidoso com código e eu gosto muito de boilerplates, linters, style guides e etc. Então me diverti bastante pegando várias referências legais como o Effective Go que já apareceu aqui antes e o Style Guide da Uber.

Arquitetura JAVA no Walmart

Agora um baita case legal diretamente do time de engenharia do Walmart. O Wayne Menezes publicou no Medium oficial do time técnico pra mostrar alguns insights de arquiteturas das aplicações em Java. Não precisa ser expert em Java pra entender, existem vários DAP’s legais de como eles organizaram a arquitetura de referência deles para atender tanto aplicações on EC2 quanto em microserviços. Da pra pegar bastante coisa legal pra arquitetura async, alta disponibilidade e replicação de dados pra disaster recovery As vezes é muito bom olhar o básico e perceber que ninguém faz. Da um liga.

Checklist de produção, colocando o avião pra voar da melhor forma possível

Esse foi um dos principais assuntos no qual eu venho me debruçando nas ultimas semanas, checklist de produção! É extremamente óbvio falar sobre isso boca a boca com amigos, colegas e inclusive ditar de cabeça uma série de coisas que “fácilmente” todas as aplicações teriam que ter pra entrar em produção. Mas é a teoria da mesa de bar, lá tudo é fácil, na hora de botar em prática a gente vê que o óbvio não é simples. E quando o avião já está voando, falar que é necessário trocar a válvula da descarga é outra prioridade no rolê, né?

Reuni uma série de artigos / checklists pra auxiliar a publicação de serviços em produção visando garantir as melhores práticas DevOps, as práticas de confiabilidade e resiliência. Minha ideia é montar o meu baseado nas minhas experiências neste cenário. Segue a thread.

SRE from Scratch, como começar a implementar esse monte de coisa na firma?

A cultura de SRE, ou de engenharia de confiabilidade é um dos desafios mais complexos que nós, como maioria que está lendo esse role aqui, profissionais de cloud e infraestrutura já enfrentamos até o momento. Eu falo disso neste vídeo que eu gravei há uns meses.

Construir essa cultura e adotar as boas práticas a nível corporativo é muito complexo e nem pode se chamar de metodologia, e sim jornada, porque creio eu que ninguém no brasil está ao menos perto de atingir isso em sua totalidade. E sem apoio de diretoria pra comprar isso pro produto final, sinto muito, vai ser apenas job description... Encontrei esse artigo da IBM Garage comentando um pouco sobre como desenhar essa cultura from scratch, dando até algumas dicas de calculo de SLO, Error Budget e etc.

Aproveitando o Jabá, eu já escrevi um artigo sobre métricas de SRE antes. Olha lá e compartilha com os amigos.

Software Architectural Patterns, todos os tipos que você precisa conhecer

Segue mais um case muito interessante sobre adoção e implementação de padrões de software, assunto que eu sou fascinado e vocês já tão ligados. Esse artigo é muito bacana e tem um grande poder introdutório a respeito de diferença de modelos arquiteturais, desde implementações simples como Client / Server, MVC, até microserviços, Event Driven e etc. Esse artigo vai ficar salvo por bastante tempo aqui comigo porque tenho algumas ideias de formatar esse tipo de conteúdo pra SRE’s. Achei extremamente rico para um pontapé inicial pra esse tema. Segue em anexo. Cara, se tem um que eu quero que você leia, é esse.

Image for post

Kubecolor, Kubectl muito fresco e lindo

Uma firulinha gostosa. Um projeto que torna o kubectl colorizado. É só isso mesmo. Fica ai pra vocês e beijo no coração.

Sistemas Ditribuidos, uma série pra investir um tempo lendo

Mais uma série de posts, dessa vez um estudo sobre sistemas distribuídos.

Não sei se isso vai ter continuação um dia, aqui saem mais 4 artigos super passa explicando alguns conceitos que podem ou não ser adotados na construção de ambientes genuinamente distribuídos. Como Clock, Snapshots e Leader Election. É um pouco complicado, precisa dedicar um tempinho pra entender os conceitos e saber onde aplicar e principalmente quando não aplicar. Preciso dar uma digerida melhor antes de dar uma opinião sobre isso, vou deixar aqui pra caso alguém queira conversar comigo a respeito.

Faleu galera, bom feriado e beijo no coração.