Golang, DevOps, Fargate e Cassler!

Hoje ta dahora pae, confere ai

Fala Pessoal, tudo bem? Prontos pra mais uma aventura nessa nave loooouca? 

To atrasado novamente, eu sei! Mas são por bons motivos. To dormindo bem, trabalhando no horário, andando de bike e fazendo exercicios diariamente. Então pra ajeitar minha agenda “nova” ta meio complexo. Mas vamos lá! Deu sim pra ler bastante coisa essa semana e vou deixar aqui o famigerado compiladão lindão do matheuzão.

Go Routines, do Jedi ao Mestre do Conselho 

Mais um checkpoint dos meus estudos de Golang, agora falando novamente de GoRoutines, estava estudando esse artigo aqui e simulando os exemplos um a um pra pegar prática. Gostei bastante dos exemplos e acho que estou triste de não ter encontrado esse cara Antes. Muito obrigado ao Marcus Kihei que escreveu ele pra nós. Vou deixar o link aqui.     

Ainda sobre Go, ainda sobre concorrência 

Mesmo tema, mas agora mais conceitual a respeito de Go Routines e concorrência mais pragmática. É raro eu colocar dois artigos diferentes do mesmo assunto aqui, eu estava tentando decidir qual dos dois me ajudou mais e não consegui, felizmente. Então vou deixar mais uma recomendação de leitura pra vocês a respeito de Go Routines. Essa vale a pena dedicar um tempinho pra ler e reler algumas vezes. Tá aqui, da um liga. 

Um comparativo massa de ECR vs Docker Hub vs GitHub Container Registry

Eu sempre fui um grande fã do ECR, tanto pela praticidade, valor, e o Scan On Push. Na verdade eu acho que sou um pouco cego em comparação a outras soluções as a service de outros vendors, até a data de hoje mesmo nunca testei o registry do GitHub pra você ter uma ideia, e nunca tive coragem de pagar o Docker Hub também, mas esse por falta de oportunidade acho. Nesse artigo da Cloudonaut temos um comparativo entre ECR, GitHub Registry (que se encontra bem beta até o momento) e o Docker Hub da Docker Cloud. Da uma olhada aqui também

Usando ECS Fargate em produção? Toma esse checklist homologado pra garantir que tá tudo da melhor forma

Eu gosto bastante de Fargate, embora ele é bem complexo de se “plataformizar” ainda, é uma excelente solução de custo beneficio e automação. Já cortei bastante grama com o ECS em geral, e não tenho muito reclamar de workloads de produção em cima dele. Na verdade dou preferência caso você não tenha necessidade de Kubernetes e etc. As vezes você não precisa de um caminhão de carreto pra entregar algo, um motoboy motivado resolve. No blog de containers da AWS saiu um artigo de legal de um checklist de uso de boas práticas e otimização de custo em torno do Fargate. Da um liga que legal

Ainda sobre Fargate…

Antes de você rolar pro próximo, eu tenho alguns projetinhos Open Source construídos em cima dele. Vou deixar aqui pra você abrir.  E quem sabe brincar no hacktoberfest. Se mandar PR de Readme eu vou mandar tomar no cu.

Um guia de Português para executivos??? Como assim???

Um tempinho para a alopração. De um tweet do meu amigo @fernandrone, descobri essa maravilha. Um guia de português para executivos, um “As is” de replacement de palavras do day a day, sabe? Pra injetar um cultura de teamwork mais brasileira nas calls com o pessoal. Vou deixar esse Tumblr aqui pra você perder uns minutinhos dando risada. 

O jeito certo de colocar Flaskr em produção 

Ala, o Matheus tá falando de alguma outra coisa que não é Go... kkkkk Foda pessoal, eu gosto muito de mergulhar nos contextos que to estudando e me voltar do assunto de todas as formas. Pode ser meio massante pra quem não ta no mesmo contexto mas é minha forma de melhorar. O objetivo dessa weekly é ser sincerona sobre o que eu to estudando.

Esses dias precisei ajudar um amigo a desenvolver um guideline de boas práticas pra padronizar a entrega de Python em produção dele. Bem de brother mesmo. Nesse artigo encontrei o melhor modo de colocar WSGI na frente do Flaskr e não ficar putinho quando o servidor de desenvolvimento performa mal em prod. O artigo tem exemplos de fazer a mesma coisa utilizando o Gunicorn e o Waitress. Pode ser bem básico pra maioria de vocês, mas pra mim deu pra aprender bastante coisa. Da uma checada

Kubernetes Quality of Service na casca de Noz

Acho que é a segunda ou terceira vez que eu falo de QoS no Kubernetes aqui. Caiu no meu colo um case bem bacana de estudo de como aplicar o qosClass nos seus deployments. 

Nesse post feito pelo blog RTFM que eu recentemente coloquei no meu feed. Nele o Setenvoy (rs) explica quais as diferenças entre as classes Guaranteed, Burstable e Best effort no deploy e como isso anda lado a lado com o requests and limits pra escolha de nodes e hard limits pra execução dos pods. Vou deixar aqui pra referencia

Principais Web Frameworks de Golang 

blog_img

Roubei do Go Noticias, assina lá que ta legal! 

Uma listinha dos principais frameworks pra desenvolvimento Web. Alguns deles já passaram por aqui como Gin, fiquei interessado por outras abordagens que me pareceram bem elegantes como o Revel que já vem com features de validação nativas e o Martini que se aproxima bastante do meu favoritinho do momento (que não está na lista :/) o Fiber

Da uma lida na lista, pode ajudar você que está na duvida de qual framework adotar pro seu projeto. 

SLI’s para métricas de DevOps? É possível, e bem legal! 

1 breaking down devops perf.jpg

Nesse artigo da Google Cloud eles mostram uma abordagem bem interessante de levar indicadores de SLI e SLO para as pipelines (esteiras, salve SRE’s Cansados) de entrega de produto. O Case é bem focado nos produtos e arquiteturas de referencia do GCP, mas as ideias podem ser adaptadas pra qualquer cenário, porque dizem exatamente o que medir no ciclo de entrega, como Merge Time, Failture Rates, Lead Time de Deploy e até mesmo vinculado a SLI’s mais comuns voltados a clientes de produção após o deploy. E também uma forma de categorização que eu achei bem interessante pra ambientes de microserviços, onde você pode até categorizar um "Ranking” das aplicações com base no lead time, freqüência de deploy, nível de falhas e tempo de DR. Da um liga, é bem interessante


CaSSLer, minha tool pra análise de certificados HTTPS e testes de TLS

To codando fi, pensa que só fico lendo artiguinho? Esses dias me surgiu a ideia de automatizar pra CLI o que as ferramentas como SSLlabs, SSL Shopper e afins fazem. Além de serem meio lentas, pra situações mais críticas não é muito legal ficar colocando URL's sensíveis nesses sites, vai quê… Sem falar em ambientes de intranet. Então codei o CassLer, “Se você ler rápido é pra sair um CassiaEller". Uma toolzinha amigável que faz alguns testes de certificados e testa as versões de TLS habilitados nos hosts encontrados.

cassler --url https://tls-v1-2.badssl.com --port 1012 --mode scan

Checking Certificates: tls-v1-2.badssl.com on port 1012 

Server Certificate: 
Common Name: *.badssl.com
Issuer: CN=DigiCert SHA2 Secure Server CA,O=DigiCert Inc,C=US
Subject: CN=*.badssl.com,O=Lucas Garron Torres,L=Walnut Creek,ST=California,C=US
Signature Algorithm: SHA256-RSA
Created: 2020-03-23 00:00:00 +0000 UTC
Expires: 2022-05-17 12:00:00 +0000 UTC
Expiration time: 582 days
Certificate Version: 3

DNS Names: 
- *.badssl.com
- badssl.com

Issuing Certificate URL's: 
- http://cacerts.digicert.com/DigiCertSHA2SecureServerCA.crt

Server IP's: 
* 104.154.89.105 

Certificate Authority: 

DigiCert SHA2 Secure Server CA
Issuer: CN=DigiCert Global Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US
Subject: CN=DigiCert SHA2 Secure Server CA,O=DigiCert Inc,C=US
Signature Algorithm: SHA256-RSA
Created: 2013-03-08 12:00:00 +0000 UTC
Expires: 2023-03-08 12:00:00 +0000 UTC
Expiration time: 877 days
Certificate Version: 3



Testing TLS Versions: tls-v1-2.badssl.com on port 1012 

TLS Versions Enabled on 104.154.89.105: 
- tls1.0: false 
- tls1.1: false 
- tls1.2: true 
- tls1.3: false


Da aquela estrelinha, aquele fork e aquela PR pro pai

Até semana que vem meus amigos!