Os três pilares do DevOps

Não, três não é um número mágico… mas neste post compartilho um resumo de três pilares essenciais em práticas DevOps: Processos, Pessoas e Ferramentas. É comum encontrar em livros e artigos, algumas recomendações sobre os pilares de sustentação e alavancagem do DevOps nas organizações. A quantidade de pilares varia de acordo com a forma de agrupamento das áreas, adotado por cada autor.

O propósito então de quebrar os silos (entre os times de desenvolvimento e operações) e  habilitar a entrega contínua de valor exige o suporte efetivo destes pilares, considerando a cultura dos times, os pipelines de implementação, orquestração end-to-end, entre muitos outros.

Processos

Como está o ciclo de vida do desenvolvimento? Veja as boas práticas que o time está adotando, tais como microserviços, TDD (test driven development), gestão ágil, processo de Continuous Integration, etc. São imprescindíveis para evoluir continuamente e evitar débitos técnicos ou processos falhos (com gargalo, ineficientes e desperdícios).

pilares-devops-processos Processos

  • Conjunto de boas práticas, artefatos, guias e manuais que conduzem a construção e manutenção de uma aplicação
  • Não são imutáveis e estão sempre em evolução
  • Processo de build, deployment, release, etc.
  • BDD, TDD, Kanban, Agile, etc.
processos-pilares


Pessoas

Sem o engajamento e capacitação das PESSOAS, não há ferramenta ou processo que consiga atingir os resultados da organização. Por isso, priorize o desenvolvimento dos times, tornando-os multifuncionais e auto organizados. A cultura de aprendizado e comunicação efetiva são essenciais para as práticas DevOps. Que tal DOJOs, Meetups, Webinars, hackatons, gamificação, entre outros?

pilares-devops-pessoas Pessoas

  • Time multidisciplinar
  • Engajamento
  • Sinergia entre as áreas (quebra de silos)
  • Sem pessoas não há processo
  • Essencial a comunicação entre as pessoas
  • Cultura
    • Aprendizado
    • Colaborativo
    • Confiança

 


Ferramentas

Complementarmente a processos e pessoas, existem muitas ferramentas que apoiam as implementações do início ao fim do ciclo de vida de desenvolvimento. Por exemplo, o Azure DevOps e o JIRA gerenciam o ALM (application lifecycle management), Slack e MSFT Teams como ferramentas de comunicação e Confluence de gestão do conhecimento.

O Git em gestão de fontes, Jenkins no processo de CI e Maven em gestão de builds. A área de testes possui inúmeras ferramentas como o JUnit para testes unitários e o Selenium para testes automatizados. A gestão da configuração e provisionamento pode ser feito com Chef, Ansible, Terraform ou Puppet. E a área de Cloud com AWS, Google Cloud Platform, Microsoft Azure, etc.

devops-ferramentas