Para aprender sempre foi preciso meter a mão na massa….

Olá a todos!!

Todos nós já sentimos que lemos mil e uma coisas sobre DevOps não é? Contudo quando chega a hora de meter as mãos na massa, a quem parece que não leu nada?
Acreditem que não estão sozinhos! Todos nós já passámos – e passamos diariamente – por isso. Aquela frustração de achar que sabemos a teoria, mas chegada a parte prática…. A verdade é que, para dominar DevOps – ou qualquer outra competência técnica – é imperativo praticar.
Mas não desesperem. Existem boas notícias, existe metodologia para nos guiar. Estou com isto a falar do roadmap.sh/devops/projects.

roadmap.sh

Aprender na teoria é bom, mas…

Ok, não me interpretem mal. Teoria é fundamental! Todos sabemos que é impossível construir uma casa sem bons alicerces. Mas uma coisa é certa: só ler ou ver vídeos no youtube sobre CI/CD, Kubernetes ou Docker não nos vai transformar em especialistas. Todos já passámos a muito pela fase de consumir conteúdo sem fim, saltando de artigo em artigo, assistindo a tutoriais atrás de tutoriais no YouTube, e no fim do processo… sentimo-nos mais perdidos do que no início.

E porquê? Porque IT não é uma área em que basta saber o que é um conceito. É preciso sentir na pele estes conceitos, resolver problemas reais, lidar com erros que a teoria nunca nos prepara para enfrentar. Na vida real, não temos aquele botão  que resolve tudo quando algo não corre bem, como aparece no tutorial. A teoria é só o começo, mas não podemos parar por aí.

Se pensarmos bem, a maioria das profissões ou competências que respeitamos exige prática. Os médicos frequentam estágios e internatos durante anos antes de poderem trabalhar sozinhos. Os músicos dedicam horas e horas a praticar escalas antes de subirem ao palco. E nós, na área do DevOps, não somos diferentes. É errado esperar que consigamos dominar pipelines, automação e infraestruturas com apenas leituras e vídeos.

E é fundamental notarem que o projeto roadmap.sh é algo gigante. Seja para DevOps seja para qualquer outro campo de estudo que por lá ande. Peço desculpa aos autores do site por reduzir o site a componente de DevOps. Está por lá um mundo e merece ser visto e explorado.

A prática é o único caminho

Aqui está a grande questão: para dominar DevOps, tenho de sujar as mãos? Sim. Temos de experimentar, errar e resolver. Quantas vezes já explodimos com algo para o colocar a funcionar, não porque soubéssemos ao certo o que estávamos a fazer, mas porque experimentámos, falhámos e, na tentativa seguinte, acertámos? É exatamente assim que se cresce. Em todos os campos. Em toda a vida.

Na prática, enfrentamos problemas que a teoria não cobre. Por exemplo, ao montar um pipeline de CI/CD tudo pode parecer simples num tutorial. Eles fornecem aquele YAML perfeito e corre tudo  bem. Mas, na vida real, o nosso YAML pode (!) ter erros, o nosso servidor de integração contínua pode ter problemas, e o nosso código… bem, o nosso código pode decidir que não quer colaborar nessa fatídica segunda feira. Aí,  somos forçados a pensar por nós, a investigar, a procurar soluções para os problemas específicos que descobrimos, e é aqui, neste momento que  verdadeiramente aprendemos.

Se olharmos para a nossa vida, e pensarmos nos momentos em que mais evoluímos, vão reparar que são aqueles em que estamos à frente de um problema e tivemos de arranjar forma de o resolver. Sentimos aquela mistura de frustração e motivação, mas no final do caminho – quando o conseguimos resolver – o sentimento de realização é priceless.
Todos já passámos por isto, e essa é a verdadeira essência do crescimento. No DevOps, é igual. A prática constante é o caminho para o domínio, razão pela qual pratico hoje e todos os dias quando posso no meu homelab. Já diz o ditado: Practice makes perfect.

Mas sejamos sinceros: também não é fácil criar ambientes e cenários práticos, especialmente se estivermos a aprender sozinhos. E é aqui que o roadmap.sh/devops/projects pode alavancar a nossa aprendizagem.

Ferramentas e recursos práticos – O roadmap.sh é fundamental

Se ainda não conhecem o roadmap.s*, está na hora de o colocarem nos favoritos do vosso browser favorito. O site é um verdadeiro tesouro para quem está a aprender DevOps/Linguagens e tanta coisa, ou para quem, como nós, já trabalha na área, mas quer levar o seu conhecimento a outro nível.

Em específico, a secção de Projetos DevOps (https://roadmap.sh/devops/projects) é puro ouro. Porquê? Porque oferece uma série de projetos práticos que nos permitem meter a mão na massa, criar ambientes reais e, acima de tudo, resolver problemas do mundo real. Dos projetos presentes, os meus favoritos são:

  • Criar um ambiente em docker: Um dos primeiros projetos recomendados envolve trabalhar com o Docker. Todos ouvimos falar de Docker. Muitos de nós até já experimentámos os comandos básicos. Mas construir um ambiente completo, em que tudo esteja integrado, incluindo bases de dados, APIs e aplicações, é levar o nosso jogo para outro nível. Este tipo de projeto ajuda-nos a perceber como as peças se encaixam nas realidades do mundo real.
  • Implementar um pipeline CI/CD do zero: Outro projeto interessante envolve criar um pipeline de integração e continuous delivery. Sim, CI/CD continua na moda e sabemos o básico. Mas aqui a questão é aprender a integrar o código que alteramos de forma automática, desde os testes até ao deploy, sem termos de fazer tudo manualmente. Um pipeline bem montado consegue nos poupar imensas horas de trabalho e frustrações futuras. E o roadmap.sh ensina-nos a construir o nosso próprio.
  • Monitorização com Prometheus e Grafana: Porque infelizmente não basta por algo a funcionar – também precisamos de saber o estado dos nossos sistemas né? Um projeto sugerido pelo roadmap é montar um sistema de monitorização com Prometheus e Grafana. Isto ajuda-nos a garantir que tudo corre bem e que conseguimos identificar problemas antes que se tornem grandes dores de cabeça.
  • Automatizar infraestruturas com Puppet:  E quem nunca ouviu falar de infraestrutura como código? Utilizar o Puppet para automatizar e gerir a infraestrutura é uma habilidade crucial no DevOps. O roadmap.sh sugere projetos que nos permitem automatizar a criação e gestão de ambientes de forma eficiente.

O que para mim é do mais interessante é que, ao contrário de muitos tutoriais puramente teóricos, estes projetos do roadmap.sh são construídos de forma que nos permitam efetuar um ciclo completo de aprendizagem:* tentar, errar, corrigir e aprender. Não são aqueles tipos de tutorial onde seguimos um how-to passo a passo sem pensar ou explicar o que estamos a fazer. Aqui, temos a liberdade (e a responsabilidade) de experimentar. E isso sim, é algo que nos ajuda a evoluir.

Aprender em comunidade

Outra grande vantagem de seguir um site como o roadmap.sh é que ele foi feito para feito por pessoas como nós, para ser utilizado por nós. Isto significa na prática que ao bom tom do espírito de comunidade e entreajuda existente no opensource , quando estamos a lidar com um projeto ou desafio, não estamos sozinhos. Podemos e devemos partilhar as nossas experiências, dificuldades e vitórias com a comunidade.
Quem nunca recorreu ao StackOverflow ou aos grupos de Slack/Discord quando as coisas começam a ficar atravessadas? Há sempre alguém disposto a ajudar, e isto acelera muito o nosso processo de aprendizagem.

Chegamos ao fim de mais um post semanal, hoje na linha de pensamentos sobre formação e como ir mais longe na nossa carreira.
A minha escolha sobre este assunto é simples: Onde há formação, tem que forçosamente haver prática. Eu próprio quando dou uma perninha como formador, procuro sempre que possível adicionar uma componente de hands-on. E embora a matéria sobre a qual é simples de escolher, escolher o ponto de entrada nela não o é. Aqui ajuda e muito este site que hoje vos trouxe aqui.
Não basta ler, ver vídeos ou fazer tutoriais em modo copy/paste. Temos de meter as mão na massa, errar e acertar. Esta é sem sobra de duvida o principal motivo pelo qual tenho o meu homelab.

Lembrem-se: o que faz de nós verdadeiros profissionais não é o que sabemos em teoria, mas o que conseguimos fazer na prática.

Até ao próximo post, e já sabem onde me encontrar se quiserem debater o tema.
Um abraço
Nuno