Como contratar DevOps eficazes e com várias habilidades
Pedro Capizani
Sócio Diretor da Hunter Hunter.
- Excelente conhecimento de servidores Linux e redes.
- Conhecimento amplo de gerenciamento de serviços AWS, incluindo Amazon S3, EBS, EC2, ECS e VPC.
- Facilidade com ferramentas como Bash, Python ou IaC.
- Ótimo comunicador.
- Certificações DevOps como AWS Certification (AWS Architect, SysOps, DevOps, ou mesmo Practitioner), uma Certificação Terraform, uma Certificação Kubernetes ou uma Certificação Docker.
Por que contratar um DevOps
Você precisará de um DevOPs quando necessitar de um contratar um desenvolvedor com conhecimentos sólidos em Automação, Infrastructure as Code ( IaC ), Continuous Integration / Continuous Delivery, Cloud Expertise e um profundo domínio de Linux O.S. ou Windows / .Net.
Caso queira escalar aplicativos web ou melhorar a produtividade de TI, o DevOps também é uma boa pedida.
O que faz um engenheiro DevOps
Um profissional DevOps é encarregado de facilitar a colaboração e a integração entre equipes de desenvolvimento (Dev) e operações (Ops), promovendo práticas ágeis, automação e gerenciamento de infraestrutura por código.
Este especialista proporciona ambientes de desenvolvimento e operacionais eficientes, visando acelerar a entrega de software.
Além disso, lida com a implementação de ferramentas para integração contínua, entrega contínua e deployment automatizado, garantindo uma abordagem DevOps robusta e segura.
O bom DevOps tem habilidades em administração de sistemas, gerenciamento de configuração, virtualização, containers, monitoramento e orquestração de nuvem. Enfatiza a escalabilidade, confiabilidade e segurança das operações, visando aprimorar a entrega e qualidade dos projetos.
Exemplos de atividades do DevOps:
- Automatizar tarefas de infraestrutura via IaC ou bash/python
- Manter e configurar os clusters dos servidores
- Criar e sustentar os pipelines de CI-CD
- Seguranças dos servidores e os serviços em nuvem
Além disso, DevOps são hábeis em Linux e sabem como criar sistemas altamente escaláveis usando a nuvem AWS (ou qualquer nuvem) com microsserviços, Kubernetes, Amazon ECS/Fargate ou apenas servidores virtuais locais.
O domínio das operações em nuvem é essencial para o DevOps competente, o que inclui integrar qualquer serviço AWS tais como Amazon RDS, Aurora, Amazon S3, ou mesmo consertar problemas envolvendo a rede cloud, como, por exemplo, VPC Networking.
Reação a tentativas de ataque, como Jenkins/WordPress hack, com identificação de brechas de segurança, soluções imediatas e preventivas.
Responsabilidades do DevOps
1. Continuous Integration e Continuous Delivery (CI/CD)
2. Automatizar e criar scripts para tarefas repetitivas
3. Manutenção e Deploy de infraestrutura
4. Cibersegurança
5. Resolução de qualquer problema com Linux]
6. Tarefas em Cloud
7. Aplicações Dockery Open Source
8. Kubernetes Clustering
9. Compliance de segurança
10. Desenvolvimento de back-end
11. Resolução de problemas com aplicações
12. Manter e administrar base de dados
Praticamente nenhum DevOps domina todas as hard skills acima, porém uma taxa de 50 a 70% de conhecimento avançados dos itens é desejável.
Skills requeridas aos DevOps
Linux Administration
Os DevOps plenos devem ter ao menos 2 a 3 anos de experiência com administração de ambiente Linux
Conhecimento de aplicações Open Source
O candidato também deve estar familiarizado com pelo menos dois serviços de código aberto, como Apache, Nginx, PHP, MySQL ou PostgreSQL.
Conhecimento de protocolos de rede
O desenvolver DevOps deve dominar os protocolos de rede tais como TCP/IP,networking, TCP, UDP, and HTTPS, além de conhecimento de Bash or Python scripting.
Experiência em AWS
O DevOps deve estar familiarizado com pelo menos uma Cloud e ter 2 a 3 anos de experiência em Amazon S3, VPC, EC2, ECS, IAM e RDS.
CI-CD
O candidato a DevOps deve ter a habilidade de criar a esteira de produtividade ability to CI-CD, com saber consumados em ferramentas de CI e CD.
Basic Understanding de ferramentas de IaC
O DevOps também deve saber implementar programas como Terraform, CloudFormation ou Python. Saber como implementar pelo menos um deve ser obrigatório.
Habilidade para deploy e lançar aplicativos em série
Por exemplo: Java app, MERN stack ou aplicações ou Python / Django.
Resolução de Problemas com servidor
O candidato deve ter experiência em lidar com incidentes de segurança e problemas de instância EC2.
Noções de segurança
Qualquer bom DevOps deve ter conhecimento básico de segurança AWS e proteção Linux (servidor/contêineres).
Altos conhecimentos de Docker e micro serviços
Conhecimento de Amazon ECS ou Fargate
Conhecimento de gerenciamento de banco de dados
A pessoa deve saber gerenciar pelo menos um dos três seguintes: Mysql, Postgresql ou Amazon RDS.
Ferramentas de monitoramento
Inclui Amazon Cloudwatch, Prometheus, Nagios, Zabbix, Grafana, DataDog ou New Relic.
Experiência básica do DevOps
- Arquitetura Multi-tenant: aplicável a plataformas SaaS e apps.
- Conhecimento de Infrastructure as Code (IaC).
- Habilidade para sistemas altamente escaláveis em nuvem.
DevOps Soft Skills
Para contratar um desenvolvedor DevOps, é importante ir além da simples experiência e habilidades técnicas da pessoa.
As empresas precisam procurar engenheiros de DevOps com as habilidades sociais necessárias e importantes tais como:
Boa comunicação
Uma boa comunicação é uma habilidade fundamental para um engenheiro DevOps, visto que ele pode ser solicitado a trabalhar remotamente.
A comunicação virtual pode ser complicada e, portanto, o DevOps deve ter a capacidade de superar quaisquer problemas de comunicação que possam surgir.
Ao se deparar com um problema, um bom DevOps deve ser capaz de determinar rapidamente sua causa e encontrar opções para resolvê-lo. A capacidade de ouvir e compreender as necessidades de uma equipe é crucial quando se trata de uma comunicação clara e produtiva.
Ferramentas como Slack, JIRA e Zoom podem ser úteis para colaboração remota.
Trabalho em equipe
A capacidade de trabalhar em harmonia com uma equipe traz inúmeros benefícios. Em primeiro lugar, é essencial para a criação de um produto coerente.
Um engenheiro DevOps precisa entender como a equipe funciona e estar familiarizado com as atividades e habilidades de cada membro. Colaborar em um ambiente compreensivo resultará em um bom fluxo de trabalho e processos eficientes em relação ao projeto ou produto.
Não é nenhum segredo que, com uma mentalidade adequada de trabalho em equipe, a produtividade do desenvolvimento pode aumentar significativamente.
Adaptabilidade
O campo DevOps está sempre mudando e evoluindo, portanto, os engenheiros de DevOps precisam ser adaptáveis. Aprender coisas novas para aumentar a experiência proporciona um desenvolvimento flexível, que pode contribuir positivamente para qualquer projeto ou problema que precise ser resolvido.
Você pode descobrir a capacidade de adaptabilidade ao contratar um desenvolvedor Devops analisando seus conhecimentos, cursos e experiência.
Liderança
No processo de contratação de um desenvolvedor DevOps, as habilidades sociais mencionadas acima podem ajudá-lo a identificar engenheiros DevOps com boas habilidades de liderança.
Os desenvolvedores enfrentam transformações digitais em curso e, portanto, devem ser capazes de identificar problemas e resolvê-los, tudo isso levando em consideração as opiniões da equipe com empatia e humildade, pois é isso que permite um processo de trabalho produtivo. O estilo de liderança certo depende de como os membros da equipe respondem às mudanças essenciais nas operações, tecnologia, funções e mentalidades.
Para empresas que precisam de recrutamento
- pedro@hunterhunter.com.br