IBM DevOps: processos automatizados e focados nos produtos

O DevOps não é uma metodologia baseada apenas em recursos tecnológicos, mas também em pessoas, processos e ferramentas.

O DevOps requer colaboração entre as partes interessadas de negócios, desenvolvimento e operação para entregar e executar software confiável com agilidade. Organizações que usam ferramentas e práticas DevOps enquanto transformam sua cultura, criam uma base poderosa para a transformação digital e para modernizar os seus aplicativos, conforme a necessidade de automação se amplia nos negócios e nas operações de TI.

Uma mudança em direção a uma automação maior, deve começar com projetos pequenos e mensuráveis de sucesso, que podem ser dimensionados, otimizados para outros processos e em outras partes da sua organização. Um processo centrado no produto cria uma conexão entre o desenvolvimento, as operações e renova o compromisso de entregar o produto com mais rapidez e qualidade.

Neste artigo, vamos verificar como o DevOps tornou os processos muito mais ágeis, eficientes e colaborativos.

Como chegamos ao processo do DevOps?

Até pouco antes de 2000, a maioria dos softwares era desenvolvida e atualizada usando a metodologia em cascata, uma abordagem linear para projetos de desenvolvimento em grande escala. As equipes de desenvolvimento de software passavam meses programando grandes conjuntos de novos códigos que afetavam a maior parte ou todos os aplicativos. Como as mudanças eram muito extensas, eles tinham que passar vários meses integrando esse novo código à base de código.

Em seguida, as equipes de garantia de qualidade (QA), segurança e operações passariam ainda mais meses testando o código. O resultado era um intervalo de meses ou até anos entre os lançamentos de software. Com frequência, também eram necessários vários patches significativos ou correções de bugs entre os lançamentos. Além disso, essa abordagem “big bang” para entrega de recursos era caracterizada por planos de implantação complexos e arriscados e bloqueios difíceis de agendar com sistemas upstream e downstream. Em função disso, havia a possibilidade de que os requisitos de negócios mudassem drasticamente nos meses que antecediam o fim da produção.

Para acelerar o desenvolvimento e melhorar a qualidade, as equipes de desenvolvimento começaram a adotar metodologias ágeis de desenvolvimento de software. Esses processos são iterativos em vez de lineares e se concentram em fazer atualizações menores e mais frequentes na base de código do aplicativo. 

Entre essas metodologias, estão a integração e entrega contínuas, ou CI / CD. Nelas, pedaços menores de novos códigos são mesclados a base do código, a cada uma ou duas semanas, em seguida, automaticamente integrados, testados e preparados para implantação no ambiente de produção. O Agile evoluiu a abordagem “big bang” para uma série de “snaps menores” que também compartimentalizaram os riscos.

Quanto mais eficazmente essas práticas de desenvolvimento ágil aceleraram a entrega de software, mais elas expuseram as operações de TI ainda isoladas como o próximo gargalo no ciclo de vida de entrega de software.

Portanto, o DevOps foi elaborado para ser ágil. Ele adicionou novos processos e ferramentas que estendem a iteração contínua e automação de CI / CD para o resto do ciclo de vida de entrega do software. E implementou uma estreita colaboração entre o desenvolvimento e as operações em cada etapa do processo.

Pessoas, processos e ferramentas

Embora o domínio DevOps seja muito grande, existem alguns ganhos rápidos que podem ser obtidos para demonstrar um aumento na velocidade e na qualidade dos processos. 

Unidos em torno dessa missão singular, os desenvolvedores devem ser autorizados a desenvolver o seu produto no SDLC o mais longe possível com uma quantidade razoável de risco, conforme determinado pela empresa.

Um exemplo desse tipo de capacitação de desenvolvimento seria permitir que eles implantem o seu código em ambientes de desenvolvimento e teste de nível inferior o quanto quiserem, contanto que isso não afete a produção. A governança, que inclui processos para entrega de produtos do código à produção, deve ser bem compreendida, documentada e implementada. Ela deve contar com ferramentas capazes de garantir que qualquer produto produzido seja seguro, tolerante a falhas, tenha desempenho e atenda aos aspectos funcionais exigidos pelo usuário final. 

O ciclo de vida do DevOps

O ciclo de vida DevOps (às vezes chamado de pipeline de entrega contínua, quando retratado de forma linear) envolve uma séri