leandronsp Profile picture
Feb 22 14 tweets 4 min read
Finalizei minha saga aprendendo (e escrevendo sobre) Tekton CI/CD.

Esta série de artigos é um ciclo completo e automatizado de entrega de uma aplicação simples que tá no Github.

Aqui nesta 🧵 vou dar um overview de cada artigo com o devido link.

0/6

#Kubernetes #Docker
Um pequeno disclaimer

Embora Tekton sirva para rodar o próprio CI no Kubernetes, os conceitos aqui apresentados podem ajudar a *entender melhor* de sistemas CI/CD no geral, inclusive os que trabalhamos no dia-dia, tais como Github, Gitlab, CircleCI etc

+
O primeiro foi uma introdução aos 3 principais componentes do Tekton: Step, Task e Pipeline.

São peças importantes que têm sua lógica fundamentada em diversos outros sistemas de CI/CD.

1/6

dev.to/leandronsp/tek…
A seguir, vemos como utilizar Workspaces para compartilhar dados entre diferentes Tasks.

2/6
dev.to/leandronsp/tek…
Depois, melhoramos nossa pipeline de modo que não seja mais ativada manualmente, mas sim através de um Webhook que é chamado por um evento de PR/Push do Github.

3/6

dev.to/leandronsp/tek…
Pipeline sem entrega não vale de nada, aqui vemos como fazer a entrega contínua da aplicacão em produção, utilizando Tasks já criadas pela própria comunidade.

4/6

dev.to/leandronsp/tek…
No intuito de montar uma pipeline mais robusta com ambiente de Staging e Produção, introduzimos o conceito de Interceptors que permitem mainpular os payloads que chegam no Webhook.

5/6

dev.to/leandronsp/tek…
E pra quem quer entender melhor sobre o que é CI/CD no geral sem estar amarrado a tecnologia, escrevi também esse artigo para explicar de forma genérica estes conceitos.

6/6

dev.to/leandronsp/cic…
FAQ

"Qual a vantagem disso aí?"

Ao meu ver, permite padronizar o ciclo de CI/CD utilizando a mesma infra-estrutura.

Pode no fim ajudar a reduzir custos e aumentar eficiência, pois temos mais controle da ferramenta, o que também ajuda no troubeshooting e debugging.
FAQ

"Ah mas dá pra fazer isso com Gitlab também"

Sim, mas Gitlab te deixa amarrado com a estrutura deles. Utilizando algo feito em cloud-native e que faz parte da CD Foundation, garante uma certa longevidade e padronização da ferramenta.
FAQ

"E se meu cluster cair?"

Se o cluster cair, caiu tudo né, CI/CD fora pode nem ser o maior dos problemas nesse caso em específico.
FAQ

"Mas isso não traz mais custos pro cluster, pois tem que provisionar mais nós etc?"

Depende. O custo de provisionar eventualmente um nó por conta de pods que rodam tasks de CI pode ser muito baixo se comparado com o que as vezes se paga para Github e afins.
FAQ

"Você tá advogando pelo Tekton, mas cada um tem seu contexto"

Sim, to advogando pq é um conceito que acredito ser válido para muitos projetos. Se no teu não serve, faz parte.

Tekton não serve para tudo, como tudo na vida não serve pra tudo.
No fim, uma imagem de resumo de como seria uma arquitetura nestes moldes

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with leandronsp

leandronsp Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @leandronsp

Dec 4, 2022
Entender os fundamentos de Git é necessário para quem não quer se deixar dominar pela ferramenta.

Nesta 🧵 vou tentar explicar as estruturas fundamentais do Git e como estas se relacionam com os comandos que usamos no dia-dia.
Os principais componentes do Git são:

.git/objects
.git/refs
HEAD
Começamos pelo Object database, que é basicamente onde o Git armazena todos os seus objetos.
Read 36 tweets
Oct 17, 2022
Race Condition 🏎️💥🚗

Pra explicar race condition, eu costumo buscar um pouco no modelo computacional as razões para isto existir.

Entendendo race condition em 10 passos, a thread 🧵
Um programa por vez

Num cenário primitivo sem concorrência, os programas ficam em fila à espera para que possam utilizar os recursos físicos.

Um programa de cada vez.

Aqui, não há qualquer tipo de race condition, era assim que se desenvolvia programas nos anos 40. Image
Ociosidade da CPU

O problema deste modelo primitivo é que, quando o programa fica à espera de I/O (impressora, tela, etc), a CPU fica ociosa, causando assim um desperdício de recursos físicos. Image
Read 12 tweets
Sep 5, 2022
SQL 101

Como gerar volume de dados para testes no PostgreSQL com CTE's, com explicação detalhada de cada statement, mais precisamente SELECT, FROM e WITH.

Segue a 🧵👇
SELECT

O statement SELECT permite projetar informações a partir de estruturas de tabelas. Com isso podemos projetar qualquer tipo de informação em um SELECT.
Inclusive dá pra projetar colunas com aliases/labels, desta forma ao invés de ficar "?column?", pode-se definir uma label mais apropriada com "AS".
Read 22 tweets
Aug 26, 2022
Aproveitar o assunto, quero deixar meus 2 centavos empíricos sobre algo que raramente escrevo aqui:

*Testes em Software*

Minha reflexão é uma mistura de sentido empírico com base na minha experiência e algum estudo do que no sentido concreto ou literal.

Testes, a thread 🧵
Primeiramente, como devemos testar um componente de software?

Eu começo dizendo que o teste de um componente é uma forma de refutar seus comportamentos, independente de quais sejam.

+
Teste refutado (fail)

Neste caso, há a presença de um bug. É necessário então implementar código para que o teste deixe de ser refutado e que aquele bug em específico possa ser solucionado.

+
Read 22 tweets
Aug 26, 2022
não to lembrado ou não conheço um guia oficial de linguagem de programação que tenha feito uma explicação tão sólida e clara sobre Stack e Heap como o guia de Rust

doc.rust-lang.org/book/ch04-01-w…
btw dá pra aprender muitos conceitos de computação enquanto aprende-se Rust pelo guia oficial.

não que seja algo inovador, mas com tal clareza e didática, desconheço outro.
linguagens que aprendi por guia oficial:

ruby
python
elixir
clojure
haskell
golang
kotlin
rust
Read 4 tweets
Aug 4, 2022
ultimamente to numa de impulsionar conteúdo bom, então vou deixar na thread links de blogs (dos que acompanho no dev.to) de pessoas que eu sigo por lá.

quem tiver links pra compartilhar, manda aqui também 💪

🧵
simplesmente a melhor.

sou fã do conteúdo que a @anakbns produz e da forma que ela explica as coisas. pra não mencionar que já tive a honra de trabalhar junto :P

dev.to/anakbns
esse aqui, o fera do Linux @____Marcell

dev.to/____marcell
Read 9 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(