
Não há melhor momento para aprender na vida do que hoje.
É 2019 e o tema do DevOps é mais relevante do que nunca. Eles dizem que os dias dos administradores de sistema já passaram, como a era dos mainframes. Mas é mesmo assim?
Como é frequentemente o caso em TI, a situação mudou. A metodologia DevOps apareceu, mas não pode existir sem uma pessoa com as habilidades de um administrador de sistema, ou seja, sem Ops.
Antes da abordagem DevOps adquirir sua aparência moderna, eu me classifiquei como Ops. E eu sei muito bem o que um administrador de sistemas está enfrentando quando percebe o quanto ainda não foi capaz de fazer e o pouco tempo que ele tem para aprender a fazer isso.
Mas tudo é realmente tão assustador? Eu diria que não é necessário perceber a falta de conhecimento como algum tipo de grande problema. É um desafio profissional.
Os produtos em escala da Web são baseados em Linux ou outro software de código aberto, e há cada vez menos especialistas no mercado que podem atendê-los. A demanda já excedeu o número de profissionais nesse campo. O administrador do sistema não poderá mais continuar trabalhando sem aumentar seu nível de habilidade. Ele deve ter habilidades de automação para gerenciar vários servidores / nós e ter um bom entendimento de como eles trabalham para resolver problemas.
Antes de se tornar membro da equipe do DevOps, você tem uma longa, mas interessante jornada para aprender, explorando novas tecnologias e uma variedade de ferramentas necessárias para manter o sistema de acordo com os padrões do DevOps.
Então, como o administrador do sistema pode mudar da abordagem usual para o novo conceito de DevOps? Tudo está como sempre: primeiro você precisa mudar sua mentalidade. Não é fácil abandonar a abordagem que você segue nos últimos dez ou vinte anos e começar a fazer tudo de uma nova maneira, mas isso é necessário.
Antes de tudo, é importante entender que o DevOps não é uma posição específica em uma empresa, mas um conjunto de práticas específicas. Essas práticas incluem a distribuição de sistemas isolados, redução de danos por bugs e erros, atualizações frequentes e oportunas de software, interação suave entre desenvolvedores (Dev) e administradores (Ops), além de testes constantes não apenas do código, mas de toda a estrutura como parte do processo de
integração contínua e entrega (CI / CD) .
Além de mudar a maneira de pensar, você precisa aprender a manter a infraestrutura e garantir sua operação, confiabilidade e disponibilidade estáveis, para integração e fornecimento contínuos de aplicativos, serviços e software.
O que você pode não ter como especialista em operações é habilidades de programação. Agora, escrever scripts (scripts) que os administradores de sistema usam para instalar automaticamente patches no servidor, gerenciar arquivos e contas, para solucionar problemas e compilar documentação já é considerado obsoleto. Em casos relativamente simples, os cenários ainda são aplicados, mas o conceito de DevOps envolve a solução de tarefas em grande escala, seja implementação, teste, trabalho de montagem ou implantação.
Portanto, se você deseja aprender a automação, precisa dominar um pouco de programação, mesmo que não seja um desenvolvedor, porque nesse estágio de desenvolvimento
, a automação de infraestrutura no DevOps exige essa habilidade.
O que fazer Para permanecer um especialista procurado, você precisa adquirir habilidades relevantes - dominar pelo menos uma linguagem de programação, por exemplo, Python. Para uma pessoa profissionalmente envolvida na administração, isso pode parecer complicado, porque ele está acostumado a pensar que apenas os desenvolvedores programam. Não é necessário se tornar um especialista, no entanto, o conhecimento de uma das linguagens de programação (pode ser Python, Bash ou até
Powershell ) certamente será uma vantagem.
Para aprender a programar, você precisa de algum tempo. Esteja atento e paciente - isso ajudará você a entender a situação ao se comunicar com os desenvolvedores da equipe e dos clientes do DevOps. Meia hora por dia, uma hora ou mais - aprender uma linguagem de programação deve ser seu principal objetivo.
Os administradores de sistema e os especialistas em DevOps resolvem problemas semelhantes; no entanto, há uma diferença significativa. Acredita-se que o administrador do sistema não possa fazer tudo o que o engenheiro do DevOps pode fazer. Eles dizem que o administrador do sistema está mais focado em configurar, manter e garantir a operacionalidade dos sistemas de servidor, mas o engenheiro do DevOps está puxando todo esse carrinho e outro carrinho pequeno.
Mas quão verdadeira é essa afirmação?
Administrador do sistema: um no campo guerreiro
Apesar das diferenças e semelhanças observadas neste artigo, ainda acho que não há diferença significativa entre a administração do sistema e o DevOps. Os administradores de sistema sempre executavam as mesmas funções que os especialistas em DevOps, mas ninguém nunca havia chamado isso de DevOps antes. Eu acho que não faz sentido procurar especificamente diferenças, especialmente se isso não estiver relacionado a nenhuma tarefa. Não esqueça que, ao contrário do administrador do sistema, o DevOps não é uma posição, mas um conceito.
Mais uma coisa importante a ser observada, sem a qual a conversa sobre administração e DevOps ficará incompleta. A administração do sistema, no sentido usual, implica que um especialista tenha um conjunto específico de habilidades e se concentre em atender a vários tipos de infra-estruturas. Não no sentido de que este é um funcionário universal, mas no fato de que existem várias tarefas executadas por todos os administradores.
Por exemplo, de tempos em tempos, eles têm que agir como uma espécie de ajudante técnico, ou seja, para fazer literalmente tudo consecutivamente. E se esse administrador for o único em toda a organização, ele fará todo o trabalho técnico. Pode ser qualquer coisa, desde a manutenção de impressoras e copiadoras até a execução de tarefas relacionadas à rede, como configurar roteadores e comutadores e gerenciá-los ou configurar um firewall.
Ele também será responsável por atualizações 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 causa raiz e automação - geralmente por meio de scripts do PowerShell, Python ou Bash. Um exemplo de uso de
scripts é o gerenciamento de contas de usuário e grupo. Criar contas de usuário e atribuir permissões é uma tarefa extremamente tediosa, pois os usuários aparecem e desaparecem quase todos os dias. A automação com script libera tempo para tarefas de infraestrutura mais importantes, como atualizar switches e servidores e executar outros projetos que afetam a lucratividade da empresa em que o administrador trabalha (embora se acredite que o departamento de TI não gera receita diretamente).
A tarefa do administrador do sistema não é perder tempo e economizar dinheiro da empresa de qualquer maneira possível. Às vezes, os administradores de sistema trabalham como membros de uma grande equipe que reúne, por exemplo, Linux, Windows, banco de dados, armazenamento e assim por diante. O horário de trabalho também é diferente. Por exemplo, uma mudança em um fuso horário no final do dia transfere as coisas para a próxima mudança em outro fuso horário, para que os processos não parem (siga o sol); ou os funcionários têm um dia útil normal das 9h às 17h; ou é um trabalho em um data center 24 horas.
Com o tempo, os administradores de sistemas aprenderam a pensar estrategicamente e a combinar assuntos importantes com tarefas rotineiras. As equipes e os departamentos em que trabalham geralmente não possuem recursos suficientes, mas ao mesmo tempo todos estão tentando executar as tarefas diárias na íntegra.
DevOps: desenvolvimento e serviço são um
O DevOps é um tipo de filosofia dos processos de desenvolvimento e manutenção. Essa abordagem no mundo da TI se tornou verdadeiramente inovadora.
Sob os auspícios do DevOps, uma equipe de desenvolvedores de software está trabalhando de um lado e uma equipe de especialistas de serviço do outro. Freqüentemente, eles se juntam a especialistas em gerenciamento de produtos, testadores e designers de interface do usuário. Ao unir forças, esses especialistas otimizam as operações de trabalho para implantar rapidamente novos aplicativos e atualizar o código, a fim de apoiar e melhorar a eficiência de toda a empresa.
No coração do DevOps está o controle sobre o desenvolvimento e a operação do software ao longo do ciclo de vida. Os especialistas em serviços devem dar suporte aos desenvolvedores, e eles enfrentam a tarefa de entender não apenas as APIs usadas nos sistemas. Eles devem entender o que está “oculto” (isto é, como o hardware e os sistemas operacionais funcionam) para lidar melhor com os erros, resolver problemas e interagir com especialistas em serviços.
Os administradores de sistema podem ir à equipe do DevOps se quiserem aprender a tecnologia mais recente e estão abertos a idéias e soluções inovadoras. Como eu disse, eles não precisam se tornar programadores completos, mas o domínio de linguagens de programação como Ruby, Python ou Go os ajudará a se tornarem membros muito úteis da equipe. Embora os administradores de sistema tradicionalmente executem todo o trabalho por conta própria e sejam frequentemente percebidos como solitários, no DevOps, eles terão a experiência completamente oposta quando todos os participantes do processo interagirem entre si.
O tópico da automação está se tornando cada vez mais relevante. Os administradores de sistema e os especialistas em DevOps estão interessados no dimensionamento operacional, reduzindo o número de erros, bem como na rápida pesquisa e eliminação dos erros existentes. Assim, a automação é um conceito em que duas áreas convergem. Os administradores de sistema são responsáveis por serviços em nuvem, como AWS, Azure e Google Cloud Platform. Eles precisam entender os princípios de integração e fornecimento contínuos e como usar ferramentas como
Jenkins em seu trabalho.
Além disso, os administradores de sistema devem usar ferramentas de configuração e gerenciamento, como
Ansible , necessárias para implantar dez ou vinte servidores em paralelo.
O conceito básico é
infraestrutura como um código . Software em tudo. De fato, para que a profissão de administrador de sistemas não perca relevância, basta mudar um pouco o foco. Os administradores de sistema estão envolvidos na manutenção e devem poder interagir efetivamente com os desenvolvedores e vice-versa. Como se costuma dizer, uma cabeça é boa e duas são melhores.
E o último detalhe desse mecanismo é o
Git . Trabalhar com o Git é uma das responsabilidades diárias tradicionais de um administrador de sistemas. Esse sistema de controle de versão é amplamente utilizado por desenvolvedores, especialistas em DevOps, equipes Agile e muitos outros. Se o seu trabalho estiver relacionado ao ciclo de vida do software, você definitivamente trabalhará com o Git.
O Git contém muitos recursos. Provavelmente, você nunca aprenderá todos os comandos do Git, mas entenderá exatamente por que essa ferramenta é considerada a principal em comunicação e colaboração em software. Um conhecimento profundo do Git é muito importante se você trabalha na equipe do DevOps.
Se você é um administrador de sistema, precisa aprender melhor o Git, entender como o controle de versão é construído e lembrar os comandos comuns:
status do git, git commit -m, git add, git add, git pull, git push, git rebase, git branch, git diff e outros . Existem muitos cursos e livros on-line para ajudá-lo a aprender esse tópico do zero e se tornar um profissional com habilidades específicas. Também existem ótimas
folhas de dicas com comandos do Git , portanto, agrupá-las todas é opcional, mas quanto mais você usar o Git, mais fácil será para você.
Conclusão
Por fim, você decide se precisa se tornar um especialista em DevOps ou melhor para permanecer como administrador do sistema. Como você pode ver, a transição requer treinamento, mas quanto mais cedo você começar, melhor. Escolha uma linguagem de programação e estude ferramentas como
Git (controle de versão),
Jenkins (CI / CD, integração contínua) e
Ansible (configuração e automação). Qualquer que seja a opção escolhida, não esqueça que você precisa aprender e melhorar constantemente suas habilidades.