Você é um desenvolvedor que procura mudar sua carreira para um modelo de DevOps?
Ou você não está, e, tendo passado algum tempo trabalhando com a mesma tecnologia, agora está simplesmente procurando uma mudança de carreira e não tem ideia de onde começar?
Se sim, continue lendo, pois veremos como tornar-se um engenheiro de DevOps de nível médio em seis meses!
Por fim, se você faz essa coisa de DevOps há anos, ainda pode achar isso útil como uma validação de onde estamos e para onde isso está indo.
O que é isso agora?
Primeiro, o que é DevOps?
Você pode pesquisar as definições no google e percorrer toda essa extravagância de palavras-chave, mas sabe que a maioria são saladas de palavras embaraçosamente longas, recheadas em sentenças gigantescas. (Viu o que eu fiz aqui?)
Então, vou salvar os cliques e destilar:
O DevOps é uma maneira de fornecer software com responsabilidade e responsabilidade compartilhada.
É isso aí.
OK, mas o que isso significa?
Isso significa que, tradicionalmente os desenvolvedores (pessoas que criam software) tinham incentivos muito diferentes das operações (pessoas que executam software).
Por exemplo, como desenvolvedor quero criar o maior número possível de novos recursos o mais rápido que conseguir. Afinal, esse é o meu trabalho e é isso que os clientes exigem!
No entanto, se eu sou uma pessoa de operações desejo o mínimo de novos recursos possível, pois cada novo recurso é uma alteração e a mudança é arriscada.
Como resultado desse desalinhamento de incentivos, o DevOps nasceu.
O DevOps tenta fundir desenvolvimento e operações (DevOps, entendeu?) em um grupo. A ideia é que um grupo agora compartilhe a dor e a responsabilidade (e presumivelmente, as recompensas) de criar, implantar e gerar receita com o software voltado para o cliente.
Agora, os puristas lhe dirão que não existe um “Engenheiro de DevOps”, “O DevOps é uma cultura, não um papel”.
Sim,Sim. Eles estão tecnicamente corretos (o pior tipo de correção!), Mas como muitas vezes acontece, o termo se transformou além do seu significado original.
Agora, ser um engenheiro de DevOps é algo como “Engenheiro de Sistemas 2.0”.

Em outras palavras, alguém que entende o Ciclo de Vida de Desenvolvimento de Software e traz ferramentas e processos de engenharia de software para resolver desafios de operações clássicas.
O DevOps significa, em última análise, a construção de pipelines digitais que levam o código do laptop de um desenvolvedor até a geração de receita com uma grandiosidade impressionante.
É disso que se trata!
Observe também que, como uma opção de carreira, todo o espaço do DevOps é altamente compensado, com quase todas as empresas “realizando o DevOps” ou afirmando isso.
Independentemente de onde as empresas estejam, as oportunidades gerais de trabalho do DevOps são abundantes, oferecendo empregos divertidos e significativos nos próximos anos.
NOTA: Desconfie de empresas que contratam uma “equipe de DevOps” ou um “departamento de DevOps”. Estritamente falando, essas coisas não deveriam existir porque, em última análise, o DevOps tem tudo a ver com a cultura e uma maneira de fornecer software, não uma nova equipe ou departamento para ser provido de pessoal.
Aviso Legal
Agora, deixe o copo de Kool-Aid de lado por um momento e considere o seguinte.
Você já ouviu o velho ditado “não há engenheiros juniores de DevOps?”
Caso contrário, saiba que é um assunto popular no Reddit e StackOverflow. Mas o que isso significa?
Simplificando, significa que são necessários muitos anos de experiência, combinados com um sólido entendimento de ferramentas, para eventualmente se tornar um profissional sênior de DevOps realmente eficaz. E, infelizmente, não há atalho para a experiência.
Portanto, essa não é uma tentativa de enganar o sistema. Não acho que seja possível fingir ser um engenheiro sênior de DevOps com alguns meses de experiência. O sólido entendimento das ferramentas e metodologias em rápida mudança leva anos para dominar e não há como contornar isso.
Contudo, existe um menu aproximado (na moda, se você preferir) de ferramentas e conceitos que a maioria das empresas usa e é disso que trata o artigo!
Mais uma vez, as ferramentas são diferentes das habilidades, portanto, enquanto você as aprende, não as negligencie (entrevistas, redes, comunicação por escrito, solução de problemas etc.)
Mais importante ainda, não perca o que estamos buscando, construindo um pipeline digital totalmente automatizado que pega idéias e as transforma em partes de código geradoras de receita.
Essa é a única e mais importante retirada de todo este artigo!
Chega de conversa, por onde começar?
Abaixo está o seu roteiro.
Domine o seguinte e você pode se chamar com segurança e honestidade de engenheiro de DevOps! Ou um engenheiro de nuvem se você detestar o título “DevOps”.
O mapa abaixo representa a minha visão (e provavelmente a maioria das pessoas que trabalha neste espaço) do que um engenheiro de DevOps competente deve saber. Dito isto, é apenas uma opinião e certamente haverá vozes dissidentes. Está bem! Não estamos aqui atrás da perfeição, estamos atrás de uma base sólida sobre a qual construir.
NOTA: Você deve percorrer essa amplitude, camada por camada. Comece (e continue!) Primeiro com a fundação, aprenda inicialmente as tecnologias (Linux | Python | AWS) e, se o tempo permitir ou as demandas do mercado de trabalho, siga com (Golang | Google Cloud).
Mais uma vez, vá atrás da primeira camada em cada pilar. Então, se der tempo, vá atrás da segunda camada para adicionar profundidade aos seus conhecimentos.
Honestamente, a camada fundamental acima é algo que você nunca pode realmente parar de aprender. O Linux é complexo e leva anos para dominar. O Python requer prática contínua para se manter atualizado. A AWS evolui tão rapidamente que as coisas que você conhece hoje são apenas uma fração do portfólio geral daqui a um ano.
Porém, depois de descobrir razoavelmente a camada Foundation, passe para o conjunto de habilidades do mundo real e observe que existem 6 colunas no total, uma por mês.
NOTA: O que está faltando notavelmente no pipeline acima é Teste. Isso é intencional, pois testes de unidade de escrita, integração e aceitação não são fáceis e tradicionalmente caem sobre os ombros dos desenvolvedores. A omissão da fase “Teste” é de propósito, pois o objetivo deste roteiro é a rápida entrada de novas habilidades e ferramentas. A falta de experiência em testes é considerada pelo autor como uma barreira insignificante para um emprego adequado no DevOps.
Além disso, lembre-se, não estamos aprendendo neste artigo um monte de tagarelice não relacionada aqui. Estamos buscando uma sólida compreensão das ferramentas que, juntas, contam uma história única e coerente.
Essa história é de automação de processo de ponta a ponta, um pipeline digital que move os bits de maneira semelhante à linha de montagem.
Além disso, você não deseja aprender várias ferramentas e parar, pois elas mudam rapidamente, os conceitos muito menos. Portanto, o que você deseja fazer é usar as ferramentas como proxies de aprendizado para os conceitos de nível superior.
OK, vamos nos aprofundar um pouco mais!
Conhecimento Fundamental
Sob a linha superior rotulada “Foundation” você verá as habilidades que todo engenheiro de DevOps deve dominar.
Aqui você verá três pilares dominantes no setor: sistema operacional, linguagem de programação e nuvem pública. Essas coisas não serão algo que você possa aprender muito rapidamente, tirá-las da lista e seguir em frente. Essas serão habilidades que você deve adquirir e manter afiado continuamente, para se manter relevante e atualizado com o que está acontecendo.
Vamos examiná-los um por um
Linux: onde tudo roda. Agora, você pode ser um profissional incrível em DevOps e permanecer inteiramente dentro do ecossistema da Microsoft? Claro que você pode! Não há lei que determine o Linux para tudo.
Contudo! Saiba que, embora todas as coisas do DevOps-y possam certamente ser feitas com o Windows, é muito mais doloroso e as oportunidades de trabalho são muito menores. Por enquanto, você pode assumir com segurança que não é possível se tornar um verdadeiro profissional de DevOps sem conhecer o Linux, portanto ele é o que você deve aprender e continuar aprendendo.
Honestamente, a melhor maneira de fazer isso é instalar o Linux (Fedora ou Ubuntu) em casa e usá-lo o máximo possível. Você quebrará as coisas, ficará preso e terá que consertar tudo e, no processo, aprenderá o Linux!
Para referência, na América do Norte, as variantes da Red Hat são mais prevalentes. Portanto, faz sentido começar com o Fedora ou CentOS. Se você está se perguntando se deve ou não obter a edição KDE ou Gnome, obtenha o KDE. É isso que Linus Torvalds usa. 🙂
Python: a linguagem de back-end dominante atualmente. Fácil de começar, amplamente utilizado. Bônus: o Python é muito prevalente no espaço de IA / Machine Learning. Portanto, se você quiser fazer a transição para outro campo ativo, estará pronto!
Amazon Web Services: Mais uma vez, é impossível se tornar um profissional experiente em DevOps sem um sólido entendimento de como uma nuvem pública funciona. E se você procura o conhecimento de uma nuvem, o Amazon Web Services é o ator dominante nesse espaço, oferecendo o conjunto mais rico de ferramentas para trabalhar.
É possível começar pelo Google Cloud ou Azure? Absolutamente! Mas estamos atrás do maior retorno do investimento aqui, então a AWS é a jogada mais segura de se fazer, desde 2020.
Você tem um nível gratuito para jogar ao se inscrever em uma conta na AWS, por isso é um bom lugar para começar.
Agora, quando você faz login no console da AWS, recebe um menu de opções simples e fácil de entender.“Descobrindo mais um recurso da AWS que eu nunca conheci” de Tom Pumford na Unsplash
Isso foi sarcasmo. A boa notícia é que você não precisa conhecer todas as tecnologias da Amazon.
Comece com o seguinte: VPC, EC2, IAM, S3, CloudWatch, ELB (sob o guarda-chuva do EC2) e grupos de segurança. Essas coisas são suficientes para você começar e todas as empresas modernas habilitadas para nuvem usarão essas ferramentas intensamente.
Eu recomendo que você reserve 20 a 30 minutos diariamente para praticar Python, Linux e AWS.
BI vs Big Data: Uma comparação abrangente da diferença entre eles