Close

Considerações sobre a cadeia de ferramentas de DevOps

Você deve escolher uma cadeia de ferramentas de DevOps multifuncional ou personalizável?

Foto de Robert Krohn
Robert Krohn

Chefe de Engenharia, DevOps

Contribuição editorial: Chandler Harris

Uma cadeia de ferramentas de DevOps é uma coleção de ferramentas, muitas vezes de vários fornecedores, que atuam como uma unidade integrada para projetar, compilar, testar, gerenciar, medir e operar software e sistemas. Ele permite que as equipes de desenvolvimento e operações colaborem em todo o ciclo de vida do produto e aborda os principais fundamentos do DevOps, inclusive integração contínua, entrega contínua, automação e colaboração.

Do ágil ao DevOps


Quando os princípios ágeis ganharam ampla adoção, eles revolucionaram a forma com que criamos produtos. Adotamos equipes pequenas e multifuncionais, além de sprints de uma a duas semanas que produziam artefatos prontos para produção. Tínhamos ciclos de feedback rígidos e melhorias contínuas. Entregamos produtos mais rápido e com menos complicações.

É incrível a velocidade com que as coisas mudam. Agora, com nuvem, SaaS e serviços sempre ativos, o ciclo de vida do desenvolvimento é muito mais rápido. É comum que vários estágios de desenvolvimento e testes aconteçam ao mesmo tempo. Enquanto a metodologia ágil em geral tinha sprints de uma a duas semanas, as equipes dos ambientes nativos da nuvem de hoje em dia iteram e implementam várias vezes por dia. Os fluxos de trabalho e as bases de código estão em constante evolução. As equipes usam sinalizadores de funcionalidade, implementações progressivas e testes A/B para garantir que códigos limpos e de qualidade sejam implementados de modo contínuo.

Isso causou uma evolução dos modelos ágeis para o DevOps, um conjunto de práticas que trabalham para automatizar e integrar os processos entre equipes de desenvolvimento de software e de TI, permitindo que elas criem, testem e lancem software com mais velocidade e confiabilidade. As equipes de DevOps são avaliadas pela rapidez com que enviam código para a produção. Eles são definidos pelo número de iterações enviadas por dia e quanto tempo leva para uma alteração de código passar do teste à implementação e à produção. Os projetos típicos da minha equipe veem até 20 mudanças por dia. Alguns projetos maiores veem até 100 mudanças por dia.

Esse fluxo de trabalho acelerado é possibilitado e depende de novas ferramentas que permitem que as equipes colaborem nas etapas de desenvolvimento, testes e implementação. Em especial, uma cadeia de ferramentas de DevOps ajuda as equipes a lidar com cada estágio do ciclo de vida do desenvolvimento com muito mais rapidez.

O que é cadeia de ferramentas de DevOps?


Uma cadeia de ferramentas de DevOps inclui as ferramentas e tecnologias que permitem que as equipes de desenvolvimento e operações colaborem em todo o ciclo de vida do software. Ela aborda os principais fundamentos do DevOps, incluindo integração contínua, entrega contínua, automação e colaboração.

Como o DevOps é uma mudança cultural em que o desenvolvimento e as operações atuam como uma unidade integrada, não existe uma única ferramenta que habilite princípios e práticas de DevOps. Em vez disso, uma cadeia de ferramentas de DevOps é uma coleção de ferramentas, muitas vezes de vários fornecedores, que atuam como uma unidade integrada para projetar, compilar, testar, gerenciar, medir e operar software e sistemas. Muitas vezes, empresas e equipes precisam experimentar diferentes combinações de ferramentas para encontrar a cadeia de ferramentas certa.

Se você analisar um produto de DevOps sofisticado, a cadeia de ferramentas de DevOps deve ser capaz de lidar com diferentes partes do ciclo de vida do desenvolvimento com muita rapidez e oferecer várias perspectivas para usuários diferentes. Ela precisa incluir ferramentas de desenvolvimento para cada fase do ciclo de vida do desenvolvimento, inclusive integração e entrega contínuas, automação de testes e implementação em alta velocidade. No lado das operações do DevOps, as ferramentas devem incluir funcionalidades que ajudem no monitoramento e no gerenciamento de incidentes. Além disso, as ferramentas precisam unir o desenvolvimento e as operações, dando feedback e registros contínuos.

Ícone de anéis conectados
Material relacionado

Comece gratuitamente

ícone de nó organizado
Material relacionado

Explore as integrações

Ilustração do ciclo de DevOps

Quando você considera o lado esquerdo do símbolo do infinito como o lado do produto e o lado direito como o lado da operação, o gerente de produto que insere uma nova função na produção está interessado em ver como o projeto se divide em tarefas e histórias de usuários. O desenvolvedor do lado esquerdo do projeto precisa ver como mover função para a produção, incluindo tickets de projeto, histórias de usuários e dependências. Se os desenvolvedores seguirem o princípio do DevOps de “you build it, you run it”, eles também estarão interessados na correção de incidentes.

Passando para o lado das operações do ciclo de vida, o engenheiro de confiabilidade do site precisa entender os serviços que podem ser medidos e monitorados, de modo que, se houver um problema, ele possa ser corrigido. Se você não tiver uma cadeia de ferramentas de DevOps que una todos esses processos, acabará com um ambiente confuso, não correlacionado e caótico. Se você tiver uma cadeia de ferramentas bem integrada, vai poder ter um contexto melhor do que está acontecendo.

Opções para criar sua cadeia de ferramentas de DevOps


Ao escolher a cadeia de ferramentas de DevOps certa, primeiro, é importante entender as práticas recomendadas fundamentais de DevOps e como as ferramentas auxiliam essas práticas. Depois, estabeleça uma estratégia de ferramentas comum que permita que as equipes colaborem nas etapas de desenvolvimento, testes e implementação.

Quando as empresas adotam o DevOps, elas em geral se deparam com duas opções: uma cadeia de ferramentas de DevOps multifuncional ou uma cadeia de ferramentas de DevOps personalizada. Escolher a configuração certa é importante, pois ela molda os processos de DevOps de uma equipe.

Cadeia de ferramentas de DevOps multifuncional

Uma solução de DevOps multifuncional propicia uma solução completa que talvez não se integre a outras ferramentas de terceiros. Isso pode ser útil para empresas ou grupos que estão começando a jornada de DevOps, ou quando uma equipe quer iniciar um projeto com rapidez. A desvantagem desse tipo de cadeia de ferramentas é que a maioria das equipes estabelecidas já tem um conjunto de ferramentas que usa e prefere, e elas podem não se integrar a uma solução completa. Além disso, uma cadeia de ferramentas tão abrangente pode sofrer com a síndrome do "faz de tudo, mas não faz nada direito". Uma ferramenta simplesmente não consegue evoluir para mercados com mudanças rápidas. Por fim, na maioria das vezes, as empresas precisam integrar ferramentas legadas em uma cadeia de ferramentas de DevOps, e uma opção multifuncional pode limitar isso.

Cadeia de ferramentas de DevOps personalizável

A outra abordagem é usar uma cadeia de ferramentas de DevOps que possa ser personalizada de acordo com as necessidades de uma equipe com ferramentas diferentes. Assim, as equipes podem trazer as ferramentas existentes que já conhecem e amam para a cadeia de ferramentas de DevOps mais ampla. Por exemplo, uma equipe pode usar o Jira para planejamento e rastreamento de fluxo de trabalho, o Kubernetes para provisionar ambientes de desenvolvimento individuais, o Github para a codificação colaborativa, o Jenkins para a integração contínua e muito mais. As empresas podem personalizar seus fluxos de trabalho por equipes e/ou por projeto.

A integração é essencial para esses tipos de cadeias de ferramentas. Se as ferramentas diferentes não estiverem integradas, os membros da equipe vão passar um tempo desnecessário alternando entre telas e entrando em vários lugares, e pode ser difícil compartilhar informações entre as ferramentas. Essa não é uma boa experiência para desenvolvedores ou qualquer pessoa que esteja tentando entender o que está acontecendo. Se você estiver respondendo a um incidente, não vai ter tempo para consultar um manual e tentar encontrar informações importantes sobre uma nova ferramenta.

Conclusão...


O DevOps trata de romper silos e tornar o ciclo de vida do desenvolvimento mais rápido, altamente automatizado e perfeitamente colaborativo, seja multifuncional ou dentro de uma equipe. Para escolher as ferramentas de DevOps certas e que funcionem juntas é preciso, antes de mais nada, dar uma olhada no processo atual de desenvolvimento de software e operações de TI e definir onde você precisa melhorar.

Leia mais sobre as ferramentas para cada fase do ciclo de vida de DevOps.

Robert Krohn
Robert Krohn

Robert Krohn é o chefe de engenharia e DevOps da Atlassian. Ele tem mais de 20 anos de experiência em engenharia de software, gerenciamento e executiva, abrangendo software, hardware e operações, em diversos segmentos de produtos. É apaixonado por construir equipes de engenharia do mais alto nível e produtos líderes de mercado. Adora andar de bicicleta, velejar seu barco a vela e esquiar na neve. Ele mora em Belvedere, Califórnia, com a esposa Nicole, crianças, cachorros e gatos.


Compartilhe este artigo
Próximo tópico

Leitura recomendada

Marque esses recursos para aprender sobre os tipos de equipes de DevOps ou para obter atualizações contínuas sobre DevOps na Atlassian.

Ilustração DevOps

Comunidade do DevOps

Ilustração DevOps

Caminho de aprendizagem de DevOps

Ilustração do mapa

Comece gratuitamente

Inscreva-se para receber a newsletter de DevOps

Thank you for signing up