DevOps
DevOps é uma cultura da engenharia de software que une as equipes de desenvolvimento (Dev) e operações (Ops), visando melhorar a comunicação, automação e monitoramento em todas as fases do ciclo de vida do software. Essa abordagem auxilia as empresas a gerenciar lançamentos de novas versões de forma mais eficiente, padronizando ambientes, reduzindo ciclos de desenvolvimento, aumentando a frequência e segurança das implantações, e alinhando-se aos objetivos de negócio.
Pontos-chave
- DevOps é uma cultura que integra desenvolvimento e operações para otimizar a entrega de software.
- Seu foco principal é melhorar a comunicação, automação e monitoramento contínuo.
- A metodologia visa ciclos de desenvolvimento mais curtos, implantações mais frequentes e seguras.
- O termo foi popularizado a partir de 2009 com eventos como o "DevOps Days".
- Ferramentas e um Coordenador de Lançamento são cruciais para o sucesso da implementação DevOps.
O termo DevOps é uma junção das palavras em inglês 'development' (desenvolvimento) e 'operations' (operações), que em português significa a união do desenvolvimento de software com as operações de tecnologia.
O conceito de DevOps surgiu no evento Velocity em 2009, após a palestra "10+ Deploys Per Day: Dev and Ops Cooperation at Flickr" de John Allspaw e Paul Hammond. Inspirado por essa apresentação, Patrick Debois, considerado o criador do termo, organizou o primeiro "DevOps Days" na Bélgica no mesmo ano, popularizando a abordagem. Diferente de metodologias ágeis tradicionais que podem segregar departamentos, DevOps promove a comunicação e colaboração entre desenvolvimento, operações de TI e controle de qualidade.
Impacto nos Lançamentos de Aplicações
Em um ambiente DevOps, os lançamentos de aplicações se tornam menos estressantes e de menor risco. Isso ocorre pela adoção do desenvolvimento iterativo ou ágil, que resulta em lançamentos mais frequentes com menos mudanças por vez, criando uma progressão suave na aplicação. Além disso, um coordenador de lançamentos forte e o uso de ferramentas de colaboração (como planilhas, teleconferências, mensagens instantâneas, portais corporativos e wikis) garantem comunicação eficaz e cooperação total entre as equipes envolvidas.
DevOps não se baseia em uma única ferramenta, mas em um conjunto (ou "cadeia de ferramentas") que suporta o trabalho interfuncional. Essas ferramentas se encaixam em diversas categorias que refletem aspectos-chave do processo de desenvolvimento e entrega de sistemas. Algumas categorias são consideradas mais essenciais, como as de integração contínua (ex: Jenkins) e infraestrutura como código (ex: Puppet).
Imagem: darrel_rader · BY-SA · Openverse
O Coordenador de Lançamento é uma função emergente na TI corporativa, responsável por coordenar a implantação de softwares da empresa até os ambientes de pré-produção. Essa necessidade surgiu da complexidade dos lançamentos. Similar a um operador de tráfego aéreo, o coordenador gerencia atividades em tempo real entre diversas equipes para garantir o objetivo final. Ele se diferencia do gerente de lançamento (focado no planejamento e aviso de mudanças) e do engenheiro de lançamento (preocupado com o trabalho técnico de construção e implantação do código).


