Como começar práticas DevOps no desenvolvimento de aplicações?
Acelerar o fluxo de desenvolvimento de softwares do desenvolvimento para a produção: uma urgência, mas também um desafio.
É difícil para gestores mexer nas operações. As práticas DevOps, dentro do ciclo de desenvolvimento de softwares, vieram precisamente para propor uma transformação profunda nisso.
E, pelo visto, têm sido bem-sucedidas em sua missão. Essa não é uma impressão, mas um fato.
De acordo com o relatório de DevOps de estado do banco de dados de 2021 da Redgate Software, 74% dos entrevistados disseram estar usando uma abordagem DevOps para o desenvolvimento. Além disso, quase metade afirmou usar três ou mais bancos de dados, em comparação com 30% que usam apenas uma plataforma de banco de dados.
O relatório observa ainda que as equipes de TI permaneceram notavelmente produtivas, apesar de trabalharem remotamente. 80% dos entrevistados disseram que o home office permanecerá no longo prazo, com 63% dizendo que aumentou sua produtividade.
Por isso, desde que surgiram, há 10 anos, as práticas DevOps têm se espalhado por organizações e a palavra “DevOps” tornou-se uma buzzword no mundo da tecnologia.
Mas não se engane pela juventude e pela fama: DevOps não é tão simples assim nem trivial. A implementação das boas práticas de um ciclo DevOps requer uma evolução cuidadosa para não romper com o funcionamento das atividades. Mas, como por algum lugar você tem que começar, este artigo é o ponto certo.
Neste post, a partir do conceito básico de DevOps e do ciclo DevOps, vamos trazer 5 práticas que você pode começar agora na sua organização.
O que é DevOps?
DevOps é um modelo de trabalho que une, em todo o ciclo de vida de um produto, as equipes de desenvolvimento e de operações, e por vezes de segurança (DevSecOps), para ganhar agilidade e aumentar a comunicação e colaboração em processos considerados pouco ágeis.
Portanto, não é um cargo, nem uma metodologia, nem um software, nem uma maneira de ajustar rapidamente os problemas de uma organização, mas um modo de trabalhar para melhorar e integrar práticas, processos e sistemas.
A AWS define DevOps assim:
O DevOps é a combinação de filosofias culturais, práticas e ferramentas que aumentam a capacidade de uma empresa de distribuir aplicativos e serviços em alta velocidade: otimizando e aperfeiçoando produtos em um ritmo mais rápido do que o das empresas que usam processos tradicionais de desenvolvimento de software e gerenciamento de infraestrutura.
Por aqui, gostamos muito da definição da Microsoft, que é simples e, por isso mesmo, toca o essencial:
DevOps é a união de pessoas, processos e produtos para automatizar a entrega de softwares, viabilizando continuamente a entrega de valor para os usuários.
Dada essa natureza, a adoção de práticas DevOps requer uma mudança cultural e afeta toda a organização.
Saiba mais: Modelos operacionais ágeis: como tornar a tomada de decisão mais eficiente?
Princípios DevOps
A cultura DevOps engloba uma série de princípios que permite que equipes de desenvolvimento e operações de software trabalhem em conjunto, de forma eficiente, a fim de entregar produtos de qualidade com mais rapidez.
Para que a sua empresa seja bem-sucedida na adoção ou migração para práticas DevOps, elencamos 6 princípios fundamentais para estabelecer e manter o alto desempenho.
1. Ação centrada no cliente
Todas as atividades de construção de produtos e serviços de TI devem estar pautadas na satisfação do cliente. Para isso, é essencial ter ciclos de feedback com o usuário final, proporcionando às equipes de desenvolvimento e operações afinarem o trabalho.
2. Objetivo comum
Abandonar os modelos em cascata e orientados a processo é uma forma eficiente de mudar a mentalidade da equipe para que todos os envolvidos pensem no quadro geral e não apenas em suas funções específicas. Quando todos trabalham por um objetivo é mais fácil chegar ao resultado esperado.
3. Responsabilidade de ponta a ponta
Os produtos ou serviços de TI criados e fornecidos por equipes DevOps permanecem sob a responsabilidade desses grupos, desde o conceito até o fim. Isso aumenta muito o nível de responsabilidade sobre as entregas e a qualidade dos produtos/serviços planejados.
4. Equipes multifuncionais
As equipes DevOps costumam ser verticais e totalmente independentes durante o processo de desenvolvimento e operações dos softwares. Isso requer um conjunto equilibrado de habilidades e também a necessidade de membros da equipe com perfis mais generalistas.
5. Melhoria contínua
Em uma cultura DevOps, o foco é colocado na melhoria contínua dos processos, a fim de minimizar o desperdício, otimizar a velocidade e os custos da entrega e, assim, melhorar continuamente os produtos/serviços oferecidos. A experimentação é, portanto, uma atividade importante para desenvolver uma forma de aprender com as falhas.
6. Automação dos processos
Automatizar não apenas do processo de desenvolvimento de software, mas de todo o cenário da infraestrutura, é sinônimo de impulso para renovar a forma como a equipe DevOps presta seus serviços.
Ciclo DevOps
O DevOps reúne ferramentas, práticas e princípios que vão integrar os times de modo a diminuir esse ciclo de desenvolvimento. Assim, os problemas são mais facilmente vistos, o tempo de correção é menor e, em virtude da troca constante, o resultado final é melhor.
O ciclo de vida do DevOps compreende diferentes estágios. São eles:
Plano: planeje-se em relação ao tipo de aplicativo que você precisa desenvolver.
Código: codifique o aplicativo de acordo com os requisitos do cliente.
Construção: Construa o aplicativo realizando a integração dos códigos da etapa anterior.
Teste: Experimente o aplicativo que você construiu até agora. E o aplicativo reconstruído, se necessário.
Versões: É hora de lançar o aplicativo.
Implementação: Implemente o código em um ambiente de nuvem para uso posterior.
Operação: execute a operação no código, se houver.
Monitoramento: Monitore o desempenho do aplicativo de acordo com os requisitos do cliente.
As práticas DevOps ajudam times a desenvolver produtos de maneira eficiente, cooperativa e consistente. Que práticas são essas?
Gestão visual: Crie seu value stream map para que toda a equipe possa visualizar onde entrega valor para o cliente e onde não entrega e use-o como direcionamento para o processo de melhoria contínua em suas operações.
Integração contínua (CI): Em vez de manter o trabalho de alteração dos códigos em cada desenvolvedor isolado, o que pode gerar incompatibilidade e efeitos ruins sobre o sistema, na CI tudo é reunido em um tronco com sistema de controle de versão, onde também são executados testes automatizados que validam e detectam bugs. Se ocorrer um erro, ele é imediata e facilmente corrigido, garantindo a qualidade, funcionalidade e estabilidade do sistema, assim como compatibilidade do tronco.
Distribuição contínua (CD): Torna as alterações dos códigos automaticamente preparadas para a produção, permitindo o lançamento de novas funcionalidades em sistemas enquanto elas estão sendo desenvolvidas, em vez de apenas em uma determinada data de lançamento.
Microsserviços: Arquitetura que sai do modelo monolítico acoplado para serviços simples e independentes – com seu próprio processo e função única, mas ligados por APIs –, flexibilizando e reduzindo a sobrecarga da atualização de aplicativos e permitindo uma operação mais rápida.
Monitoramento contínuo: Informação sobre a performance da aplicação e padrões de uso. Essa informação será usada para melhorias, retornando ao começo do ciclo. Afinal, graças ao monitoramento contínuo, os profissionais de DevOps podem observar e detectar problemas de conformidade e ameaças à segurança. O monitoramento também ajuda as equipes a estudar métricas relevantes e a resolver problemas em tempo real quando eles surgem.
Leia também: Como gerenciar profissionais de TI sem microgerenciamento?
Minha organização precisa de DevOps?
As práticas DevOps surgiram e prosperaram em áreas de desenvolvimento de softwares, onde foram implementadas para confrontar modelos tradicionais de trabalho como o de cascata, em que há pouca ou nenhuma conexão entre os times. Seus adotantes iniciais foram empresas como Amazon, Adobe e Netflix, mas também Target e Walmart.
Se você não é da área de tecnologia, não tem infraestrutura na cloud e pensa que as práticas DevOps não são para a sua empresa, veja isto.
Embora o DevOps tenha nascido com a ida para cloud, isto é, com a ida para uma infraestrutura elástica e conteinerizada em que a automação é mais fácil, isso não significa que ele não possa beneficiar ecossistemas on-premise, sobretudo quando a ideia é migrá-lo para a cloud.
Certamente, sua organização utiliza algum software em seus processos de negócio. E certamente, seu jeito de fazer negócios não é mais o mesmo do que há 10 anos. A mudança é uma constante!
Agora, se seus sistemas não saíram ainda da primeira versão, sua organização está colocando o seu futuro em risco.
DevOps, como agile, é uma maneira de ajudar times a trabalhar juntos em direção a seus objetivos. Para isso, envolve colaboração, comunicação e melhorias operacionais contínuas. Esses requisitos são necessários para todas as organizações crescerem.
Que práticas DevOps eu posso adotar agora
Como dissemos, não se contrata nem se adquire um sistema DevOps. Trata-se de um ajuste cultural e procedimental que afeta toda a organização e para o qual, embora exista muita literatura, não existem manuais de como fazer.
Justamente por isso, implementá-lo efetivamente é tão difícil, além de ser um processo bem particular a cada organização, dependente da sua infraestrutura de TI e da estrutura corporativa.
A boa notícia é que alguns dos princípios desse modo de trabalhar podem ser implementados agora. Vejamos alguns deles.
1. Coloque as pessoas acima dos planos, processos e ferramentas
Se está nos seus planos implementar práticas DevOps, prepare-se. Você vai precisar de um grande esforço para fazer todo mundo entender que a prática cria valor para toda a organização, gerando uma mudança real de cultura e mentalidade.
Numa organização, sobretudo grande, é muito fácil colocar os processos e as ferramentas acima de tudo e se fechar dentro desse mindset, não tanto porque ele faça sentido, mas por ser o jeito que as coisas sempre foram realizadas.
Independentemente dos responsáveis por isso, cabe avaliar se colaboradores, stakeholders e, principalmente, clientes estão se beneficiando da sua mentalidade atual.
Dentro das práticas DevOps, assim como agile, não há processo tão perfeito e bem feito que não possa ser melhorado. Venda essa ideia para os times. Esse princípio gera uma abertura à mudança e à experimentação.
2. Fazer gerenciamento visual
Um dos requisitos, de acordo com a Microsoft, para implementar práticas DevOps é passar algum tempo estudando o modo como seus processos funcionam neste exato momento. É a partir deles que você vai avaliar o que está funcionando bem e o que não está, priorizando, então, o que ajustar primeiro.
Veja: para ser capaz de melhorar alguma coisa, você precisa conhecê-la com total transparência. Identifique o que está funcionando – onde a equipe cria valor - e o que pode ser melhorado – porque não cria valor – em todos os aspectos: das operações, passando por ferramentas até os resultados. O Google tem este teste rápido.
Esse trabalho nada mais é do que a construção de um Value Stream Map (VSM), ou seja, uma apresentação visual bem detalhada de seus processos e do tempo que eles demoram para acontecer, de ponta a ponta.
Observado com clareza onde o processo gera valor e onde não gera, você saberá onde deverá agir. Evidentemente, o VSM não diz para você o que você precisa fazer, mas dá um direcionamento objetivo.
3. Comece a trabalhar em lotes pequenos, mas frequentes
A partir do seu VSM, você vai poder traçar objetivos e resultados específicos, mensuráveis e com um prazo.
Atenção: seja pequeno. Não queira fazer tudo de uma vez. É mais rápido construir pequenas mudanças do que grandes, que são mais difíceis de validar e de manter.
Aqui, você vai trabalhar à luz do ciclo de práticas DevOps que vimos acima. Pergunte-se quais das atividades que não geram valor podem ser automatizadas ou englobadas em outras fases que geram valor.
4. Envolva o time na escolha das ferramentas
Há várias ferramentas que você pode usar para ajudar a colaboração do time, construção, teste e implementação com CI/CD. Equipe seu time com ferramentas que possam agilizar a rotina e que sejam confortáveis. Para isso, deixe que a equipe participe da escolha delas.
Essa prática é bem comum em empresas como Google e Netflix, que veem o empoderamento como uma espécie de corresponsabilização sobre sistemas e custos.
Para isso, elas selecionam áreas transversais e representantes de diferentes times, que estabelecem um amplo conjunto de ferramentas para atuar sobre as necessidades da organização.
Também recomendam a revisão periódica de ferramentas, que trazem a oportunidade de discutir novas tecnologias. E, por fim, o uso de processos para documentar a utilização de ferramentas fora do conjunto já utilizado.
5. Crie uma cultura DevOps
Criar uma cultura DevOps significa mudar paradigmas organizacionais integrando as equipes de desenvolvimento e operações a fim de entregar produtos e serviços com qualidade e agilidade.
Nesse sentido, estar alinhado à cultura DevOps exige processos internos eficientes e que gerem satisfação ao cliente. Assim, podemos dizer que o DevOps é uma abordagem criada para garantir que a alta qualidade de softwares chegue aos usuários finais com excelência.
Isto é, aplicar as melhores práticas de desenvolvimento é uma evolução no modo de ser das organizações. E isso significa aplicar as melhores práticas de desenvolvimento, testes e entrega de produtos e serviços.
Um dos principais resultados da cultura DevOps para a empresa, além do produto/serviço melhor desenvolvido é a confiança, a colaboração, a responsabilidade coletiva e o aprendizado dos profissionais.
6. Inovação contínua
Muitas organizações param no tempo, ou seja, perdem sua capacidade de inovar quando conseguem chegar a certos patamares e portes. Segundo a Microsoft:
Pesquisadores mostram que os mais bem-sucedidos usuários DevOps estão continuamente monitorando e testando, regularmente ajustando processos às suas necessidades e integrando segurança a seus sistemas.
Bom, isso nada mais é do que inovar continuamente. Já falamos em um artigo sobre gestão da inovação que isso não é fácil, sobretudo diante da gestão do dia a dia, que toma boa parte de nossas preocupações imediatas.
Veja: Inovação digital: quais as melhores práticas para alcançar?
O que esperar do DevOps: benefícios e ROI
Sem dúvidas a automação de processos com as práticas DevOps trouxe inúmeros benefícios para a operação e o desenvolvimento de softwares, com a redução de riscos de erros.
Além disso, outras vantagens foram percebidas pelos adeptos dessa abordagem que vem ganhando cada vez mais força nas organizações que desejam se manter competitivas no mercado.
Entre as principais, podemos citar:
- Mais velocidade e menor custo de lançamento
- Menor volume de defeitos;
- Maior frequência de novos recursos;
- Desempenho aprimorado do aplicativo;
- Melhor tempo médio de recuperação;
- Taxa de falha de mudança mais baixa;
- Menor número e custo de recursos;
- Aumento na motivação da equipe;
- Ambiente colaborativo entre profissionais;
- Melhora a qualidade da comunicação.
Mas, e como medir o sucesso do DevOps?
Para medir o ROI das práticas DevOps é indicado se basear nos 3 componentes principais dessa filosofia: pessoas, processos e tecnologia.
Veja como funciona na prática:
- Pessoas
Concentre-se na produtividade e na qualidade do trabalho. Descubra quanto tempo o profissional leva para concluir cada tarefa e como eles estão sendo entregues.
- Processos
Mensure velocidade, relevância, eficácia e eficiência no trabalho. As pesquisas de feedback com o cliente podem ajudar a vincular valores numéricos à qualidade, ao desempenho e à experiência com o produto.
- Tecnologia
As métricas de tecnologia medem hardware, software e funções de serviço. A taxa de falha de software se conecta diretamente às métricas de desenvolvimento e implantação.
DevOps: as práticas que levam à perfeição
Por fim, a adoção de práticas DevOps não é mais uma questão de "se", mas de "quando".
Ainda bem, pois elas vão ajudar seu time a implementar mais frequentemente melhorias, mais rapidamente e com menos falhas. Isso ajudará sua equipe a se adaptar a novos cenários com facilidade, a experimentar mais e a ter mais resiliência para resolver problemas.
Mas lembre-se: adotar todas as práticas DevOps é um processo gradual, no qual chegar à maturidade leva tempo e muita prática.
Comece pelos pontos que trouxemos neste artigo e aja sobre suas principais dores, para sentir os benefícios do modelo e validá-lo, gerando um círculo virtuoso de engajamento.
Quer ajuda no processo? Fale conosco!