
Não há melhor momento na vida para aprender do que hoje.
Estamos em 2019, e o tema DevOps é mais relevante do que nunca. Dizem que os dias dos administradores de sistemas ficaram para trás, assim como a era dos mainframes. Mas será que isso é verdade?
Como muitas vezes acontece na TI, a situação mudou. A metodologia DevOps surgiu, mas ela não pode existir sem uma pessoa com habilidades de administrador de sistemas, ou seja, sem Ops.
Antes de o conceito de DevOps assumir sua forma moderna, eu me considerava parte da categoria Ops. E eu sei muito bem o que um administrador de sistemas sente ao perceber o quanto ainda não sabe e quão pouco tempo tem para aprender.

Mas é realmente tão assustador? Eu diria que não devemos encarar a falta de conhecimento como um grande problema. É mais um desafio profissional.
Produtos de escala web são baseados em Linux ou outro software de código aberto, e há cada vez menos profissionais no mercado capazes de mantê-los. A demanda já superou a quantidade de profissionais nessa área. Um administrador de sistemas não pode mais continuar a trabalhar sem elevar suas qualificações. Ele deve ter habilidades de automação para gerenciar muitos servidores/nós e entender bem os princípios de funcionamento para resolver os problemas que surgem.
Antes de se tornar membro da equipe DevOps, você terá que percorrer um longo e interessante caminho, aprendendo novas tecnologias e diversos ferramentas necessárias para manter o sistema de acordo com os padrões do DevOps.
Então, como um administrador de sistemas pode fazer a transição de sua abordagem habitual para o novo conceito de DevOps? Tudo como sempre: primeiro, é necessário mudar a mentalidade. Não é fácil abrir mão da abordagem que você seguiu nos últimos dez ou vinte anos e começar a fazer tudo de maneira diferente, mas isso é necessário.
Em primeiro lugar, é importante entender que DevOps não é um cargo específico na empresa, mas um conjunto de práticas definidas. Essas práticas incluem a distribuição de sistemas isolados, a redução de danos causados por bugs e erros, a atualização frequente e pontual de software, a interação eficaz entre desenvolvedores (Dev) e administradores (Ops), bem como o teste contínuo não apenas do código, mas de toda a estrutura dentro do processo. .
Além de mudar a mentalidade, é preciso aprender a manter a infraestrutura e garantir seu funcionamento estável, sua confiabilidade e disponibilidade para a integração e entrega contínuas de aplicações, serviços e software.
O que pode faltar a você como especialista em Ops são habilidades de programação. Atualmente, a escrita de scripts, que os administradores de sistemas utilizam para instalação automatizada de patches em servidores, gerenciamento de arquivos e contas, para solucionar problemas e elaborar documentação, já é considerada obsoleta. Em casos relativamente simples, os scripts ainda são aplicados, mas o conceito de DevOps implica em resolver tarefas em larga escala, seja a implementação, teste, trabalho com builds ou implantações.
Assim, se você deseja aprender sobre automação, é necessário pelo menos ter um entendimento básico de programação, mesmo que você não seja um desenvolvedor, pois neste estágio de seu desenvolvimento. em DevOps requer essa habilidade.
O que fazer? Para se manter um profissional requisitado, é preciso adquirir habilidades relevantes — dominar pelo menos uma linguagem de programação, como Python. Para alguém que trabalha com administração de forma profissional, isso pode parecer desafiador, pois ele tende a pensar que apenas desenvolvedores programam. Não é necessário se tornar um especialista, mas o conhecimento de pelo menos uma linguagem de programação (pode ser Python, Bash ou até mesmo ), certamente, será uma vantagem.
Para aprender a programar, é preciso dedicar algum tempo. Seja atencioso e paciente - isso ajudará você a manter a compreensão da situação ao se comunicar com os desenvolvedores da equipe DevOps e os clientes. Trinta minutos por dia, uma hora ou mais - o aprendizado de uma linguagem de programação deve se tornar seu principal objetivo.
Os administradores de sistemas e os especialistas em DevOps enfrentam desafios semelhantes, mas há uma diferença substancial. Acredita-se que um administrador de sistemas não pode realizar tudo o que um engenheiro DevOps pode. Diz-se que o administrador se concentra mais na configuração, manutenção e garantia do funcionamento dos sistemas de servidores, enquanto o engenheiro DevOps abrange todas essas tarefas e ainda mais.
Mas quão correta é essa afirmação?
Administrador de sistemas: um guerreiro solitário
Apesar das semelhanças e diferenças mencionadas neste artigo, ainda acredito que não há uma diferença significativa entre administração de sistemas e DevOps. Os administradores de sistemas sempre desempenharam as mesmas funções que os especialistas em DevOps, apenas ninguém chamava isso de DevOps antes. Acredito que não vale a pena procurar diferenças, especialmente se isso não estiver relacionado a uma tarefa específica. Também não devemos esquecer que, ao contrário do administrador de sistemas, DevOps não é um cargo, mas sim um conceito.
É importante ressaltar mais uma coisa, sem a qual a conversa sobre administração e DevOps estaria incompleta. A administração de sistemas, em seu entendimento convencional, implica que o especialista tenha um conjunto específico de habilidades e se concentre na manutenção de diferentes tipos de infraestrutura. Não no sentido de ser um funcionário universal, mas no que se refere a uma série de tarefas realizadas por todos os administradores.
Por exemplo, eles precisam ocasionalmente atuar como uma espécie de faz-tudo técnico, ou seja, fazer literalmente de tudo. E se esse administrador for o único em toda a organização, ele realizará todo o trabalho técnico. Isso pode abranger qualquer coisa: desde a manutenção de impressoras e copiadoras até a execução de tarefas relacionadas à rede, como configuração e gerenciamento de roteadores e switches ou configuração de firewalls.
Ele também será responsável pela atualização de hardware, verificação e análise de logs, auditoria de segurança, instalação de patches no servidor, solução de problemas, análise de causas raízes e automação — geralmente através de scripts PowerShell, Python ou Bash. Um dos exemplos de uso é a gestão de contas de usuários e grupos. A criação de contas de usuário e a atribuição de permissões é uma tarefa extremamente cansativa, uma vez que os usuários aparecem e desaparecem quase diariamente. A automação por meio de scripts permite liberar tempo para resolver questões de infraestrutura mais importantes, como a atualização de switches e servidores e a realização de outros projetos que impactam na lucratividade da empresa em que o administrador trabalha (embora seja comum considerar que o departamento de TI não gera receita diretamente).
A tarefa de um administrador de sistemas é não desperdiçar tempo e economizar dinheiro para a empresa de todas as maneiras possíveis. Às vezes, os administradores de sistema trabalham como membros de uma grande equipe, reunindo, por exemplo, administradores de Linux, Windows, bancos de dados, armazenamento e assim por diante. O horário de trabalho também pode variar. Por exemplo, um turno em um fuso horário no final do dia transmite as questões para o próximo turno em outro fuso horário, para que os processos não parem (follow-the-sun); ou os funcionários têm um horário regular de trabalho, das 9h às 17h; ou é um trabalho em um data center que opera 24 horas.
Com o passar do tempo, os administradores de sistema aprenderam a pensar estrategicamente e a equilibrar questões importantes com tarefas rotineiras. As equipes e departamentos em que trabalham geralmente carecem de recursos, mas todos tentam executar as tarefas diárias em sua totalidade.
DevOps: desenvolvimento e manutenção unidos
é uma espécie de filosofia de processos de desenvolvimento e manutenção. Essa abordagem no mundo da TI tornou-se verdadeiramente inovadora.
Sob a égide do DevOps, de um lado está a equipe de desenvolvedores de software e do outro, a equipe de especialistas em operações. Frequentemente, especialistas em gerenciamento de produtos, testadores e designers de interface de usuário se juntam a eles. Unindo esforços, esses profissionais otimizam as operações de trabalho para lançar novos aplicativos rapidamente e atualizar o código, visando manter e aumentar a eficiência de toda a empresa.
Na essência do DevOps está o controle sobre o desenvolvimento e operação de software durante todo o seu ciclo de vida. Os especialistas em operações devem apoiar os desenvolvedores, e os desenvolvedores precisam compreender não apenas as APIs utilizadas nos sistemas. Eles devem entender o que está "sob o capô" (ou seja, como funciona o hardware e os sistemas operacionais) para lidar melhor com erros, resolver problemas e interagir com os especialistas em operações.
Administradores de sistemas podem se juntar à equipe DevOps se desejarem aprender novas tecnologias e estiverem abertos a ideias e soluções inovadoras. Como já mencionei, eles não precisam se tornar programadores completos, mas aprender linguagens de programação como Ruby, Python ou Go os ajudará a se tornar membros muito úteis da equipe. Embora administradores de sistemas tradicionalmente façam todo o trabalho sozinhos e muitas vezes sejam vistos como solitários, no DevOps eles experimentarão uma experiência completamente oposta, onde todos os participantes do processo interagem uns com os outros.
O tema da automação está se tornando cada vez mais relevante. Tanto administradores de sistemas quanto especialistas em DevOps estão interessados em escalabilidade operacional, redução de erros, assim como na rápida identificação e correção de erros existentes. Assim, a automação é um conceito onde duas áreas se encontram. Administradores de sistemas são responsáveis por serviços de nuvem como AWS, Azure e Google Cloud Platform. Eles devem entender os princípios de integração e entrega contínuas e como usar na prática ferramentas como .
Além disso, os administradores de sistemas devem aplicar ferramentas de configuração e gerenciamento, como , necessários para a implementação paralela de dez ou vinte servidores.
O conceito principal é . O software está em tudo. Essencialmente, para que a profissão de administrador de sistemas não perca relevância, é necessário apenas mudar um pouco o foco. Administradores de sistemas lidam com a manutenção e devem ser capazes de colaborar eficazmente com desenvolvedores, e vice-versa. Como dizem, uma cabeça é boa, mas duas são melhores.
E o último detalhe neste mecanismo é . Trabalhar com Git é uma das obrigações diárias tradicionais do administrador de sistemas. Este sistema de controle de versão é amplamente utilizado por desenvolvedores, especialistas em DevOps, equipes ágeis e muitos outros. Se o seu trabalho está relacionado ao ciclo de vida do software, com certeza você trabalhará com Git.
Git contém uma infinidade de recursos. Você provavelmente nunca vai aprender todos os comandos do Git, mas entenderá por que essa ferramenta é considerada a principal em comunicação e colaboração no desenvolvimento de software. Um conhecimento sólido de Git é muito importante se você trabalha em uma equipe de DevOps.
Se você é um administrador de sistemas, precisa estudar melhor o Git, entender como funciona o gerenciamento de versões e memorizar os comandos mais comuns: git status, git commit -m, git add, git pull, git push, git rebase, git branch, git diff e outros. Existem muitos cursos online e livros que podem ajudá-lo a aprender sobre esse assunto desde o básico e se tornar um profissional com habilidades específicas. Também há ótimos , por isso não é necessário decorar todos, mas quanto mais você usar o Git, mais fácil será.
Conclusão
No final das contas, você mesmo decide se precisa se tornar um especialista em DevOps ou se é melhor continuar como administrador de sistemas. Como você pode ver, a transição exige aprendizado, mas quanto antes você começar, melhor. Escolha uma linguagem de programação e aprenda paralelamente ferramentas como controle de versões, CI/CD, integração contínua, e configuração e automação. Independentemente da opção que você escolher, não se esqueça de que deve continuar aprendendo e aprimorando suas habilidades.
Fonte: habr.com
