DevOps – Por onde começar?

Muito se fala hoje em dia sobre DevOps, sendo esta a profissão do momento que as empresas têm buscado cada vez mais.

Sim, DevOps é uma profissão. Sabemos que anteriormente ela surgiu como um movimento cultural organizacional visando:

  • Ampliação na capacidade de comunicação dos times.
  • Difusão no desenvolvimento e entregas de softwares.
  • Fomentando a agilidade e a qualidade das entregas em operação.

Porém, surgiram variações dentro desse modelo, e o profissional DevOps nasceu com uma missão muito importante dentro das organizações sendo um agente agregador da cultura e dos processos dessa metodologia.

E, com um mercado aquecido e ansiando por profissionais com este perfil, você deve estar se perguntando: “Qual caminho devo seguir?”

Trago aqui seis soft skills que considero importantes para o início de sucesso nessa jornada.

Espírito de Colaboração

Classifico essa como o marco zero para ter uma boa experiência no mundo DevOps.

Hoje não existe mais espaço no mercado para profissionais que atuam de forma separatistas, que pensem apenas em si e em sua entrega. O bom profissional de DevOps precisa colaborar e ser um agente replicador de integração e de conhecimento entre os times.

Nuvem

Sim, é inevitável não mencionar nuvem como skill de um DevOps. Você precisa conhecer ao menos um provedor de cloud, seja ele Azure, AWS, GCP ou outros provedores menos populares. Nuvem não é mais algo tão novo, e a melhores empresas a utilizam devido aos inúmeros benefícios oferecidos, como:

  • Alta disponibilidade e
  • Conectividade e segurança.
  • Pagar apenas o que realmente você utiliza.

Automação

O grande foco e um grande desafio do DevOps é pensar sempre na automação de processos. Esse viés agrega na agilidade e na qualidade das entregas em uma operação. E, quando falamos em automação, logo pensamos em uma infinidade de ferramentas. Abaixo uma pequena amostra:

Principais ferramentas no Ciclo DevOps

É muito tentador querer aprender todas essas ferramentas de uma só vez, acredite, eu já pensei assim também. Porém, devido a grande quantidade de ferramentas e a frequência nas atualizações, isso se torna tarefa muito difícil. Foque no objetivo e no funcionamento macro dessas ferramentas que você terá um grande aprendizado.

Porém algumas ferramentas são grandes aliadas na automação de processos como Terraform, Ansible e Chef.

Controlador de Versionamento

Controlar o versionamento não é uma tarefa simples em grandes times. Todavia, temos um grande aliado chamado Git que possibilita controlar, versionar, rastrear e assegurar a qualidade do seu código. Esta é a principal e mais conhecida ferramenta do segmento e se mostra extremamente eficaz.

Curiosidade

Git é um projeto de código aberto que foi desenvolvido em 2005 por Linus Torwards (Criador do Kernel Linux), uma vez que odiava o funcionamento de CVS (Concurrent Version System) que eram versionadores de arquivos da época. Como desejava criar algo que atendesse a sua necessidade de versionar códigos, Linus Torwards deu início ao então conhecido Git.

CI/CD

O que é CI/CD?

Ilustração sobre passos de esteira CI/CD

  • Continuous Integration: “CI” refere-se à integração contínua, que é um processo de automação para desenvolvedores. Temos uma CI bem-sucedida quando novas mudanças no código de uma aplicação são desenvolvidas, testadas e consolidadas regularmente em um repositório compartilhado.
  • Continuous Deployment: “CD”, refere-se ao lançamento automático das mudanças feitas por desenvolvedores no repositório à produção, onde podem ser usadas pelos clientes. Isso evita a sobrecarga das equipes de operações por conta dos processos manuais que atrasam a entrega de aplicações.

Esses são basicamente mantras do DevOps, então adquira o conhecimento em pelo menos uma ferramenta que execute esses ciclos dentro da esteira DevOps.

No mercado existem uma variedade de ferramentas que irão auxiliar o CI/CD, sendo algumas open-source como Jenkins e GitLab. Outras possuem diversos tipos de licenciamento, como Azure DevOps e CircleCI.

Containers

O que é container?

Um container é um empacotamento do código e suas dependências que contém somente o necessário para que o aplicativo seja executado de forma rápida e confiável.

A abstração e arquitetura de containers, seus provedores e seus orquestradores irão te apoiar na automação e na administração da sua carga de trabalho. Os principais e mais conhecidos são Docker e Kubernetes.

Conclusão

Vemos que o profissional DevOps tem uma grande aderência no mercado profissional, porém sua trilha não é tão simples. Existe exigência no comprometimento e compartilhamento entre os times além de soft skills específicos em algumas tecnologias.

Mas, com empenho e dedicação, tudo é possível nesse segmento. Conhecendo essas e outras tecnologias você também terá espaço nessa carreira. 

Referencias

[Importância na Colaboração]

https://intranetnow.lumis.com.br/blog/entenda-a-importancia-da-colaboracao-para-o-crescimento-da-empresa.htm

[Benefícios Cloud]

https://www.eveo.com.br/blog/beneficios-cloud-alem-custos/

[Versionador GIT]

https://git-scm.com

https://pt.wikipedia.org/wiki/Git

[Definição sobre CI/CD]

https://www.redhat.com/pt-br/topics/devops/what-is-ci-cd

[Definição sobre Containers]

https://www.docker.com/resources/what-container

Post a Comment

* indicates required