1. Passo 1: Linguagem de Programação
1.1. Conceitos
1.1.1. Ciclo de Desenvolvimento de Software (SDLC)
1.1.2. Colaboração entre Desenvolvedores
1.1.2.1. Agile
1.1.2.2. Scrum
1.1.3. Git Workflow
1.1.3.1. Trunk-based development
1.1.3.2. Git Flow
1.1.4. Processos
1.1.4.1. Teste
1.1.4.2. Build
1.1.4.3. Packaging
1.2. Linguagens de Programação
1.2.1. Python
1.2.2. Javascript
1.2.3. Go
2. Passo 2: Linux
2.1. Conceitos
2.1.1. Inicialização de Sistemas Operacionais
2.1.2. Gestão de Entrada/Saída (I/O)
2.1.3. Gestão de Processos, Threads e Concorrência
2.1.4. Memória e Armazenamento
2.1.5. Sistemas de Arquivos
2.1.6. Gestão de Serviços
2.1.7. Virtualização de Servidores
2.2. Sistemas Operacionais
2.2.1. Linux
2.2.1.1. CentOS
2.2.1.2. RHEL
2.2.2. Unix
2.2.2.1. FreeBSD
2.2.3. Windows
2.2.3.1. Windows Server 2016
2.3. Gerenciar Servidores pelo Terminal
2.3.1. Gestão de Processos
2.3.1.1. ps
2.3.1.2. top
2.3.1.3. htop
2.3.1.4. lsof
2.3.2. Editores de Texto
2.3.2.1. vim
2.3.2.2. nano
2.3.2.3. emacs
2.3.3. Gestão de Desempenho
2.3.3.1. sar
2.3.3.2. vmstat
2.3.3.3. iostat
2.3.3.4. nmon
2.3.4. Manipulação de Texto
2.3.4.1. echo
2.3.4.2. cat
2.3.4.3. grep
2.3.4.4. sort
2.3.4.5. cut
2.3.4.6. wc
2.3.4.7. uniq
2.3.4.8. awk
2.3.4.9. sed
2.3.4.10. tr
2.3.5. Gestão de Rede
2.3.5.1. ping
2.3.5.2. netstat
2.3.5.3. tcpdump
2.3.5.4. traceroute
2.3.5.5. mtr
2.3.5.6. nmap
2.3.5.7. scp
2.3.5.8. dig
2.3.5.9. iptables
2.3.6. Outras
2.3.6.1. df
2.3.6.2. du
2.3.6.3. history
2.3.6.4. uname
2.3.6.5. strace
3. Passo 3: Redes e Segurança
3.1. Fundamentos de Rede
3.1.1. Tipos e Topologias de Redes: LAN e WAN
3.1.2. Transmissão de Dados e Pacotes: Pacotes, Cabeçalhos, Dados, etc
3.2. Camadas de Protocolos
3.2.1. Modelo OSI
3.2.1.1. Aplicação
3.2.1.2. Apresentação
3.2.1.3. Sessão
3.2.1.4. Transporte
3.2.1.5. Rede
3.2.1.6. Enlace
3.2.1.7. Física
3.2.2. Modelo TCP/IP
3.2.2.1. Aplicação
3.2.2.2. Transporte
3.2.2.3. Internet
3.2.2.4. Rede
3.3. Protocolos
3.3.1. DHCP
3.3.2. TCP e UDP
3.3.3. SSH
3.3.4. Encaminhamento de portas
3.3.4.1. NAT
3.3.4.2. DNAT
3.3.4.3. SNAT
3.3.5. FTP
3.3.6. SMTP
3.3.7. SSL / TLS
3.3.8. HTTP / HTTPS
3.4. Interconexão de Rede
3.4.1. Conceitos
3.4.1.1. Endereço IP
3.4.1.2. Portas
3.4.1.3. Subredes
3.4.1.4. Roteamento
3.4.1.5. CIDR
3.4.2. Dispositivos
3.4.2.1. Switches
3.4.2.2. Gateways
3.4.2.3. Roteadores
3.5. Serviços de Rede
3.5.1. Servidores Web
3.5.1.1. Nginx
3.5.1.2. Apache
3.5.2. DNS
3.5.3. Caching e Content Delivery Network (CDN)
3.5.4. FTP, SFTP e SCP
3.5.5. E-mails
3.5.5.1. SMTP
3.5.5.2. SPF
3.5.5.3. DKIM
3.5.5.4. DMARC
3.5.6. Load Balancer (Balanceador de Carga)
3.5.7. Proxy
3.5.7.1. Reverse
3.5.7.2. Forward
3.6. Segurança
3.6.1. Firewall
3.6.2. VPN
3.6.2.1. Client-to-site
3.6.2.2. Site-to-site
4. Passo 4: Bancos de Dados
4.1. Conceitos e Fundamentos de Bancos de Dados
4.1.1. SQL
4.1.1.1. O que é?
4.1.1.2. Para o que é usado?
4.1.1.3. Como utilizar?
4.1.2. Tipos de Bancos de Dados
4.1.2.1. SQL
4.1.2.2. NoSQL
4.1.2.3. Graph
4.2. Bancos de Dados
4.2.1. SQL
4.2.1.1. MySQL/MariaDB
4.2.1.2. PostgreSQL
5. Passo 5: Cloud Computing
5.1. AWS
5.2. GCP
6. Passo 6: Containers
6.1. Docker
6.2. Kubernetes
7. Passo 7: Observabilidade
7.1. Pilares
7.1.1. Métricas
7.1.2. Logs de Eventos
7.1.3. Rastreabilidade
7.2. Áreas
7.2.1. Infraestrutura
7.2.2. Aplicações
7.3. Ferramentas
7.3.1. Prometheus
7.3.2. Grafana
7.3.3. Datadog
7.3.4. Elastic Stack (ELK)
8. Passo 8: Controle de Versão
8.1. Git
8.2. GitOps
8.3. GitHub
9. Passo 9: CI/CD - Continuous Integration e Continuous Delivery
9.1. Conceitos
9.1.1. Continuous Integration
9.1.2. Continuous Delivery
9.1.3. Continuous Deployment
9.2. Ferramentas
9.2.1. GitLab CI/CD
9.2.2. GitHub Actions
9.2.3. CircleCI
9.2.4. Jenkins
10. Passo 10: Infraestrutura Como Código (ou IaC)
10.1. Conceitos
10.1.1. Gestão de Configuração
10.1.2. Provisionamento de Infraestrutura
10.2. Ferramentas
10.2.1. Terraform
10.2.2. CloudFormation
10.2.3. CDK
10.2.4. Ansible
10.2.5. Pulumi