Os desafios na adoção do DevOps

Muitas corporações, pequenas ou grandes, já implementaram ou mudaram para adotar práticas DevOps em seu dia a dia, buscando melhorar a produtividade, o fluxo de trabalho ou ter maior retorno sobre o investimento.
O DevOps incentiva a colaboração, comunicação, entrega de valor entre equipes de desenvolvimento e operações em todos os estágios do Ciclo de Vida do Desenvolvimento de Sistemas (do inglês SDLC – systems development life cycle).
A integração desses times permitirá trabalhar por um objetivo comum: a entrega de um sistema rápido, eficiente e seguro.
Uma avaliação DevOps em sua instituição o ajudará a entender quais passos tomar para ter maior retorno sobre o investimento, fazendo com que sua área de negócios responda mais rápido e atendendo às necessidades da empresa.
O objetivo do DevOps é entregar automação e integração, porém sua implementação pode ser desafiadora em algumas companhias. Substituir métodos antigos por novas técnicas ou processos é uma tarefa difícil de alcançar.
Vamos dar uma olhada em certos obstáculos comuns na adoção do DevOps e algumas maneiras de vencê-los durante sua implementação.
Infraestrutura tradicional para cloud ou microsserviços
Pode ser um grande problema, mesmo tendo servido por anos para uma organização, mas com o tempo ela começará a ter problemas com a falta de suporte, estabilidade e segurança.
O fato é que se ainda usa uma infraestrutura tradicional, você já está muito desatualizado e ficará para trás na corrida do crescimento exponencial das organizações modernas.
Para saber se a sua é tradicional, devemos considerar algumas questões:
- Ela expande ou retrai conforme a demanda dos seus clientes ou usuários de maneira automática?
- Ela tem automação e resiliência para suportar de modo automático uma queda de uma região ou datacenter?
- Seu time de operações consegue entregá-la para a equipe de desenvolvimento de forma automática e segura?
- Seu time de operações tem a infraestrutura escrita como código, usando tecnologias para automatizar o deploy em caso de necessidade?
Se respondeu "não" a qualquer uma das perguntas acima, sua infraestrutura é tradicional. Se disse "sim" a todas, pule para o próximo tópico.
Caso esteja utilizando um Cloud Service Provider como AWS, Azure ou Google Cloud, não se deixe enganar por achar que suas operações atendem aos requisitos contemporâneos.
Organizações modernas e altamente competitivas devem estar preparadas. Com a realidade dos microsserviços, ter uma infraestrutura que responda na velocidade que o negócio demanda é fundamental para uma boa estratégia.
Ferramentas de integração de domínios distintos
É um dos pilares do DevOps. Todas elas precisam ser integradas para os testes, validações, implantação e construção do ambiente de forma adequada para que funcionem juntas e de maneira contínua.
O desafio é realizar o funcionamento de modo colaborativo, trazendo a eficiência e a segurança necessária.
No momento de escolher as ferramentas, aspectos técnicos, de negócio, integração, entre outras características, são fundamentais para o sucesso.
Mudança dos processos atuais para processos ágeis
O melhor método de identificar ineficiência é mapear e descobrir o que está e o que não está funcionando.
Podemos começar por onde identificamos o desperdício de recursos, o esgotamento ou a falta de entrega de valor adequado.
Alguns gestores, equipes ou áreas podem ser resistentes à implantação de mudanças e isso causará atraso desnecessário ao negócio e à organização em geral.
Importante notar que não são apenas os desenvolvedores de softwares os responsáveis por avaliar seus processos e se estão adequados para eles.
O DevOps combina as equipes de desenvolvimento de software, operações e outras áreas da empresa interessadas na TI para atingir os objetivos em comum do negócio e entregar ao mercado algo mais rápido e com maior qualidade.
Stacks de ferramentas para desenvolvedores e operações
Um dos maiores desafios do DevOps são as milhares de ferramentas existentes para equipes de desenvolvimento e operações. Identificar cada uma delas, suas funcionalidades e características é fundamental para uma boa integração desses times.
Dar autonomia aos grupos de desenvolvimento e operações sem uma estratégia claramente definida é como construir um castelo de cartas com dois times separados: enquanto um iniciará pelo topo, o outro começará pela base. Depois deverão movê-los e conectá-los para formar o castelo. Isso não existe!
Para tudo funcionar corretamente, as stacks devem ser bem escolhidas e integradas, suprindo as necessidades de ambos.
Novas ferramentas
Todos os dias elas surgem e parecem resolver qualquer problema. Podemos ter todas, mas é fundamental que os grupos sejam bem treinados e possam utilizá-las de maneira correta e eficiente.
Uma condição essencial é que essas ferramentas atendam aos requisitos de segurança, sejam integradas ao sistema atual, fazendo que a companhia não desvie seu foco para um incidente de segurança.
Além disso, uma boa estrutura e um bom time são indispensáveis para o sucesso do DevOps. O progresso da equipe vai melhorar se a organização for bem planejada.
Uma instituição deve focar pessoas em vez de ferramentas. Ao mudar para o DevOps, os membros de uma equipe são os mais críticos nesse processo.
Surgirão muitos problemas graves se eles não forem treinados do modo correto para o uso das ferramentas.
Resistência à mudança
Pode ser assustadora para alguns, inclusive os principais interessados. Dizer que alguém precisa mudar pode ser encarado como um feedback ruim por ele.
A mudança para DevOps não será de um dia para o outro, mas ocorrerá gradualmente. Como as pessoas participarão, lentamente elas irão absorver o conceito.
Com o passar do tempo, os integrantes começam a absorver a cultura DevOps e passam a contribuir para a adoção na organização, até que eles comecem a cooperar, da sua forma, para que o produto evolua, a cultura continue a crescer e a organização como um todo comece a se beneficiar.
Experimentar… experimentar a cultura e novos processos em um grupo reduzido, com um produto pequeno ou parte de um aplicativo é uma excelente forma de criar a cultura DevOps dentro da corporação.
Se a equipe puder ver os benefícios da cultura DevOps, outras irão perceber e compartilhar as experiências em um ambiente saudável ajudará outros grupos a também desejarem adotar a cultura.
Isso vai favorecer para que as organizações entrem no DevOps, continuem crescendo e se modernizando.
Conclusão
Vimos diversas situações e características que ameaçam o sucesso da adoção do DevOps nas empresas. Se você deseja adotá-lo, busque as melhores maneiras de aderir a essa cultura, modernizar-se frente aos seus concorrentes, mas faça isso com paciência, suporte e comprometimento necessários para o sucesso.