Não é segredo que a área de DevOps é das mais valorizadas dentro das Tecnologias da Informação. É uma cultura que une por um lado a vertente do desenvolvimento - isto é, aqueles que são responsáveis pela criação das aplicações - e por outro, a das operações - os que se certificam que as aplicações estão efetivamente a trabalhar como é suposto. O principal objetivo passa pela automação de processos entre equipas de desenvolvimento e os departamentos operacionais, facilitando e acelerando, assim, o desenvolvimento, o teste e a entrega de novas soluções. Mas, quais são os conhecimentos e ferramentas mais importantes na vida de um DevOps? O que o torna diferenciador?
Para nos ajudar a perceber melhor o que é um DevOps, quais as suas responsabilidades, tarefas e desafios, estivemos à conversa com a nossa consultora Cláudia Tavares que nos deu a conhecer um pouco mais do meu mundo.
Como é que vieste parar ao mundo da informática?
Eu acho que foi algo muito natural. No meu 10º ano eu fui para Ciências e sabia claramente que não ia para nada ligado à medicina, mas não sabia para o que queria ir exatamente. Nessa altura, o meu pai decidiu inscrever-me num estágio de um mês na fábrica onde ele trabalhava, na parte de informática. Apesar de ter sido só um mês, eu gostei bastante da experiência e comecei-me a interessar pela área e a partir daí ficou decidido. Eu acho que ele [o meu pai] sabia que era uma área que tinha saída, aparentemente bem paga e de alguma forma achou que eu me encaixava lá.
Como surgiu o gosto pela vertente da segurança?
Fiz a licenciatura num politécnico. Julgo que os politécnicos acabam por nos preparar melhor em termos práticos, portanto senti-me muito preparada na licenciatura. Aqui escolhi o ramo de redes, ou seja, não escolhi a parte de web para a qual toda a gente tipicamente vai. Para mim não fazia sentido, porque honestamente, sendo rapariga, pode parecer contraditório, mas eu não gosto muito de estar a ajeitar o website e a pôr as coisas bonitinhas, para mim é um pouco stressante. Gosto das tarefas de backend, portanto fui para a área de redes e lá nós tínhamos uma cadeira de segurança que acho que foi dada de uma forma muito abrangente e suscitou-me muitas curiosidades que me levaram depois a querer seguir para um mestrado de segurança.
Já trabalhas como DevOps há cerca de 3 anos. Quais são as responsabilidades de um DevOps e qual a sua importância no ciclo de desenvolvimento de software?
Em termos de responsabilidades, temos bastantes. Basicamente o DevOps é aquele que faz a ligação entre a equipa de desenvolvimento e a equipa de operações. Portanto, o desenvolvimento acaba por tratar de desenvolver a aplicação que depois é necessária para as operações. Nós DevOps somos os responsáveis por tornar tudo automatizado, tornar o processo mais seguro e direto para que tudo flua de uma forma mais natural.
Nós pegamos naquilo que o desenvolvimento vai fazendo e automatizamos de alguma forma. Quase que estamos por cima de tudo aquilo que o desenvolvimento faz, por isso precisamos de ter conhecimento sobre tudo o que fazem, pois temos de automatizar e tornar o processo mais eficaz e mais seguro.
Às vezes gera um pouco de atritos porque nós somos vistos como uma equipa à parte e existe falta de comunicação. O desenvolvimento ou as operações não percebem o quanto é importante nós sabermos o que eles estão a fazer. Às vezes dizem-nos algo muito abrangente, mas isso não nos chega. Nós precisamos de perceber coisas específicas sobre o serviço para conseguirmos implementar e automatizar o processo.
Que tipo de ferramentas é comum um DevOps utilizar?
Nós em termos de monitorização usamos muito o Prometheus e o Grafana. Acho que são ferramentas muito conhecidas e acho que são importantes. O Prometheus ajuda a que tenhamos as métricas para os serviços e o Grafana permite a visualização das métricas de forma mais eficaz para a equipa de operações conseguir perceber o que está a acontecer do lado dos clientes.
Há também a parte do Elasticsearch, Kibana e Logstash. Eles funcionam os três como um só, conhecidos como o ELK e permitem recolher (Logstash), armazenar (Elasticsearch) e visualizar as métricas (Kibana).
A parte da cloud também é bastante importante. Aqui temos várias clouds, mas devemos ter pelo menos um conhecimento abrangente do que é que podemos fazer em cada uma. No meu caso, por exemplo, tenho mais conhecimentos em AWS e deve ser também das mais utilizadas, por isso é uma boa ferramenta para começar.
Por fim, em termos de containers é muito importante ter conhecimentos sobre Docker e Kubernetes. Este último funciona por cima do Docker, por isso conhecendo o Docker é muito fácil perceber o que é que o Kubernetes faz e como é que podemos trabalhar com ele.
Se tivesses de recrutar um DevOps para a tua equipa, qual seria o fator diferenciador que procurarias num profissional?
Não é uma pergunta fácil, mas diria que a autonomia é sempre importante em qualquer área. Em DevOps como é uma área tão abrangente, é preciso termos autonomia para procurar e daí termos de ter gosto pela área.
A parte da comunicação também é relevante, ou seja, não podemos ficar à espera que as coisas nos cheguem, temos de nos chegar à frente e falar com as equipas. Temos de comunicar muito. Por isso, diria que ter autonomia, gosto pelo que fazemos e ter à vontade e abertura para comunicar é importante.
Em termos de hard skills, diria que ter conhecimentos de segurança é sempre importante. Acho que é um “plus” bastante relevante. Claro que podemos ser DevOps sem ter conhecimentos de segurança, mas acho que é algo que faz a diferença. Traz um fator diferenciador. Para além disso, acho que ter conhecimentos sobre redes é importante porque também trabalhamos muito com essa parte.
Por fim, acho que iria também procurar por alguém com conhecimentos nas ferramentas que os DevOps usam como containers, clouds e monitorização de serviços.
Como é o teu dia a dia no projeto em que te encontras atualmente?
O meu dia a dia nunca é o mesmo. Eu tenho tarefas do dia, mas acontece muitas vezes surgirem chamadas de última hora com pedido que é preciso resolver para a equipa de Devs e de Operações que vou gerindo consoante as prioridades. Além disso, temos ainda as revisões de código. Costumo logo começar o dia com o código que tenho para rever e deixar isso limpinho para não ter de me preocupar novamente.
Depois, começo as minhas tarefas e vejo o que vai surgindo ao longo do dia. Normalmente estão relacionadas com processos de automatização. Por exemplo, quando surge algum serviço novo, a equipa de DevOps precisa de preparar um playbook que automatiza a instalação desse serviço. Quando é preciso uma métrica nova para determinados serviços, temos de preparar a monitorização para essa métrica também. Estamos ainda encarregues de fazer a análise das máquinas que a equipa de Devs e de Testes utilizam.
Quais são as ferramentas e tecnologias que utilizas diariamente no teu trabalho?
Utilizo o Jira e o Fisheye. O primeiro permite a criação e gestão de “issues” que nos são atribuídos ou que temos de criar para a equipa de Devs desenvolver. O Fisheye permite fazer a análise da revisão do código que foi feita na análise desses issues. Usamos também o GitHub que é uma plataforma onde temos o nosso código armazenado. Em termos de monitorização temos sempre o Prometheus e o Grafana onde fazemos bastante a análise das métricas para perceber se as máquinas estão num ambiente estável e se está tudo ok. Usamos ainda o Mobaxterm para conseguirmos fazer o SSH para as máquinas e validar se está tudo ok. Em termos de Cloud utilizamos o AWS para fazermos testes de instalação do nosso produto na Cloud.
Como achas que a área de DevOps vai evoluir nos próximos tempos?
Acho que a área de DevOps está sempre em constante evolução. Há uns anos não tínhamos esta parte de containers e microserviços e nesta altura já é mais usual. Portanto eu acho que isso vai continuar a ser mais comum. Eu diria que a parte de DevOps vai acabar por ser interligar ainda mais com a área de DevSecOps, porque acho que estamos cada vez mais a par do que vai acontecendo e a segurança é cada vez mais uma prioridade. Desta forma, acredito que a parte de DevOps e DevSecOps se vai acabar por tornar numa só área.
Qual é a parte mais desafiante de ser DevOps?
Eu diria que, pelo menos para mim, que sou uma pessoa que gosta de saber o que vai acontecer no meu dia e ser organizada, a parte mais desafiante é a imprevisibilidade. Ou seja, é estar sempre à espera de tudo, podem-me ligar a perguntar alguma coisa simples ou então pode ser alguma coisa que afinal vai demorar imenso tempo a ser executado e que não era uma pergunta assim tão simples.
Se pudesses ter um super poder no teu dia a dia profissional, qual escolherias e porquê?
Ser multifacetada assim ao nível máximo, porque surgem sempre imensas coisas. Sinto que tenho sempre um dia muito mexido. Há sempre alguém que liga e ao mesmo tempo tenho as minhas tarefas, portanto acho que gostava que fosse possível conseguir estar a fazer as duas tarefas em simultâneo de forma eficaz.
Como te manténs atualizada com as mudanças no setor?
Costumo fazer alguns cursos na Udemy, acho que é uma forma boa para estarmos a par de algumas ferramentas.
Na área de DevOps é bastante importante estarmos atualizados em termos de notícias que vão saíndo relativamente à segurança, alguns podcast que possam tratar desta área, etc. Acho que há muito conteúdo que aborda esta área. Eu vou vendo mesmo pela internet o que é mais recente e não tenho um canal que siga religiosamente. Por exemplo, se alguma ferramenta me suscitar interesse vou procurar diretamente informação sobre a mesma.
O que mudarias no teu percurso até agora se pudesses?
Não mudava nada. Acho que fiz o percurso certo. É o que me levou onde estou e estou muito satisfeita com todo o meu percurso e com aquilo que alcancei. Portanto não mudava rigorosamente nada.
Qual foi o melhor conselho que já recebeste e que gostarias de passar a outros?
Não ter medo de arriscar. Todos cometemos erros. É normal não gostarmos de cometer erros, mas é importante fazê-lo para saber o que não podemos fazer de uma próxima vez. É muito importante ter autonomia e se estivermos sempre a pensar no que pode correr mal, vai ser um entrave. Temos de aceitar que vamos cometer erros, que é normal e que eles nos vão fazer crescer de alguma forma.
Se também trabalhas nesta área ou gostarias de ter a tua primeira experiência enquanto DevOps Engineer, explora os nossos projetos aqui. Sabe mais sobre temas como carreira, produtividade, tecnologia, gestão ou liderança no nosso podcast: