Como está sendo meu início em DevOps
ANTES DE MAIS NADA: É claro que há muitas outras informações e detalhes sobre o que foi apresentado aqui, mas preferi não me aprofundar tanto. Além de evitar que o texto ficasse longo e cansativo, meu objetivo é apenas compartilhar os conteúdos que estou estudando, e não criar um megatutorial — deixo essa tarefa para os profissionais que me inspiram. Para saber mais, acessem as fontes citadas ou fiquem à vontade para buscar e recomendar as suas próprias
Dito isso, vamos lá
A linha de comando sempre foi e ainda é um assunto e conhecimento extremamente necessário para trabalhar em qualquer ramo da área de computação.Então como forma de registar/compartilhar meu aprendizado, decidi documentar alguns comandos do Linux baseados na trilha de DevOps, aqui vai um breve resumo do que eu vi e julguei mais importante.
Monitoramento de Processos e Performance
• lsof (LiSt open files): Lista todos os arquivos abertos no momento. No Linux tudo é considerado um arquivo, então o comando detalha o processo, o PID (Process ID), o usuário e o tipo de permissão (como 'r' para leitura e 'w' para escrita). Dá para usar parâmetros como -u para filtrar por usuário ou -i para listar conexões de rede.
• vmstat (virtual memory statistics): Ótimo para identificar gargalos de performance e diagnosticar problemas no sistema. Ele traz dados sobre a memória (livre, cache, buffer), espaço de Swap, estatísticas de entrada/saída (I/O) e mostra exatamente como a CPU está dividindo seu tempo.
Ferramentas de Rede
• ping: Testa a conexão entre a rede local e outra rede.
• ip -a: Mostra uma lista de todas as interfaces de rede e suas configurações IP.
• ssh: Usado para autenticar e conectar a um host remoto (exigindo permissão de acesso e senha).
• scp (Secure Copy Protocol): Transfere ou copia arquivos entre o Linux e a rede de forma segura. Ele usa a conexão SSH para criptografar os dados e as senhas durante a transferência entre hosts locais e remotos.
Manipulação de Texto
Entender como interagir com os fluxos do sistema ajuda muito na hora de montar comandos mais complexos ou escrever scripts.
• STDIN, STDOUT e STDERR: São os fluxos de entrada (stdin), saída padrão de dados (stdout) e a saída usada para retornar erros (stderr).
• Pipes (|): Usados quando queremos rodar mais de um comando ao mesmo tempo, passando a saída de um como entrada para o outro.
• Redirecionamento (>, >>, 2>): Operadores para ler um dado e direcionar sua saída. O > escreve em um arquivo novo, o >> adiciona a saída ao fim de um arquivo existente, e o 2> redireciona especificamente as mensagens de erro.
• cut e sort: O cut remove partes de cada linha (útil para extrair uma coluna de um CSV), e o sort rearranja as linhas em ordem crescente ou decrescente.
• tac e uniq: O tac imprime o conteúdo do arquivo na ordem reversa, enquanto o uniq ignora conteúdos repetidos.
• awk: Uma ferramenta muito versátil para processamento de texto. Serve para somar números em uma coluna, filtrar dados com condições, agrupar dados e muito mais.
Fontes e créditos:
• Base de conteúdos usada: https://roadmap.sh/devops
• Never Ending Security - lsof Cheatsheet: https://neverendingsecurity.wordpress.com/2015/04/13/lsof-commands-cheatsheet/
• Learn Linux TV - Linux Crash Course: https://www.youtube.com/watch?v=n9nZ1ellaV0
• phoenixNAP - How to Use the vmstat Command: https://phoenixnap.com/kb/vmstat-command
• Bit Globin - Top 5 Linux Networking Commands: https://www.youtube.com/watch?v=MT85eMsMN6o
• phoenixNAP - SCP Command in Linux: https://phoenixnap.com/kb/linux-scp-command
• EARTHLY - Linux Text Processing Command: https://earthly.dev/blog/linux-text-processing-commands/
Fonte e créditos:
• freeCodeCamp.org - Vim Tutorial for Beginners: https://www.youtube.com/watch?v=RZ4p-saaQkc
Começando com o Vim
Ao abrir, estamos no Normal mode, e não se pode escrever texto algum. Para poder escrever, ou entrar em Insert mode, pressiono a ou i. Para voltar para o Normal mode, aperto Esc. Em Normal mode, ao pressionar :, posso executar comandos:
• :q fecha o arquivo, mas se tiver algum conteúdo não salvo, dá erro e não sai.
• :q! força o fechamento do arquivo.
• :w salva as mudanças.
• :wq salva e fecha.
Impressões pessoais
O mouse não funciona por padrão (tem como ativar com :set mouse=a), e isso ainda me gera uma estranheza. Só escrevendo esse arquivo de texto não dá para ter a noção de como o Vim realmente afeta a produtividade, mas vou fazer algumas coisas mais avançadas nele e ver como me saio.
Atalhos
É normal se mover pelo arquivo com as setas, mas o Vim permite você digitar 5 + seta para baixo para se mover 5 linhas para baixo. Eu achei isso bem legal e, ao mesmo tempo, desnecessário; quer dizer, eu não imagino alguém realmente usando isso.
Os números também não servem só para se mover. Quando em Normal mode, a letra u desfaz sua última ação (por causa de undo), e 5 + u desfaz as últimas 5 ações, o que eu já acho muito útil e legal. O atalho Ctrl + r serve para refazer, e 5 + Ctrl + r refaz as últimas 5 ações.
Primeiros passos em Docker
Fonte e créditos:
• DevOps with Docker: https://courses.mooc.fi/org/uh-cs/courses/devops-with-docker/chapter-2/definitions-and-basic-concepts
O que é Docker?
Docker é uma ferramenta para entregar softwares em containers. Containers, por sua vez, são pacotes de softwares.
Por que usar containers?
A situação e frase mais clássicas da programação: colocar uma aplicação que funciona na sua máquina para rodar no servidor e não rodar, com a desculpa "mas na minha máquina funciona". Com containers isso não acontece, já que cada container inclui todas as dependências do programa.
Também é possível criar versões isoladas de programas, o que evita erros e ajuda no desenvolvimento. E como é possível criar vários containers da mesma aplicação, isso também é útil na escalabilidade.
Primeiro programa rodando
Com o Docker já instalado, é só abrir o terminal e rodar docker container run hello-world que ele já cria um container de verificação.
Imagens e containers
Uma imagem Docker é um arquivo que nunca muda e não pode ser editado. Nesse arquivo tem todas as instruções e dependências necessárias para o container rodar.
• docker image ls: lista as suas imagens.
• Rodar a mesma imagem novamente irá criar duas instâncias (containers) dela.
• Sempre é preciso remover primeiro o container e depois a imagem; tentar o contrário resulta em um erro.
• Para remover um container, pode-se usar ou o nome ou o ID dele. Para descobrir ambos, você pode usar o comando docker container ls -a | grep hello-world (versão no Linux). Como o ID normalmente é bem grande, usar somente os primeiros caracteres já basta. Em vez de docker container rm aaf6e7c78814, basta digitar docker container rm aaf6.
• O comando docker container prune ou docker image prune remove todos os containers ou imagens que não estão em uso.
Por enquanto é isso, obrigado a todos que leram e por favor fiquem à-vontade para mandar suas criticas e conselhos. Pretendo continuar postando nesse formato por um tempo então qualquer dica é sempre bem vinda
Também a quem quiser, vamos nos conectar no linkedin e no github.
Meus Links:
https://www.linkedin.com/in/alisson-dias-4949103a4/
https://github.com/alissondias99



