Por que ter um homelab?

Nós que trabalhamos com tecnologia sempre precisamos dar um jeito de aprender coisas novas, principalmente porque todos os dias tem alguma coisa nova aparecendo. Junto disso, o nosso trabalho do dia-a-dia não pode incorporar todas as coisas novas que aparecem (não queremos criar um Frankenstein em um projeto produtivo, não é mesmo?) mas ao mesmo tempo precisamos de um espaço seguro (ou o mais próximo disso) onde possamos experimentar metodologias, frameworks e até suítes inteiras de software sem ter que nos preocupar com as horas extras que vão ser necessárias para resolver seja lá qual problema essa coisa nova causou.

É aí que entra um homelab. Seja como um hobby porque acredite, dá pra se divertir e gastar muito tempo com isso (alô /r/homelab e /r/homedatacenter), ou como uma forma de estudo, porque eu sei que tem muita gente que não quer nem olhar para um computador depois de trabalhar um dia inteiro.

A graça de montar seu próprio laboratório é que você tem toda a experiência – junto do aprendizado, claro – de criar o que na empresa a gente dá o nome chique de infraestrutura de T.I. Você tem todo o poder de escolha de decidir:

  • Qual firewall vai ser usado? (OPN Sense? Fortigate? Outros?)
  • Qual roteador vai ser usado? (Open WRT em um raspberry pi? Um cisco 2911 usado?)
  • Qual sistema de virtualização vai ser usado? (Proxmox? ESXi?)
  • Qual vai ser sua pipeline de CI/CD?

Nesse ponto, alguns de vocês que me leem devem estar me questionando sobre duas coisas que realmente são muito importantes:

1 – De onde eu vou tirar dinheiro pra comprar tudo isso de equipamento e servidor? E a conta de luz?

Esse é um excelente ponto e a resposta é simples: Você não precisa começar já com tudo isso. A ideia aqui é que além de ser algo divertido, seja algo que te ajude a se aprimorar tecnicamente e te dê uma visão maior do todo.

Hoje, nós temos todo um aparato focado no uso de contêineres e virtualização que facilita muito a nossa vida na hora de montar um laboratório no nosso computador de uso mesmo, por exemplo:

  • Com multipass podemos subir algumas máquinas ubuntu e fazer elas de servidor;
  • Usando Docker Compose é possível instanciar alguns serviços como Jenkins, Grafana, Bancos de dados e até suas próprias aplicações sem se preocupar com a infraestrutura que suportará isso (claro, a capacidade do seu computador terá um grande impacto sobre quantos serviços você vai conseguir colocar no ar);
  • Temos também o Virtual Box, da Oracle, é uma das soluções mais antigas, amigáveis e simples de utilizar que conheço. Este é um ótimo software de entrada para te acostumar com instalação de máquinas virtuais e gestão de recursos, o que vai te ajudar quando quiser fazer um upgrade para um Hypervisor ESXi ou Proxmox, por exemplo.

E, claro, também sempre é possível usar praticamente qualquer computador mais antigo para rodar uma distribuição linux (ubuntu server, por exemplo), plugar isso em um roteador e ser feliz. Tem até um pessoal que usa celulares android antigos como servidores linux, mas esse eu recomendaria você ter um pouco de experiência com bootloaders e com como isso tudo funciona antes de fazer.

2 – Tá, mas e como eu vou aprender a fazer isso tudo funcionar?

Sinceramente, essa é a parte legal e não tem uma resposta direta porque cada um de nós tem seu próprio background com tecnologia, mas eu sempre digo que não há nada nesse mundo que você não aprenda usando a arte de fuçar até quebrar, o que nos leva outra vez ao início do texto: Se você resolver catapultar seu homelab e quebrar ele inteiro, ninguém além de você vai se preocupar com o resultado disso (talvez quem você acertou, mas também fica aqui o aviso pra vocês não saírem catapultando coisas por aí).

Eu diria que a partir do momento que você decidir que quer sair das máquinas virtuais, o primeiro passo é escolher um hypervisor (minha escolha pessoal é o Proxmox), instalar no seu novo servidor e entender como toda a parte de sistema operacional e rede funciona. Só a partir daí vale a pena começar a pensar em firewalls, roteadores, redes e afins.

Respondidas essas perguntas, eu volto a dizer que ter um homelab (de qualquer tamanho) vai te ajudar muito a progredir na carreira técnica independe de você estar entrando hoje no mercado de trabalho ou de ser um sênior architect ninja developer com mais de trinta anos de carreira.

Conhecer o ambiente de T.I de fim a fim vai te ajudar a trabalhar junto e conseguir discutir em alto nível (claro, sempre respeitando as outras áreas porque ninguém sabe de tudo) com toda e qualquer área de T.I para conseguir atingir qualquer que seja seu objetivo, e claro, eu dou exemplos disso:

  • Entendendo de redes, você consegue explicar melhor para um time de engenharia de redes como sua aplicação se relaciona com toda a rede em volta do seu servidor;
  • Virtualização e conteinerização, ajuda a discutir técnicas de migração de softwares legados para a cloud;
  • Conhecendo como sistemas operacionais funcionam, você consegue descrever melhor um passo-a-passo de deploy para alguma aplicação que um outro time tenha que fazer por você (Onde colocar os arquivos, quais usuários criar, como montar o arquivo de serviços …);
  • Saber como instalar e dar manutenção em coisas que você usa no dia-a-dia, como Kubernetes, Jenkins, Ansible Tower e outras ferramentas de trabalho, te coloca em uma posição muito confortável em reuniões sobre adoção (ou sunset) de tecnologias ou até no design de uma nova estrutura para os projetos;
  • Entender um pouco de cada coisa dessa lista também te ajuda a entender e saber discutir sobre cada etapa de uma pipeline de devOps.

E, claro, você não precisa de um homelab para aprender tudo isso, mas meter a mão nas coisas, quebrar e conseguir consertar, sem sombra de dúvidas, te ensina coisas que tutorial ou aula nenhuma vai te ensinar.

Para concluir, tem um questionamento que pode ter ficado ainda:

Mas cloud não está dominando o mundo?

Sim, muitas aplicações hoje são cloud-native e não há o que discutir sobre isso mas por outro lado, a cisco divulgou no report “The 2022 Global Hybrid Cloud Trends Report” (você vai precisar se cadastrar para ler o report, mas vale a pena) que 82% das empresas que adotaram cloud têm seguido um modelo de hybrid-cloud, o que quer dizer que uma boa parcela dessas empresas ainda tem ao menos uma parte de sua infraestrutura em um regime on-premises e saber como as coisas funcionam fora da cloud, pode ser uma grande vantagem.

Outro ponto interessante do mesmo report é que 53% das organizações tem movimentado aplicações de sua infraestrutura on-premises para a cloud, porém, isso não quer dizer que tudo o que aprendemos configurando um homelab será jogado fora. Mesmo dentro da cloud, conceitos de redes, virtualização, conteinerização e configuração de aplicações podem ser usados.

Por fim, ter um homelab para chamar de seu te ajuda a ter experiência em toda a cadeia de um ambiente corporativo de T.I, e essa experiência pode (e vai) ser extremamente útil nos desafios que você encontrar no seu dia a dia, seja você da área de programação, administração de sistemas, devOps, arquitetura ou até o gerente de toda uma área de T.I, e foi por isso que eu comecei o meu (e eu recomendo que você tenha um homelab físico tanto pela diversão quanto para evitar algum susto com a conta no final do mês caso você esqueça de desligar algum serviço)


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *