Você sabe o que é DevOps? Apesar de não ser um termo novo, DevOps tem ganhado cada vez mais notoriedade nos últimos anos — suas primeiras aparições foram em 2009 na Velocity Conference e na primeira edição do DevOpsDays em Ghent, Bélgica. Em 2018, Florianópolis recebeu pela primeira vez o evento DevOps Days. Colaboradores da Bry participaram da conferência, que reuniu experts da área e abordou assuntos técnicos e culturais sobre o assunto. Entenda mais sobre essa cultura que tem ganhado cada vez mais notoriedade nos últimos anos!
DevOps é um conjunto de práticas que visam integrar processos de desenvolvimento de software através de uma cultura de colaboração entre equipes. Tradicionalmente, os softwares são desenvolvidos por equipes que trabalham de maneira e com objetivos opostos: desenvolvimento e operações.
Esta cultura tem como base diversos conceitos oriundos do Lean e Manifesto Ágil, que se materializam na automação de processos repetitivos através da utilização de ferramentas e práticas confiáveis e seguras. Essas ferramentas podem (e devem) ser compartilhadas e melhoradas continuamente por todos os envolvidos no processo, tendo em vista uma entrega de software mais ágil e com maior qualidade.
Os valores do movimento DevOps foram definidos, por John Willis e Damon Edwars, em 2010, através do acrônimo CAMS: Culture, Automation, Measurement and Sharing. Objetivamente, o que eles querem dizer com isso é: quebre as barreiras entre áreas e equipes através da cultura; automatize para aumentar a produtividade, confiabilidade e uniformizar processos; meça para avaliar se estão seguindo no caminho certo e compartilhe descobertas, lições aprendidas e ferramentas, para criar um ambiente de aprendizagem organizacional.
As dificuldades mais comuns em organizações que ainda não adotaram DevOps são: tempo perdido na execução de trabalho manual, falta de uniformidade nos processos de desenvolvimento, alto índice de retrabalho e conflitos entre diferentes áreas devido a objetivos opostos (estabilidade versus agilidade). Todos estes desafios resultam em uma baixa performance e qualidade na entrega de software, gerando desgaste nas relações entre colaboradores e áreas. Consequentemente, isso impacta na geração de valor para o elemento mais importante de toda esta cadeia para qualquer empresa: o cliente.
Os benefícios da adoção de DevOps são diversos, fazendo com que empresas consigam atender demandas com mais agilidade, eficiência e confiabilidade, aumentando sua capacidade de inovar e assim tornando-se mais competitivas. Podemos classificar os benefícios através de diferentes perspectivas, como técnicos, culturais e de negócios:
Técnicos:
Culturais:
Negócios:
O relatório anual “State of DevOps Report”, maior e mais completo estudo sobre DevOps do mundo, traz números que demonstram estes benefícios na prática, através de dados coletados de empresas em suas pesquisas. Empresas classificadas como de alta performance conseguem superar empresas de baixa performance em diversos aspectos, como:
A Bry está em processo de implementação da cultura DevOps, e como você já pode imaginar, enfrentando uma série de desafios. Durante este período, já é possível avaliar que algumas questões são importantes para que esta nova cultura gere resultados:
1. Ferramentas são importantes, mas não são tudo. É necessário organizar o processo de trabalho antes de pensar em ferramentas que vão automatizá-lo. Priorizar a tecnologia em um primeiro momento seria o mesmo que arrumar o retrovisor de um carro que o motor não funciona e achar que o problema será resolvido. Existem mais de uma centena de ferramentas, mas é fundamental entender o problema a ser resolvido, para que, posteriormente, se possa definir o melhor recurso para resolvê-lo.
2. O DevOps é realmente uma questão cultural. E ela precisa emergir dos times. É necessário mudar o mindset de quem está envolvido no processo. Para isso, as pessoas precisam ver valor no que está sendo feito.
3. É importante colocar em prática. Esperar pelo “melhor momento” para começar a colocar uma ideia em ação não é a melhor abordagem. Contar com a hipótese de que haverá um tempo disponível entre uma implementação e outra para “colocar a casa em ordem” pode fazer com que a iniciativa fracasse antes mesmo de começar. É necessário que gestores, líderes e equipe definam uma parcela do tempo do trabalho rotineiro para processos de melhoria e inovação. Sem isto, dificilmente haverá uma evolução significativa do processo como um todo.
“Improving daily work is even more important than doing daily work.”
― Gene Kim, The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win
Adotar DevOps é um processo gradual que exige não apenas dos colaboradores e líderes das áreas de desenvolvimento e operação, mas todas as pessoas envolvidas de alguma forma no processo de entrega de software. Envolve os responsáveis pela comunicação interna e organizacional dos times. Abrange os demais setores da empresa, que devem incentivá-los e apoiá-los a mudar o conceito e a mentalidade sobre o modo de trabalho.
Assim como há diversos caminhos para se chegar ao sucesso na evolução deste processo de mudança, há muitos outros para o fracasso. Naturalmente, cada organização traça seu próprio caminho, que na maioria das vezes não será linear. Neste sentido, o State of DevOps Report 2018 auxilia as organizações a traçar um caminho para esta evolução, através de 5 (+1) estágios:
0. Construa uma base sólida: pessoas com um mindset direcionado a criação de um ambiente de compartilhamento de ideias, conhecimento e ferramentas para suportar o processo.
1. Normalize sua stack de tecnologia: adote uma metodologia ágil de desenvolvimento, uniformize o uso de ferramentas de desenvolvimento, elimine redundâncias entre sistemas que realizam a mesma tarefa.
2. Padronize e reduza variabilidade: desenvolvimento e operações continuam na tarefa de normalizar a stack de tecnologia, avançando no sentido de reduzir a variabilidade de sistemas operacionais, bancos de dados, serviços de fila, caches de chave-valor, etc.
3. Expanda as práticas DevOps: com uma base sólida e redução de variabilidade, avance na melhoria do processo de deploy, reuse padrões de entrega entre projetos, teste infraestrutura.
4. Automatize a entrega de infraestrutura: automatize o provisionamento de infraestrutura e configurações de sistemas.
5. Proveja recursos self-service: por fim, com todos os estágios anteriores ajustados, você deve prover recursos (ambientes, configurações, infraestrutura, etc.) sob demanda, de maneira automatizada.
Seguindo este caminho, através dos estágios propostos, sua organização deve ser capaz de dar liberdade para todas as áreas do negócio atuarem em seu próprio ritmo. Elimina-se processos burocráticos e manuais, longas filas de espera para atendimento de simples demandas., Dessa forma, toda a organização pode usufruir dos benefícios de um modo de trabalho mais eficiente.
Sem dúvidas, a cultura DevOps tem mudado a maneira como trabalhamos. O fluxo precisa ser continuamente revalidado, para ajustes que promovam melhorias e removam restrições. Aplicar as práticas propostas impulsionará sua empresa no caminho da competitividade e da alta performance, crucial para a concorrência na indústria de software atual, entregando valor mais rápido ao cliente e alavancando resultados.
Você enfrenta desafios relacionados à adoção da cultura DevOps em sua empresa? Conte-nos sobre sua experiência.