Bem-vindo à primeira parte da nossa série sobre DevOps! Neste post, falaremos sobre a definição da prática e quais tipos de problemas ela vem solucionar.

O software tornou-se predominante na maioria das empresas e nas atividades humanas diárias, pois produtos e serviços dependem de sistemas que ofereçam maior segurança e confiabilidade durante as operações. Por isso, as empresas que possuem a capacidade de desenvolver produtos com maior rapidez e qualidade, obtêm melhores resultados no mercado.

Todavia, quase toda empresa de tecnologia enfrenta um conflito inerente entre desenvolvimento e operações de TI, conhecido como conflito crônico básico, que resulta em um tempo cada vez maior para comercializar novos produtos e recursos (KIM, HUMBLE e DEBOIS, “et. al”, 2018).

Nesse contexto, no final de 2008, surgiu um modelo no mercado chamado DevOps, tendo como princípios essenciais:

  • O envolvimento da função de TI em cada fase do fluxo de desenvolvimento de um sistema;
  • A alta dependência de automação em comparação com esforços humanos;
  • A aplicação de práticas e ferramentas de engenharia em tarefas de operação.

A utilização de DevOps possibilitou que Desenvolvimento, QA (Quality Assurance), Operações de TI e InfoSec (Segurança da Informação) trabalhem juntos, não apenas para ajudar uns aos outros, mas também para garantir o sucesso da organização como um todo (KIM, HUMBLE e DEBOIS, “et. al”, 2018).

Para possibilitar as implementações de mudanças constantes em um ambiente de produção, são necessárias a adoção de normas culturais, práticas técnicas e arquitetônicas, possibilitando manter o fluxo de trabalho rápido do desenvolvimento e operações sem causar caos e interrupção no ambiente de produção.

Portanto, esta série tem como finalidade apresentar conceitos resumidos de DevOps, conjunto de normas culturais e práticas técnicas. Além disso, também serão apresentados benefícios e prova de conceito desse modelo, através de relatórios e pesquisas conduzidas por empresas renomadas e amplamente reconhecidas.

Fonte: Freepik (Editada pelo Autor)

Definição de DevOps

DevOps são normas culturais, práticas técnicas e arquitetônicas que aumentam a capacidade de uma empresa em distribuir sistemas e serviços, bem como otimizar e aperfeiçoar produtos num ritmo mais rápido, quando comparado a empresas que usam processos tradicionais de desenvolvimento de software e gerenciamento de infraestrutura. Essa agilidade permite que as empresas atendam melhor aos seus clientes e consigam competir de modo mais eficaz no mercado (AWS, 2023).

As práticas DevOps representam a convergência de movimentos filosóficos e gerenciais, baseadas em gestão de mudanças que proporcionam maior qualidade, confiabilidade, estabilidade, segurança e menores custos. Além disso, aumenta a velocidade e a confiança em todo o fluxo de valor tecnológico, incluindo Gerência de Produtos, Desenvolvimento, QA, Operações de TI e Infosec (KIM, HUMBLE e DEBOIS, “et al”, 2018).

Fonte: Freepik

Problematização

A maioria das empresas são incapazes de implementar mudanças no sistema de produção em minutos ou horas, em vez disso acabam levando semanas ou meses para a realização do processo (KIM, HUMBLE e DEBOIS, “et al”, 2018).

As implementações de produção geram interrupções devido aos conflitos entre as equipes, pois de um lado a equipe de desenvolvimento de software tem o objetivo de lançar atualizações com novos recursos o mais rapidamente possível e do outro lado a equipe de operações tem o objetivo de manter a confiabilidade, estabilidade e segurança do sistema.

Como a maioria das interrupções são causadas por atualizações, os objetivos das equipes estão constantemente em divergência. Conforme Kim, Humble e Debois, “et al” (2018), esse problema é chamado de conflito crônico básico e traz uma série de desvantagens e consequências como:

  • Longo tempo de publicações de novos produtos e recursos em um mercado de trabalho competitivo e que exige um curto tempo de comercialização;
  • Tempo de interrupções de sistemas maiores e que aumentam cada vez mais devido ao aumento de complexidade e volume de tráfego;
  • Alto custo gerado pelo aumento proporcional de demandas manuais de administrador de sistema, bem como ao aumento de complexidade e volume de tráfego.

As normas culturais e práticas DevOps proporcionam uma maior capacidade de distribuição de sistemas e serviços, pois consequentemente soluciona o problema de conflito crônico básico, considerando que suas consequências estão diretamente relacionadas ao longo tempo de implementações de mudanças e à confiabilidade dos sistemas.

(Kim, Humble e Debois, “et al”, 2018; Murphy, Beyer e Jones, “et al”, 2016).

Fonte: Freepik (Editada pelo Autor)

Esse artigo foi escrito por André Carvalho, Engenheiro DevOps na SysMap.

No próximo post, mergulharemos mais a fundo na cultura DevOps. Confira a série completa: