Este é um guia passo a passo sobre como se tornar um engenheiro DevOps, com links para recursos de aprendizagem relevantes.
Se você quiser saber mais sobre DevOps, assine meu boletim informativo .
Se você achar este repositório útil, considere me apoiar no Patreon:
O objetivo deste roteiro é dar uma ideia da paisagem. O roteiro irá guiá-lo se você estiver confuso sobre o que aprender a seguir, em vez de encorajá-lo a escolher o que está na moda e na moda. Você deve compreender por que uma ferramenta seria mais adequada para alguns casos do que outra e lembrar que exagero e moda nem sempre significam mais adequada para o trabalho.
Se você gosta ou está usando este projeto para aprender ou iniciar sua solução, dê uma estrela. Obrigado!
Baixe a versão em PDF.
Recursos de aprendizagem para engenheiros DevOps (a maioria gratuitos)
1. GIT
2. Aprenda uma linguagem de programação
3. Aprenda Linux e scripts
4. Aprenda redes e segurança
5. Aprenda gerenciamento de servidor
6. Aprenda contêineres
7. Aprenda orquestração de contêineres
8. Aprenda infraestrutura como um código
9. Aprenda CI/CD
10. Aprenda Monitoramento e Observabilidade
11. Aprenda um provedor de nuvem
12. Aprenda práticas de engenharia de software
Recursos adicionais
Ferramentas
Livros
Todos os seus recursos (arquivos) serão mantidos em um repositório GIT. Esses arquivos são códigos de aplicação , mas também infraestrutura como código .
Git é uma ferramenta gratuita usada para gerenciamento de código-fonte. O Git é usado para rastrear alterações no código-fonte, permitindo que vários desenvolvedores trabalhem juntos no desenvolvimento não linear.
As duas plataformas Git mais populares são GitLab e GitHub .
Aqui você precisa aprender os comandos do Git, como git clone, branch, merge e como colaborar em um projeto com pull requests.
Recursos:
Livro Pro Git GRATUITO
Aprenda Git da Atlassian GRATUITAMENTE
Aprenda ramificação do Git GRATUITAMENTE
Aprenda Git e GitHub no CodeAcademy GRATUITAMENTE
Git Command Explorer GRATUITO
Imersão Git GRATUITA
Uma referência visual do Git GRATUITA
Como engenheiro, é recomendável conhecer pelo menos uma linguagem de programação que possa usar para escrever scripts de automação .
Algumas linguagens de programação populares para DevOps-es são Python, Go e JavaScript .
Python é uma linguagem multiparadigma. Por ser uma linguagem interpretada, o código é executado assim que é escrito, e a sintaxe permite escrever código de diferentes maneiras. Python é frequentemente recomendado como a primeira linguagem que novos programadores devem aprender, devido ao seu foco na legibilidade, consistência e facilidade de uso.
Aqui você precisa aprender conceitos básicos de linguagens de programação, como sintaxe, if/else, loops, estruturas de dados, etc.
Recursos:
Automatize as coisas chatas com o livro Python GRATUITAMENTE
Curso intensivo de Python GRATUITO
O tutorial de JavaScript moderno GRATUITO
Curso intensivo de JavaScript para iniciantes GRATUITO
Eloquent JavaScript, 3ª edição, livro GRATUITO de Marjin Haverbeke
Siga o exemplo GRATUITAMENTE
Um sistema operacional serve como ponte entre o usuário de um computador e seu hardware. Sua função é oferecer um ambiente no qual o usuário possa executar programas de maneira conveniente e eficaz.
Como a maioria dos servidores usa sistema operacional Linux , você precisa se sentir confortável com o Linux e sua CLI.
Uma distribuição fácil de iniciar é o Ubuntu .
Além disso, você precisa conhecer scripts para automatizar tarefas de desenvolvimento e operações.
Aqui você pode aprender linguagens específicas de SO, como Bash ou Powershell , ou independentes, como Python ou Go.
Recursos:
Sistema operacional - Visão geral GRATUITA
Tutorial de script de shell GRATUITO
Tutorial Powershell para iniciantes: Aprenda scripts Powershell GRATUITAMENTE
Manual de referência do Bash GRATUITO
Guia definitivo: primeiros passos com Ubuntu GRATUITO
Manual do FreeBSD GRATUITO
Manual de comandos do Linux GRATUITO
Um protocolo de rede é um conjunto estabelecido de regras que determinam como os dados são transmitidos entre diferentes dispositivos na mesma rede. Essencialmente, permite que dispositivos conectados se comuniquem entre si, independentemente de quaisquer diferenças em seus processos internos, estrutura ou design.
Aqui você precisará saber como funciona uma rede, como configurar firewalls , entender como funciona o DNS , modelo OSI , endereços IP, portas, etc.
Recursos:
Modelo OSI explicado GRATUITAMENTE
Redes de computadores: uma abordagem de cima para baixo livro Vídeo Conteúdo vídeo
Curso Pluralsight sobre TCP/IP e fundamentos de rede para profissionais de TI
DevSecOps: segurança mestre de CI/CD | Curso DevOps Pipeline Udemy
Segurança prática em DevOps: garanta segurança, implantação e entrega contínuas com DevSecOps Book
Protegendo DevOps: Segurança na Nuvem
O gerenciamento de servidores inclui todo o monitoramento e manutenção da infraestrutura necessários para que os servidores operem de maneira confiável e com níveis ideais de desempenho. Os principais objetivos de uma estratégia eficaz de gerenciamento de servidores são:
Minimize a lentidão e o tempo de inatividade do servidor enquanto maximiza a confiabilidade.
Crie ambientes de servidor seguros.
Dimensione servidores e operações relacionadas para atender às necessidades da organização ao longo do tempo.
Aqui você precisará saber o que são proxies diretos e reversos , servidores de cache e como operar servidores Web , como Nginx, Apache ou IIS.
Recursos:
O que é um proxy reverso? LIVRE
Servidor de cache GRATUITO
Proxy reverso vs. proxy direto: as diferenças GRATUITAMENTE
O que é balanceamento de carga? LIVRE
O que é um firewall? LIVRE
O Manual NGINX GRATUITO
Aprenda Servidor Apache GRATUITAMENTE
Aprenda IIS GRATUITAMENTE
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 é de longe a tecnologia de contêiner mais popular atualmente. Uma imagem de contêiner do Docker é um pacote de software leve, independente e executável que inclui tudo o que é necessário para executar um aplicativo: código, tempo de execução, ferramentas do sistema, bibliotecas do sistema e configurações. Aqui você precisa saber como executar contêineres, Docker Networking, Volumes, Dockerfiles e executar vários contêineres com Docker-Compose.
Recursos:
O que são contêineres? LIVRE
Aprendendo contêineres de baixo para cima GRATUITAMENTE
Tutorial Docker para iniciantes da TechWorld com Nana GRATUITO
Docker Mastery: com Kubernetes +Swarm de um curso Docker Captain Udemy
O que é malha de serviço? LIVRE
DevOps com Kubernetes GRATUITO
A orquestração de contêineres automatiza a implantação, o gerenciamento, o dimensionamento e a rede de contêineres.
A orquestração de contêineres pode ser usada em qualquer ambiente onde você usa contêineres. Ele pode ajudá-lo a implantar o mesmo aplicativo em ambientes diferentes sem a necessidade de reprojetá-lo. E os microsserviços em contêineres facilitam a orquestração de serviços, incluindo armazenamento, rede e segurança.
Aqui você precisa aprender como o Kubernetes funciona e como administrar o cluster Kubernetes e implantar aplicativos nele.
Recursos:
Curso intensivo de Kubernetes para iniciantes absolutos da TechWorld com Nana GRATUITO
Cartilha: Como surgiu o Kubernetes, o que é e por que você deveria se importar Artigo
Administrador certificado do Kubernetes (CKA) com testes práticos, curso da Udemy
Aprenda Kubernetes - do iniciante ao avançado pelo curso KodeKloud
Entenda quando usar Cluster Services, Ingresses ou API Gateways GRATUITAMENTE
Entenda quais problemas o Service Mesh resolve (use uma abstração smi-spec.io FREE
Aprenda como automatizar TLS e DNS GRATUITAMENTE
Livro de instalação e funcionamento do Kubernetes
Caminho de aprendizagem do Kubernetes - 50 dias do zero ao herói da Microsoft GRATUITO
Às vezes chamado de IaC , refere-se às técnicas e ferramentas usadas para definir a infraestrutura, normalmente em uma linguagem de marcação como YAML ou JSON. A infraestrutura como código permite que os engenheiros automatizem a configuração e a desmontagem do ambiente. Acelera e reduz os riscos de implantação, provisionando ambientes de cópia ouro sob demanda.
Terraform é a ferramenta de provisionamento de infraestrutura mais popular, mas existem outras como Ansible, Chef, Puppet e Vagrant.
Aqui você precisa saber como fazer o provisionamento de infraestrutura e o gerenciamento de configuração .
Recursos:
GUIs, CLI, APIs: aprenda os termos básicos de infraestrutura como código GRATUITAMENTE
Tutoriais oficiais do Terraform GRATUITOS
Um guia abrangente para Terraform GRATUITO
Automatize a documentação do Terraform como um profissional! LIVRE
Escrevendo módulos Terraform reutilizáveis GRATUITAMENTE
O que é Istio? LIVRE
Visão geral do fantoche GRATUITO
Cursos de fantoches GRATUITOS e PAGOS
Primeiros passos com Ansible GRATUITO
Aprendendo o básico do Ansible
Comece a usar o Red Hat Ansible GRATUITO e PAGO
Curso Dominando Ansible Udemy
Aprenda Chef GRATUITAMENTE
Integração Contínua/Implantação Contínua (CI/CD) é um método para entregar aplicativos com frequência aos clientes, introduzindo automação nos estágios de desenvolvimento de aplicativos. CI/CD é uma solução para os problemas que a integração de novos códigos pode causar às equipes de desenvolvimento e operações.
CI/CD introduz automação e monitoramento contínuos em todo o ciclo de vida dos aplicativos, desde as fases de integração e teste até a entrega e implantação. Essas práticas conectadas são frequentemente chamadas de " pipeline de CI/CD " e são apoiadas por equipes de desenvolvimento e operações.
Existem diferentes estágios de um pipeline de CI/CD, como: construir, testar e implantar , mas pode haver muito mais atividades incluídas:
Verificando o código do controle de versão e construindo-o
Ter portões preparados para diferentes tipos de aprovações
Gerenciando variáveis de ambiente
Reiniciando serviços
Executando testes
E mais...
Aqui você precisa aprender como configurar o servidor CI/CD, integrar código e acionar pipelines automaticamente e construir e empacotar ferramentas de gerenciamento.
Algumas ferramentas populares de CI/CD são Jenkins, TeamCity, CircleCI, Bamboo, GitLab e Azure DevOps.
Recursos:
Integração Contínua GRATUITA
Pipeline CI/CD: uma introdução suave GRATUITA
Aprenda GitLab com tutoriais GRATUITOS
Comece com GitLab CI/CD GRATUITO
Jenkins, do zero ao herói: torne-se um curso DevOps Jenkins Master da Udemy
Aprenda ações do GitHub GRATUITAMENTE
Sintaxe de fluxo de trabalho para GitHub Actions GRATUITAMENTE
Aprenda Azure DevOps GRATUITAMENTE
Folhas de dicas do GitLab GRATUITAS
O monitoramento envolve supervisionar todo o processo de desenvolvimento, desde o planejamento, desenvolvimento, integração e teste, implantação e operações. Envolve uma visão completa e em tempo real do status dos aplicativos, serviços e infraestrutura no ambiente de produção.
Isso é especialmente importante quando nosso software está em produção e precisamos rastrear todos os tipos de problemas em nossa infraestrutura e aplicativos.
As duas ferramentas mais populares são Prometheus e Grafana .
Aqui você precisa saber como configurar o monitoramento e visualizar os dados.
Recursos:
O que é observabilidade? Guia abrangente para iniciantes GRATUITO
Como, por que e o que é monitorar microsserviços GRATUITAMENTE
Monitoramento DevOps GRATUITO
Aplicando técnicas de monitoramento básicas e avançadas GRATUITAMENTE
Aprenda Prometheus GRATUITAMENTE
Aprenda Grafana GRATUITAMENTE
Pilha Elástica GRATUITA
Os provedores de nuvem fornecem uma camada de APIs para abstrair a infraestrutura e provisioná-la com base nos limites de segurança e faturamento. A nuvem é executada em servidores em data centers, mas as abstrações dão a impressão de interagir com uma única “plataforma” ou aplicativo grande. A capacidade de provisionar, configurar e proteger rapidamente recursos com provedores de nuvem tem sido fundamental tanto para o tremendo sucesso quanto para a complexidade do DevOps moderno.
Os provedores de nuvem mais populares do mercado são AWS e Azure , bem como Google Cloud .
Aqui você precisa saber gerenciar usuários e administração, redes, servidores virtuais, etc.
Recursos:
Exame AZ-900: Fundamentos do Microsoft Azure GRATUITO
Curso de certificação de fundamentos do Microsoft Azure (AZ-900) GRATUITO
AZ-900 | Curso completo de fundamentos do Microsoft Azure, testes práticos gratuitos, site e guias de estudo GRATUITOS
Praticante de nuvem certificado pela AWS - 2022 Udemy
Caminho de aprendizagem AWS Developer by A Cloud Guru
Como engenheiro de DevOps, você provavelmente trabalhará em equipe com outros desenvolvedores em um mundo Agile, como Scrum . Portanto, é muito importante conhecer as diferentes partes do SDLC , bem como as ferramentas que nele são utilizadas.
Além disso, seria bom saber como está funcionando o teste de automação , pois você precisará configurá-lo no modo CI/CD.
Aqui você precisa saber o que é Scrum , todas as fases do SDLC , como funciona o teste de automação , etc.
Recursos:
O que é Scrum? LIVRE
Maneiras de aprender sobre Scrum GRATUITAMENTE
Fases e modelos do ciclo de vida de desenvolvimento de software (SDLC) GRATUITOS
O guia para iniciantes em Agile no Jira: descrição do curso GRATUITO
Aprenda SEGURO GRATUITAMENTE
Aprenda testes de automação GRATUITAMENTE
GitLab - Guia para iniciantes em DevOps GRATUITO
Modelos SDLC comuns GRATUITOS
Acompanhamento de trabalho : ** Asana, segunda-feira, Jira, Trello, Azure Boards.
Controle de código-fonte : Git, Github, GitLab, BitBucket, Azure DevOps.
CI/CD : Jenkins, Team City, Github Actions, Travis CI, Bamboo, Circle CI, Azure Pipelines, Octopus Deploy, Harness, CloudBees CodeShip.
Análise de código-fonte : SonarQube, Veracode.
Gerenciamento de artefatos : Artifactory, Docker Container Register, npm, Yarn, NuGet.
Gerenciamento de configuração : Terraform, Ansible, Puppet, Chef.
Orquestração de containers : Docker, Kubernetes, Red Hat OpenShift.
Monitoramento : Prometheus, Grafana, Splunk, Dynatrace, Kibana.
O Manual DevOps: Como Criar Agilidade, Confiabilidade e Segurança de Classe Mundial em Organizações de Tecnologia , Gene Kim, Patrick Debois, John Willis, Jez Humble
O livro apresenta desenvolvimento de produtos, garantia de qualidade, operações de TI e segurança da informação. É uma ótima leitura para quem é novo no DevOps ou deseja aprender mais sobre como os vários componentes do DevOps funcionam juntos.
Acelere: A Ciência do Software Lean e DevOps: Construindo e Dimensionando Organizações Tecnológicas de Alto Desempenho , Nicole Forsgren, Jez Humble, Gene Kim
Este livro apresenta as descobertas e a ciência por trás da medição do desempenho da entrega de software. Para promover o DevOps para a alta administração, é uma ferramenta fantástica.
Entrega contínua: lançamentos de software confiáveis por meio da automação de construção, teste e implantação , Jez Humble, David Farley
Ele introduz gerenciamento automatizado de arquitetura e migração de dados. Muitos dos conceitos de pipeline de implantação que desde então se tornaram padrão foram estabelecidos neste livro. Configuração como código, automação de construção e implantação e técnicas de teste eficientes são abordadas com alguns detalhes técnicos. É um livro principalmente técnico.
Topologias de Equipe: Organizando Equipes de Negócios e Tecnologia para Fluxo Rápido , Matthew Skelton, Manuel Pais
O livro fala sobre como organizar equipes de uma forma que permita um fluxo rápido de valor para os clientes. Ele fornece um conjunto de quatro topologias de equipe fundamentais: equipes alinhadas ao fluxo, equipes de capacitação, equipes de subsistemas complicados e equipes de plataforma, que podem ser combinadas e adaptadas para atender a diferentes contextos organizacionais.
DevOps Eficaz: Construindo uma Cultura de Colaboração, Afinidade e Ferramentas em Escala , Jennifer Davis, Ryn Daniels
O livro fornece maneiras eficazes de melhorar a coordenação da equipe. Ele mostra como quebrar silos de informações, monitorar relacionamentos e reparar mal-entendidos que surgem entre e dentro das equipes da sua organização.
O Projeto Phoenix: Um romance sobre TI, DevOps e como ajudar sua empresa a vencer , Gene Kim, Kevin Behr, George Spafford
É um romance clássico sobre eficácia e comunicação. O trabalho de TI é como o trabalho de uma fábrica e um sistema deve ser estabelecido para agilizar o fluxo de trabalho. Um dos melhores livros que existem.
Engenharia de confiabilidade do site , Betsy Beyer, Chris Jones, Jennifer Petoff, Niall Richard Murphy
Este livro explica todo o ciclo de vida de desenvolvimento, implantação e monitoramento do Google e como gerenciar os maiores sistemas de software do mundo (também conhecidos como SRE). Qualquer pessoa que se considere mais do lado “Ops” do lado DevOps ou que queira saber como fortalecer os laços entre várias equipes de Dev e Ops deve ler SRE.
Podemos até apresentar esse roteiro como um hambúrguer :).
Se você acha que o roteiro pode ser melhorado, abra um PR com quaisquer atualizações e envie quaisquer problemas. Além disso, continuarei a melhorar isso, então você pode querer marcar este repositório com estrela para revisitá-lo.
Abra uma solicitação pull com melhorias
Discuta ideias em questões
Espalhe a palavra
Dr. Milan Milanović - CTO da 3MD.
Romano Roth – Chefe de DevOps da Zühlke.