DevOps Roadmap – 10 Passos Para Se Tornar DevOps Engineer em 2024

O DevOps Roadmap é um guia definitivo que mostra quais são os 10 passos necessários para você se tornar um(a) Engenheiro(a) DevOps de sucesso.

DevOps Roadmap – 10 Passos Para Se Tornar DevOps Engineer em 2024

O DevOps Roadmap é um guia completo e definitivo estruturado nos 10 passos para se tornar um DevOps altamente requisitado no mercado de trabalho, independentemente do seu ponto de partida.

Ele foi criado com base na minha experiência de mais de 15 anos trabalhando em diferentes cargos de Operações (Arquiteto, Engenheiro, Líder de Equipe) para empresas do Brasil e do exterior e funciona como um guia que eu gostaria de ter acesso caso recomeçasse minha carreira do absoluto zero e escolhesse essa especialização.

Investi (e continuo investindo) inúmeras horas para produzir e manter este Roadmap, com o intuito de te ajudar a caminhar na direção correta, para que você não perca tempo e dinheiro durante sua jornada de estudos.

Comece agora mesmo a navegar por este guia e descubra como se tornar um profissional DevOps de sucesso 😉


♾️ O que é DevOps?

Antes de mergulharmos de cabeça nas habilidades técnicas que um DevOps precisa ter, vamos primeiro falar de alguns conceitos básicos.

Por este motivo, começo este guia respondendo esta dúvida frequente:

O que é DevOps?

DevOps é uma metodologia que combina o desenvolvimento de software e as operações de TI para fornecer software de alta qualidade com mais eficiência.

Por meio de melhorias na comunicação, colaboração e integração entre as equipes de desenvolvimento e operações, o DevOps atua no ciclo de vida de desenvolvimento de software contínuo.

O objetivo final do DevOps é reunir desenvolvedores e equipes de operações para otimizar a entrega de software.


👩‍💻 O que faz quem trabalha com DevOps?

Agora que você entende o que é DevOps, talvez esteja se perguntando:

  1. Existe um cargo específico para esse tipo de trabalho?

  2. O que faz quem trabalha com DevOps?

A resposta para a pergunta #1 é: sim. E é chamado de Engenheiro(a) DevOps (ou Analista, dependendo da empresa).

A resposta para a pergunta #2 é: esses profissionais possuem as habilidades e conhecimentos necessários para atuar em todo o processo de criação e manutenção de software, desde o desenvolvimento até as operações, que abrange toda a pilha de tecnologia.

A função de um(a) Engenheiro(a) DevOps é gerenciar as práticas de DevOps e garantir o fluxo simplificado do processo de implantação.

Embora as principais responsabilidades de um Engenheiro DevOps possam variar de organização para organização, algumas funções e responsabilidades comuns incluem:

  • Implementação de operações de CI/CD.

  • Automatização da Infraestrutura.

  • Colaboração com diferentes equipes (equipes especialmente de Desenvolvimento de Software e Operações de TI).

  • Gerenciamento da disponibilidade e desempenho de aplicativos de software.


⛰️ Como se tornar DevOps?

Se você chegou até aqui, é sinal de que tem interesse nesse tal "DevOps" e agora está se perguntando:

O que é preciso para ser um DevOps?

A boa notícia é que você encontrou a melhor resposta para essa pergunta: o DevOps Roadmap da EdukTI 😀.

Chega de se sentir perdido(a) ou confuso(a)!

Este guia apresenta um roteiro infalível para se tornar um(a) DevOps.


🗺️ O que é o DevOps Roadmap?

O DevOps Roadmap é um guia passo-a-passo com links para materiais de estudo, para que você saiba quais são os conhecimentos e habilidades requisitados para se tornar um(a) DevOps requisitado pelo mercado de trabalho, independente do seu ponto de partida.

O DevOps Roadmap te guiará, desde os fundamentos até as ferramentas e práticas mais avançadas, te capacitando para:

  • Dominar as habilidades essenciais para se destacar na área.

  • Construir um portfólio sólido que comprove suas capacidades.

  • Conquistar a vaga dos sonhos em empresas que valorizam a agilidade e a inovação.

Este guia é para você se:

  • Deseja entrar na área de DevOps e construir uma carreira promissora.

  • Busca aprimorar suas habilidades e se tornar um profissional ainda mais completo.

  • Quer atualizar seus conhecimentos e acompanhar as últimas tendências do mercado.

Com o DevOps Roadmap, você terá acesso a:

  • Conteúdo didático e atualizado, cuidadosamente elaborado por quem atua na área (eu! 👋).

  • Dicas práticas para aplicar o que aprendeu em seu dia a dia.

  • Recursos extras para auxiliar seu estudo, como links para livros e cursos gratuitos e pagos.

Estes são os 10 passos do DevOps Roadmap:

Assine a newsletter para ter acesso gratuito a este mapa mental.

  1. Linguagem de Programação

  2. Linux

  3. Redes e Segurança

  4. Bancos de Dados

  5. Cloud Computing

  6. Containers

  7. Observabilidade

  8. Controle de Versão

  9. CI/CD (Integração Contínua e Entrega Contínua)

  10. Infraestrutura Como Código (IaC)

Falaremos de cada passo com mais detalhes à medida que avançarmos pelo DevOps Roadmap.


🐍 Passo 1 – Linguagem de Programação

A expressão se refere a um conjunto de regras e instruções que um programador constrói para gerar programas e softwares que serão processados por um computador, dispositivo móvel ou outro equipamento.

NaPratica.org

Embora um DevOps Engineer normalmente não desenvolva aplicações, é esperado que você:

  • Trabalhe diretamente com o time de desenvolvimento: para implantar as aplicações que esta equipe cria.

  • Tenha conhecimento de práticas e ferramentas de desenvolvimento: como controle de versão, participar de revisão de código, escrever testes unitários e familiaridade com princípios ágeis.

  • Automatize tudo que for possível: automação é uma parte crítica do ciclo de vida DevOps, que aumenta a velocidade e frequência de implantação do time de tecnologia.

Para isto, é importante escolher uma linguagem de programação que seja fácil de aprender e que você também possa utilizá-la para escrever scripts e automatizar tarefas rotineiras.

Portanto, neste primeiro passo, sua primeira missão é: aprender uma linguagem de programação.

De preferência, aprenda Python como linguagem de programação e eu te explico o motivo da minha recomendação:

  1. Facilidade: Python é uma linguagem interpretada, poderosa e muito fácil de usar. Sua sintaxe tem alto nível de legibilidade e permite a escrita de código de diferentes maneiras: funcional, procedural e orientada a objetos.

  2. Popularidade: Python é atualmente a linguagem de programação multi-paradigma mais popular de todo o mundo e é frequentemente recomendada como a primeira linguagem para iniciantes em programação em cursos e universidades em todo o mundo.

  3. Multi-uso: Python também é uma linguagem de programação muito utilizada em projetos de dados (Big Data, Artificial Intelligence, Machine Learning, etc.) e outros fins.

Outras linguagens de programação que também são muito utilizadas e que valem a pena possuir um conhecimento básico são Javascript e Go.

📚️ Materiais:

NomeTipoIdioma
Começando a programar em Python para leigosLivro🇧🇷 PT-BR
Automate the Boring Stuff with PythonLivro🇺🇸 EN
Curso Python – Curso em VídeoCurso🇧🇷 PT-BR
Python Crash CourseCurso🇺🇸 EN

🐧 Passo 2 – Linux

Ao contrário do que muita gente pensa, Linux não é apenas um sistema operacional (como Windows ou macOS), mas sim um termo popular para toda uma família de sistemas operacionais baseados em um mesmo núcleo de código.

Tecnoblog

Os Sistemas Operacionais (SO) são programas que gerenciam e alocam os recursos de hardware de um computador entre os programas que estão em execução: CPU, memória, disco rígido, dispositivos de entrada e saída (I/O) e de rede.

Os SOs são utilizados nas máquinas locais que as pessoas utilizam para realizar suas atividades e também são utilizados nos servidores que hospedam as aplicações implantadas.

Podemos considerar os SOs como tecnologias cruciais na caixa de ferramentas de um(a) DevOps.

Por este motivo, eu recomendo que você aprenda:

  1. conceitos de sistemas operacionais

  2. sistemas operacionais na prática

  3. como gerenciar servidores pelo Terminal.

Conceitos de Sistemas Operacionais

Para ser bem-sucedido no cargo de DevOps, é importante entender que conhecimento técnico e conceitual são igualmente importantes.

Com base nessa afirmação, a minha recomendação é que você invista tempo na teoria antes de ir para a parte prática.

Estude os seguintes tópicos para aprender os fundamentos de um SO:

  1. Inicialização de Sistemas Operacionais

  2. Gestão de Entrada/Saída (I/O)

  3. Gestão de Processos, Threads e Concorrência

  4. Memória e Armazenamento

  5. Sistemas de Arquivos

  6. Gestão de Serviços

  7. Virtualização de Servidores

Sistemas Operacionais, na Prática!

Essa é a hora de meter a mão na massa: aprenda Linux 🐧 .

Este é o SO que domina a infraestrutura de servidores de toda a Internet.

Você pode começar utilizando o Ubuntu, seja na sua estação de trabalho ou no servidor, caso você não possua experiência prévia com Linux.

Após obter experiência básica e se sentir seguro, explore outras opções de sistemas operacionais para adquirir cada vez mais domínio sobre esse tema.

Algumas opções de SOs que recomendo que você experimente:

  1. Linux: CentOS ou Red Hat Enterprise Linux (RHEL)

  2. Unix: FreeBSD

Como Gerenciar Servidores Pelo Terminal

Esqueça o ClickOps pelo bem da sua produtividade.

O terminal é a "casa” de quem implanta e administra sistemas, portanto, aprenda a viver nele.

É no terminal que executamos as operações de administração de sistemas via Linha de Comando (CLI ou Command Line Interface) que simplificam tarefas que exigiriam vários cliques em uma interface gráfica (GUI ou Graphical User Interface).

Além disso, alguns comandos são apenas executáveis através do terminal.

Um(a) DevOps precisa dominar o terminal para que você não dependa da interface gráfica na hora de implantar e configurar servidores e suas aplicações.

Esse domínio também lhe ajudará a desenvolver uma habilidade essencial: desenvolver scripts para automação de tarefas rotineiras em servidores Linux e, futuramente, pipelines de CI/CD.

Portanto, eu recomendo que você aprenda as seguintes ferramentas:

  1. Gestão de Processos: ps, top, htop, lsof, etc.

  2. Editores de Texto: vim, nano, emacs, etc.

  3. Gestão de Desempenho: sar, vmstat, iostat, nmon, etc.

  4. Ferramentas de Manipulação de Texto: echo, cat, grep, sort, cut, wc, uniq, awk, sed, tr, etc.

  5. Ferramentas de Rede: ping, netstat, netcat, tcpdump, traceroute, mtr, nmap, scp, dig, iptables, etc.

  6. Outras ferramentas: df, du, history, uname, strace, etc

📚️ Materiais:


🕸️ 🛡️ Passo 3 – Redes e Segurança

Redes de computadores referem-se a dispositivos de computação interconectados que podem trocar dados e compartilhar recursos entre si. Esses dispositivos em rede usam um sistema de regras, chamados de protocolos de comunicação, para transmitir informações por meio de tecnologias físicas ou sem fio.

Amazon Web Services

Atualmente, qualquer aplicação web depende de conexão de rede para receber e transferir dados dos usuários e de outras aplicações.

Por causa desse cenário, é muito importante que você compreenda basicamente:

  1. Fundamentos de rede

  2. Camadas de protocolos

  3. Protocolos de rede

  4. Interconexão de rede

  5. Segurança.

Você precisa saber dos riscos de cada método de comunicação para saber como proteger suas aplicações e dados de pessoas mal intencionadas.

Estude:

Fundamentos de Rede

  1. Tipos e Topologias de Redes: LAN e WAN

  2. Transmissão de Dados e Pacotes: Pacotes, Cabeçalhos, Dados, etc

Camadas de Protocolos

Estude sobre o Modelo OSI e suas 7 camadas:

  1. Física

  2. Enlace

  3. Rede

  4. Transporte

  5. Sessão

  6. Apresentação

  7. Aplicação

E também estude o Modelo TCP/IP e suas 4 camadas:

  1. Aplicação

  2. Transporte

  3. Internet

  4. Rede

Protocolos

Conheça sobre os principais protocolos utilizados atualmente.

  1. DHCP

  2. TCP e UDP

  3. SSH

  4. NAT, SNAT, DNAT

  5. FTP

  6. SMTP

  7. SSL / TLS

  8. HTTP / HTTPS

Interconexão de Rede

  1. Conceitos: Endereço IP, Portas, Sub-redes e Roteamento, CIDR

  2. Dispositivos: Switches, Gateways e Roteadores.

Serviços de Rede

  1. Servidores Web: Nginx e Apache.

  2. DNS

  3. Caching e Content Delivery Network (CDN)

  4. FTP, SFTP e SCP

  5. E-mails: SMTP, SPF, DKIM, DMARC

  6. Load Balancer (Balanceador de Carga)

  7. Proxy (Reverso e Encaminhamento)

Segurança

Aprenda conceitos básicos de segurança, como funciona e como configurar um(a):

  1. Firewall

  2. VPN (Client-to-site e Site-to-site)

📚️ Materiais:


🎲 Passo 4 – Bancos de Dados

Bancos de dados (português brasileiro) ou bases de dados (português europeu) são conjuntos de arquivos relacionados entre si, podendo conter registros sobre pessoas, lugares ou informações em geral. São coleções organizadas de dados que se relacionam ou não, com o objetivo de armazenar informações.

Wikipedia

Como um(a) DevOps, uma das suas principais tarefas será "fazer o deploy da aplicação", ou seja, implantar (instalar e configurar) a aplicação criada pelo time de desenvolvimento em algum ambiente, seja o de testes/staging ou de produção, dentro do ciclo de vida de desenvolvimento de software adotado pela empresa.

Normalmente, as aplicações back-end precisam se comunicar com bancos de dados relacionais (SQL) para armazenar os dados capturados dos usuários e não é toda empresa que dispõe de um Administrador de Banco de Dados (ou DBA, Database Administrator) para executar todas atividades relacionadas à implementação e operação de um banco de dados.

Por este motivo, eu acredito que é muito importante um DevOps Engineer possuir:

  1. conhecimento conceitual sobre bancos de dados

  2. experiência com pelo menos uma das principais ferramentas de banco de dados relacionais utilizadas atualmente em novos projetos de software.

Neste passo, minhas recomendações são:

Conceitos e Fundamentos de Bancos de Dados

  1. SQL: o que é, para o que é usado, como utilizar

  2. Tipos de Banco de Dados: SQL, NoSQL, Graph, etc

Principais Bancos de Dados SQL

  1. MySQL ou MariaDB

  2. PostgreSQL

📚️ Materiais:


⛅️ Passo 5 – Cloud Computing

"A computação em nuvem é a entrega de recursos de TI sob demanda por meio da Internet com definição de preço de pagamento conforme o uso.

Em vez de comprar, ter e manter datacenters e servidores físicos, você pode acessar serviços de tecnologia, como capacidade computacional, armazenamento e bancos de dados, conforme a necessidade, usando um provedor de nuvem como a Amazon Web Services (AWS)."

Amazon Web Services

A Computação em Nuvem mudou drasticamente a forma que as empresas constroem, implantam e operam as suas aplicações e atualmente o mercado de computação em nuvem é um dos que mais crescem dentro da indústria de TI.

A maioria das aplicações modernas que utilizamos são hospedadas em alguma plataforma de nuvem devido aos seus inúmeros benefícios:

  1. agilidade

  2. elasticidade

  3. economia de custos

  4. abrangência global em questão de minutos

Neste passo, a minha recomendação é que você escolha uma plataforma de computação em nuvem e aprenda os fundamentos e seus principais serviços.

Apesar de particularmente gostar muito do Google Cloud (ainda não tive experiência com a Microsoft Azure), eu acredito que a melhor plataforma para quem está iniciando no mundo da computação em nuvem é a Amazon Web Services (AWS).

A AWS é a plataforma líder em computação em nuvem e a mais robusta de todas as principais.

Portanto, conheça os principais serviços da AWS e, quando possível, invista em suas certificações.

👉 Veja aqui o Guia Passo-a-Passo Para Certificação AWS Solutions Architect Associate (SAA-C02) que eu publiquei após ter obtido essa certificação

Quando possível, explore outras plataformas de computação em nuvem como o Google Cloud e Microsoft Azure para ampliar cada vez mais suas habilidades.

📚️ Materiais:

NomeTipoIdioma
Amazon AWS: Descomplicando a computação na nuvemeBook (Kindle)🇧🇷 PT-BR
Amazon Web Services For DummieseBook (Kindle)🇺🇸 EN
AWS na práticaCurso

(link com desconto) | 🇧🇷 PT-BR | | AWS Security Foundation | Curso
(link com desconto) | 🇧🇷 PT-BR | | A crash course on AWS | Curso | 🇺🇸 EN | | AWS Skill Builder | Curso | 🇧🇷 PT-BR / 🇺🇸 EN | | AWS Certified Cloud Practitioner Certification Course (CLF-C02) - Pass the Exam! | Curso | EN 🇺🇸 |


🐳 Passo 6 – Containers

"Um contêiner é uma unidade padrão de software que empacota o código e todas as suas dependências para que o aplicativo seja executado de forma rápida e confiável de um ambiente de computação para outro."

Docker

Em resumo, utilizando containers, você consegue empacotar, implantar e escalar suas aplicações de maneira muito mais fácil e rápida em qualquer ambiente com a certeza (ou quase) de que sua aplicação irá executar da mesma maneira.

Graças a estes benefícios que a execução de aplicações utilizando containers tornou-se muito comum entre startups e empresas.

Por este motivo, no pilar Containers, a minha recomendação é que você aprenda:

  1. Docker

  2. Kubernetes

🐳 Docker

Lançado em 2013 através do projeto open source Docker Engine, Docker é uma ferramenta que facilita a construção (build), teste e implantação de aplicações.

Essa ferramenta é líder de mercado na categoria Container Runtime (softwares para execução de contêineres, como Docker, LXC, etc) e hoje está presente em todos os lugares: seja em servidores Linux ou Windows, em Data Center On-Premise ou Cloud Computing, etc.

Como um(a) DevOps, é praticamente certo que você irá trabalhar com Docker em algum momento.

Por isso, minha recomendação é que você saiba tudo sobre essa ferramenta.

☸️ Kubernetes

Também conhecido como k8s, o Kubernetes é um sistema de código aberto para automatizar a implantação, dimensionamento e gerenciamento de aplicativos em contêiner.

Atualmente essa é a ferramenta mais popular do ecossistema DevOps e mundialmente há uma demanda gigantesca e crescente por profissionais que saibam implantar e operar aplicações no Kubernetes.

E não é pra menos: o Kubernetes se baseia em 15 anos de experiência na execução de cargas de trabalho de produção no Google, combinado com as melhores ideias e práticas da comunidade.

Por este motivo, essa ferramenta caiu nas graças da comunidade de engenharia e muito provavelmente você precisará entender o seu funcionamento para cumprir bem o seu papel dentro de um time DevOps.

Materiais:


👁️ Passo 7 – Observabilidade

“Quão bem você pode entender o que está acontecendo em um sistema, frequentemente instrumentando-o para coletar métricas, logs ou rastreamentos.”

Amazon Web Services

Traduzindo, a Observabilidade é um conceito que aproveita práticas e ferramentas que já são comuns no dia-a-dia de pessoas administradoras de sistemas e tem o intuito de prover entendimento sobre a saúde de uma ou mais aplicações com base em três pilares:

  1. Métricas

  2. Logs de Eventos

  3. Rastreabilidade

Essa prática de observar sinais de problemas em sua aplicação e na infraestrutura subjacente tem o objetivo de corrigir falhas antes que elas ocorram e se transformem no pesadelo de qualquer time de operação: o temido downtime (indisponibilidade do sistema).

A prática de Monitoramento pode ser dividida em 2 áreas:

  1. Infraestrutura

  2. Aplicações

E as minhas recomendações para este passo seguirão esta divisão.

Monitoramento de Infraestrutura

Monitorar a Infraestrutura significa coletar métricas sobre a infraestrutura subjacente às aplicações para evitar interrupções causadas por problemas como falta de espaço de disco, alto consumo de CPU ou memória, etc.

Na maioria das vezes, o impacto causado por falhas relacionadas à Infraestrutura é igual ou maior do que falhas causadas pelo código da aplicação.

Por isso, quanto mais rápido o seu time conseguir responder a um indício de falha, menos impacto estes problemas causarão a operação e consequentemente aos usuários.

Essas são as ferramentas para monitoramento de Infraestrutura que eu recomendo que você avalie e estude pelo menos uma.

  1. Métricas: Prometheus, Datadog, New Relic, Dynatrace.

  2. Logs: Elastic Stack, Graylog, Splunk

Monitoramento de Aplicações

Problemas internos com as aplicações podem ocorrer de diferentes maneiras.

Por exemplo, um valor abaixo do normal na taxa de conversão de um formulário pode ser um sinal de que o próprio formulário está funcionando mal quando os usuários tentam preencher.

O ideal é que as ferramentas de monitoramento utilizadas possam enviar alertas dos erros gerados na aplicação quando um evento como este acima ocorrer, assim como possa exibir a taxa de conversão, para que você tenha inúmeras formas de detectar problemas na operação da sua aplicação.

Abaixo listo algumas ferramentas de monitoramento de aplicações para que você possa aprender:

  1. Métricas: Prometheus, Grafana

  2. Logs: ELK (Elastic Stack)

  3. Monitoramento Geral: Datadog, New Relic

Materiais:


🐙 Passo 8 – Controle de Versão

"O controle de versão, também conhecido como controle de fonte, é a prática de rastrear e gerenciar as alterações em um código de software. Os sistemas de controle de versão são ferramentas de software que ajudam as equipes de software a gerenciar as alterações ao código-fonte ao longo do tempo."

Atlassian

Após ler isso, talvez você esteja se perguntando:

"Já que controle de versão é uma ferramenta para Desenvolvedor de Software, qual o motivo de eu, como um(a) DevOps, ter que aprender?"

A resposta para essa pergunta está nesta mesma página da Atlassian:

"Como os ambientes de desenvolvimento aceleraram, os sistemas de controle de versão ajudam as equipes de software a trabalhar de forma mais rápida e inteligente. Eles são ainda mais úteis para as equipes de DevOps, pois as auxiliam a reduzir o tempo de desenvolvimento e aumentar as implementações bem-sucedidas.\"**

Muitas empresas atualmente adotam as metodologias de DevOps como parte de suas estratégias de transformação digital e com isso as ferramentas utilizadas entre os times de Desenvolvimento e Operações passaram a ter um maior grau de intersecção.

Esse é o caso do Git, o sistema de controle de versão mais utilizado no mundo atualmente e que virou ferramenta crucial para um time DevOps armazenar, versionar e compartilhar código para:

  • Construção de imagens Docker (Dockerfile);

  • Módulos Terraform e Ansible;

  • Pipelines de CI/CD.

Por este motivo, minha recomendação é que você aprenda:

  1. Git

  2. GitHub

  3. GitOps

Materiais:


📦️ Passo 9 – CI/CD

“Continuous Integration (CI ou Integração Contínua) e Continuous Delivery (CD ou Entrega Contínua) é uma prática diretamente ligada a um dos fundamentos da metodologia DevOps: a integração entre times de Desenvolvimento e Operações.”

Red Hat

Como um(a) DevOps, saber automatizar tarefas rotineiras é uma das mais importantes atividades que você irá desempenhar e, por isso, considero que aprender a construir pipelines de CI/CD é uma habilidade essencial.

Para isto, existem diversas ferramentas de CI/CD que são capazes de gerenciar todo o ciclo de vida DevOps, desde a ideia e planejamento do software até o desenvolvimento, teste, construção e implantação automatizada.

A automação desses processos economiza tempo dos membros da equipe e consequentemente permite que eles foquem em atividades que trarão maior retorno ao time e à empresa.

Com base nisto, neste passo a minha recomendação é que você aprenda:

  1. Continuous Integration: o que é, para que serve e como implantar

  2. Continuous Delivery: o que é, para que serve e como implantar

  3. Qual é a diferença entre Continuous Delivery e Continuous Deployment

  4. Principais soluções:

    1. GitHub Actions

    2. GitLab CI/CD

    3. CircleCI

    4. Bitbucket Pipelines

Outras ferramentas que eu sugiro que você fique de olho: Harness, Tekton e principalmente ArgoCD que são ferramentas de Continuous Delivery modernas e capazes de implantar aplicações em clusters Kubernetes e que estão ganhando bastante popularidade ultimamente.

Materiais:


📝 Passo 10 – Infraestrutura Como Código (IaC)

Infraestrutura como código (IaC) refere-se ao gerenciamento e provisionamento da infraestrutura por meio de códigos, em vez de processos manuais. A sigla vem do termo em inglês, "Infrastructure as Code".

Red Hat

Enfim, chegamos no último – mas não menos importante – passo para se tornar um(a) DevOps: Infraestrutura Como Código (IaC, Infrastructure-as-Code).

Este pilar é o último pois recomendo que você primeiro aprenda tópicos fundamentais (por exemplo: Sistemas Operacionais, Redes e Segurança, Bancos de Dados) antes de querer usar ferramentas de IaC em seus projetos.

Com IaC, é possível criar e gerenciar recursos de infraestrutura em plataformas de nuvem, datacenters virtuais e até mesmo SaaS, usando geralmente código declarativo para criar um ambiente com os requisitos necessários para execução da sua aplicação.

Automatizar tudo com código é, talvez, a mais importante tarefa de um(a) DevOps.

Por isto, a minha última dica nesse roadmap é para você surfar esta onda aprendendo a principal ferramenta de IaC do mercado: Terraform.

Você não vai se arrepender de aprender Terraform: a maioria das empresas no Brasil e exterior que fazem uso de IaC usam esta ferramenta.

Inclusive, no ano passado eu publiquei o Guia da Certificação Terraform Associate contando os detalhes do que fiz para conseguir aprovação no exame. Confira caso queira saber de mais detalhes!

Porém, se preferir aprender outras ferramentas de IaC, recomendo avaliar:

  1. CloudFormation

  2. Pulumi

  3. Ansible (particularmente, prefiro usá-lo apenas para Gestão de Configuração)

📚️ Materiais

(link com desconto) | 🇧🇷 PT-BR | | Getting started with Ansible | Curso | 🇺🇸 EN |


🧰 Caixa de ferramentas DevOps

Assim como qualquer tipo de engenheiro(a) precisa de boas ferramentas no seu trabalho, é crucial que o(a) DevOps selecione boas ferramentas para o sucesso do seu projeto.

Ao escolher ferramentas DevOps, é importante considerar os seguintes fatores:

  • Necessidades específicas da equipe e da empresa

  • Funcionalidades e recursos oferecidos pelas ferramentas

  • Facilidade de uso e integração com outras ferramentas

  • Custo e suporte técnico

🛠️ Ferramentas

Separadas de acordo com cada etapa do ciclo de vida DevOps:


📚️ Biblioteca DevOps

Lista dos livros bestsellers sobre temas relacionados à DevOps que você precisa ter na sua estante (mesmo que seja virtual):

LivroAutor(es)Descrição
Manual de DevOps: como obter agilidade, confiabilidade e segurança em organizações tecnológicasGene Kim, Jez Humble, John Willis, Patrick DeboisObra fundamental que abordar o tema de forma profunda com inúmeros cases. Os autores são as maiores referências em DevOps no mundo.
O projeto fênix – um romance sobre TI, DevOps e sobre ajudar o seu negócio a vencerGene Kim, Kevin Behr, George SpaffordNão é um livro técnico. Como proposto, é realmente um romance, mas muito próximo de situações vividas por quem trabalha na área diariamente.
Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology OrganizationsNicole Forsgren, Jez Humble, Gene KimEste livro apresenta as descobertas e a ciência por trás da medição do desempenho da entrega de software.
DevOps Para Leigos: os primeiros passos para o sucessoEmily FreemanO livro ajuda engenheiros de software e diretores tecnológicos a transformar suas organizações e adotar uma estrutura DevOps.
Google Site Reliability EngineeringVáriosColetânea de livros sobre desenvolvimento, implantação e monitoramento de sistemas de software do Google. É uma leitura obrigatória para qualquer pessoa interessada no lado operacional do DevOps ou que busca fortalecer a colaboração entre as equipes de Dev e Ops.

🏁 Conclusão

O caminho para se tornar um(a) DevOps bem-sucedido(a) exigirá de você não só um vasto conhecimento conceitual de fundamentos, metodologias e práticas DevOps, mas também muito conhecimento técnico das plataformas e ferramentas utilizadas no ciclo de vida DevOps.

Por este motivo, eu acredito que o recurso mais importante que você deve possuir no início desta jornada é um guia que servirá como uma espécie de mapa, feito por alguém que já percorreu este caminho e que possui conhecimento e experiência suficiente para te direcionar nesta estrada.

Afirmo com toda certeza que se eu fosse recomeçar a minha carreira nesta área, com certeza, seguiria o passo-a-passo que inclui nessa página, pois sei da importância de ter um roteiro de estudos bem detalhado e orientado às demandas do mercado.

🫵 Agora é sua vez

Eu investi muitas e muitas horas para produzir e manter esse conteúdo gratuito no intuito de te ajudar.

Por isso, caso esse material tenha te ajudado de alguma forma ou você tenha lembrado de alguém que tenha interesse, peço que:

  1. Compartilhe o DevOps Roadmap: quero que o máximo de pessoas tenham acesso a este material. Envie para os seus amigos de profissão, pessoas que possuem interesse em atuar no mercado de Tecnologia, mas que não sabem dessa opção de cargo ou que não sabem por onde começar.

  2. Comente aqui embaixo: quero saber de você o seguinte…

    1. O que você achou do DevOps Roadmap?

    2. Você adicionaria ou removeria alguma dessas tecnologias?

Espero de coração que este guia faça a diferença na sua carreira ❤️

Até breve! 👋🏾

– Sérgio Francisco