Code Monkey home page Code Monkey logo

road-to-being-a-devops-sre's Introduction

Trilha básica para atuar como DevOps 2021

Objetivos deste documento

A ideia desta página é descrever de forma básica ferramentas e conceitos para ser possível atuar como DevOps / SRE hoje no mercado de TI.

Todo o conteúdo que coloco aqui foram ferramentas, cursos, livros que estudei até hoje e o que vejo ser usado nas maiorias das Empresas. Existem muito mais ferramentas no mercado, mas as que menciono aqui já trará uma boa estrutura para boas oportunidades.

Para ter uma ideia de qual nível de conhecimento é necessário para participar de uma oportunidade de DevOps / SRE tenha em mente algo do tipo:

Nível Júnior

Para uma oportunidade de Júnior ou mesmo Pleno nível I, entendo que tentar possuir o máximo de conhecimento indicado como ideal na tabela de classificação do Bloco 1 informado abaixo lhe dará ampla vantagem ao nível de conhecimento técnico que é geralmente solicitado nas descrições das vagas e também será a sua principal base para todos os outros níveis.

Etapa Domínio
Bloco 1 - Etapa 1 - Min: Domínio total de 50% dos itens mencionados

- Ideal: Domínio total de 80% dos itens mencionados
Bloco 1 - Etapa 2 - Min: Domínio total de 30% dos itens mencionados

- Ideal: Domínio total de 60% dos itens mencionados
Bloco 1 - Etapa 3 - Nginx Min: Domínio total de 50% de conhecimento na ferramenta

- Nginx Ideal: Domínio total de 80% de conhecimento na ferramenta

---

- Apache Min: Domínio total de 30% de conhecimento na ferramenta

- Apache Ideal: Domínio total de 50% de conhecimento na ferramenta
Bloco 1 - Etapa 4 - AWS Min: Curso AWS Practitioner

- AWS Ideal: Certificação AWS Practitioner

---

- Azure Min: Curso AZ-900

- Azure Ideal: Certificação AZ-900

Bloco 1 - Etapa 5 - Min: Domínio Mínimo de 50% da ferramenta

- Ideal: Domínio Mínimo de 80% da ferramenta
Bloco 1 - Etapa 6 - Min: Domínio total de 50% dos itens mencionados

- Ideal: Domínio total de 80% dos itens mencionados

Caminhos de desenvolvimento

Bloco 1 - Etapa 1: Operating Systems & Linux Basics

  • Comandos básicos de Shell
  • Dominar ao máximo a ferramenta vi / vim
  • Ferramentas para manipular textos (awk, sed, grep, egrep, fgrep, sort, uniq, cat, cut, echo, fmt, tr, nl, wc, Less, more, tac)
  • Ferramentas para monitoramento de processos (ps, top, htop, atop, lsof)
  • Ferramentas para thsoot de redes (nmap, tcpdump, ping, mtr, traceroute, dig, airmon, airodump, iptables, netstat)
  • Ferramentas para analise de performance de sistemas (nmon, iostat, sar, vmstat)
  • Outras ferramentas (find, tar, gz, zip, unzip, bz2, strace, dtrace, systemtap, uname, df)
  • Criar e Entender Linux File System
  • SSH Key Management

Recomendação para estudos: Overview do conteúdo Linux Essentials e Curso Linux Essetials e de Shell Script

Bloco 1 - Etapa 2: Networking & Security

  • Configurações básicas de firewalls
  • Conhecimento sobre Camada OSI
  • Entender sobre IP addresses, CIDRs subnets, portas, protocolos e DNS
  • Load Balancers
  • Proxy Server
  • Proxy Reversos
  • HTTP/HTTPS
  • SSL e TLS
  • Port Forwarding

Bloco 1 - Etapa 3: WebServers

  • Nginx
  • Apache
  • IIS

Dica: Focar em configuração de SSL TLS para cada WebServer acima, pois hoje tudo tem que ter certificado nem que seja Let's Encrypt. Tente dominar instalações, configurações e alguns tshoots da ferramenta e de certificados.

Bloco 1 - Etapa 4: Public Cloud Provider

  • AWS
  • Azure
  • GCP

Obs.: Escolha como principal AWS ou Azure e aprenda ao máximo, e tenha conhecimento suficiente na segunda opção como backup técnico.

Bloco 1 - Etapa 5: Ferramenta para controle de versão

  • GIT

Obs.: O seu nível de conhecimento nesta ferramenta deverá ser de no mínimo 50%, pois ela será a sua ferramenta principal para versionar tudo o que for código para as próximas etapas.

Materiais de apoio:

Dica: Após ter conhecimentos sólidos em Git, tente estudar sobre Git Flow.

Bloco 1 - Etapa 6: Linguagens para estruturar Dados e informações

  • Yaml
  • Json
  • XML
  • Markdown

Obs.: Focar no aprendizado de Yaml e Json para trabalhar com a maior quantidade de arquivos de configurações, XML para alguns cenários que ainda utilizam e entender bastante sobre Markdown para criações e sustentações de documentações.

Etapa 7 - IaC e Gerência de Configurações

  • Terraform
  • Ansible
  • Baseado na Etapa 4, estude CloudFormation ou Azure Resource Manager

Etapa 8 - Containers

Obs.: Focar no aprendizado de Containers será muito importante para a próxima Etapa.

Dica: Dedique maior esforço no aprendizado de Docker e ao se sentir confortavel dedique um tempo ao Containerd. Com o passar do tempo vá conhecendo as outras opções de mercado.

Etapa 9 - Orquestradores / Gerenciadores de containers

  • Kubernetes
  • Docker Swarm
  • AWS ECS (Caso tenha escolhido AWS na Etapa 4)
  • Rancher

Obs.: Dedique mais estudos a Kubernetes pois é a ferramenta mais usada atualmente, mas tenha conhecimento em Swarm pois há casos de ambientes que ainda o utilizam como solução.

Dica: Utilizar material de CKAD no primeiro momento irá ajudar muito a entender e atuar com Kubernetes.

Etapa 10 - Ferramentas de CICD

  • Jenkins
  • Gitlab CI
  • Github Actions
  • Bitbucket

Obs.: Estas ferramentas são as mais presentes nas empresas atualmente

Etapa 11 - Monitoramento de Infraestrutura

  • Zabbix
  • Prometheus
  • AWS CloudWatch
  • Grafana

Etapa 12 - Monitoramento de Aplicações (APM)

  • New Relic
  • Jaeger

Etapa 13 - Log Management

  • ELK
  • Graylog
  • Splunk

Etapa 14 - Scripting Language

  • Python
  • Golang
  • Shell Script
  • Powershell

Etapa 15 - Aprender sobre Metodologias Ágeis e Cultura DevOps

Etapa 16 - Leituras complementares

Obs.: Essa lista eu busquei em minha conta, se for adquirir algum deles, verifique se há alguma versão mais atualizada.

Essenciais:

Bom para complementar estudos e ter ideias:

Caso sua opção tenha sido AWS na Etapa 4 essa leitura é fundamental:

Etapa 17 - Entender conceitos sobre Software Development

  • Conhecer os Git Workflows usados por desenvolvedores
  • Tipo de ambientes usados atualmente em uso pelos desenvolvedores (Prod, Staging, Developer, etc)
  • Ferramentas de testes mais utilizadas atualmente

road-to-being-a-devops-sre's People

Contributors

rloolr avatar

Stargazers

 avatar  avatar

Watchers

 avatar

road-to-being-a-devops-sre's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.