Bruno Eugênio

Development and Operations, DevOps… Seja como for chamado, o termo vem sendo usado em larga escala nos últimos dois anos por profissionais de TI quando precisam gerar uma resposta ao quase sempre doloroso processo de entrega de software em  produção: todos querem que este processo seja rápido, seguro e confiável. Porém, antes de subir no bandwagon, vale a pena observar alguns pontos para saber se você e sua empresa estão prontos para começar o processo de mudança cultural que o termo exige… Com base em experiências passadas como consultor e desenvolvedor vou narrar cinco tópicos que andam esquecendo por ai. Vem comigo!

 

1 – Você precisa mudar a cultura de desenvolvimento e a cultura organizacional antes de pensar em DevOps.
Sim, Você vai precisar mudar o modo de pensar sobre software na sua organização. Todos envolvidos no processo de desenvolvimento e infraestrutura precisam entender que a velocidade e a estabilidade que as empresas que têm a cultura “no sangue” como às gigantes Google e Facebook só se tornam realidade quando todos falam a mesma língua, com todos entendendo o valor das suas ações. Você pode colocar a ferramenta que promete fazer a maior automação do mundo no seu ambiente mas não será ela que vai lhe garantir entregas sem dor. Antes de gastar dinheiro em uma bazooka, comece usando este dinheiro para contratar bons profissionais que gostem de automação, de infraestrutura, de código e sejam motivados pela cultura de desenvolvimento de onde trabalham.

 

2 – Adotar DevOps é um processo doloroso quando feito de maneira tardia
Outro problema que muita gente negligencia quando falam de DevOps é que, além da cultura organizacional, é complexo mudar todas as partes de infraestrutura de código, servidores, mapa de rede e fluxos de release de código quando temos softwares que já estão “maduros” em suas linhas de produção. Este problema é relacionado com o problema anterior: Quando a cultura estabelecida não leva em consideração ter releases rápidos, testados e com uma infraestrutura que suporte tudo isso, não será a adoção de práticas de DevOps que vai melhorar isso. Também não será o time de analistas, product owners e outras peças envolvidas no processo que não tem o sentimento de melhoria, de agilidade e de mudança que vão fazer a dor diminuir.

 

3 – DevOps não é uma área, não tem um responsável e não é sobre ferramentas…
Sim, o maior erro que você pode cometer é delegar o processo de DevOps a uma área como a Engenharia de Configuração e Mudanças (SCM). Aqui entra um ponto interessante: Bons engenheiros de configuração são pessoas obcecadas por automação. Hoje em dia, é possível que um bom engenheiro de configuração lidere o processo de mudança de entregas de software da organização com base em automações, hackeando ferramentas e afins MAS ele sozinho não vai mudar nada se o software não for preparado desde o começo para ser entregue de maneira segura e confiável. Ferramentas também podem agravar o problema, em especial aquelas que prometem fazer a automação e configurações de maneira genérica: um tamanho não cabe em diversos modelos e forçar a barra neste quesito é um dos erros capitais de quem tenta por em prática DevOps.

 

4 – Você vai precisar adaptar ou reescrever muita coisa
Uma verdade que poucos querem enfrentar ao pensar nos benefícios que a sinergia entre development e operations traz é que não será necessário adaptar ou reescrever softwares já existentes e consolidados para que eles sejam aptos a responder às mudanças de maneira segura e ágil (culpa das ferramentas? de quem vende? não sei). Você vai precisar envolver seu time de desenvolvedores e dizer que vai precisar de um esforço para adaptar arquiteturas, repensar modelos e acoplar ferramentas que vão ajudar seu time a entregar software sem dor.  Há uma tendência, por exemplo, em trabalhar com Microservices como modelo de arquitetura que facilita a entrega de código com impacto menor, já que o software é distribuído. Grandes empresas como a Microsoft já tiveram de reescrever grandes produtos como o Microsoft Office, que era uma aplicação Desktop e evoluiu para uma plataforma SaaS (Software As A Service), apps para iOS, Android e a tradicional versão desktop. Quando há o lançamento do Office, uma feature pode ir para diversas plataformas graças ao redesenho da arquitetura.

photo-1454165205744-3b78555e5572

5 – Somente pelo buzz, não é possível implementar uma cultura de DevOps.
Infelizmente nossos gestores de TI e CIOs são pessoas que tendem a acreditar em muitos dos emails que lhes são enviados com propostas comerciais. E com certeza hoje há uma adoção em massa dos benefícios que uma cultura DevOps pode trazer simplesmente pelo fato de “ouvir falar que o Facebook ou Google aplica isso e dá certo” ou que “a empresa X, concorrente, está ‘implantando’ DevOps”. Isso é falha na certa! Primeiro, é necessário o porquê desta mudança: Estamos perdendo muito tempo com Downtime de servidores ao atualizar nossos softwares em produção? Precisamos diminuir o risco de grandes pacotes de atualizações? Necessitamos de velocidade nas nossas distribuições? Entre outras coisas, é necessário ter em mente uma motivação forte para mudar radicalmente o paradigma da sua engenharia e do time de operações. E isso não incluí somente DevOps: é necessário uma cultura ágil, com uma gestão de produtos forte e pessoas comprometidas com a causa.

 

Tendo em mente que mudanças de cultura não acontecem da noite para o dia, tenha em mente que buscar um alinhamento entre engenharia e operações é um processo que demanda tempo e paciência. Em empresas grandes e com projetos bem definidos e pouco espaço para projetos menores e times pequenos, a tarefa de implementar uma cultura em DevOps é um desafio duplo: Como vencer a cultura E a falta de espaço para experimentar e mostrar resultados? Apesar de empresas grandes adotarem soluções com sucesso como o Google e outros narram, não existe uma fórmula ou ferramenta que vai ajudar o processo por si só; não existe bala de prata e você vai ser convidado a um exercício de tentativa e erro que pode não ser agradável a muitos gestores por ai. Quando me perguntam a melhor estratégia para implementar DevOps sabe o que digo? Não existe! Seco assim. E sabe o por quê? Cultura e experimentação não são para todos… A maior virtude é identificar e reconhecer que se você não tem uma cultura de código bem solidificada e conceitos de agilidade sólidos, seu caminho é BEM mas BEEEEEEM mais longo  do que quem larga na frente com times enxutos e cientes do papel da cultura durante o processo.

Até a próxima e happy coding!

comentários

comments

Leave a Reply

Your email address will not be published. Required fields are marked *