DevOps – Parte 1: Definições e Objetivos
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.
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).
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).
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: