Desenvolvimento

23 dez, 2014

Melhores de 2014 – DevOps já é realidade no mercado de TI

Publicidade

Um assunto que vem despertando mais e mais interesse é o conceito de DevOps, e isso é fácil de comprovar. Basta ir ao Google Trends, colocar DevOps como keyword e ver o gráfico mostrando que o nível de interesse cresce rapidamente. E imaginar que em 2011 esse era um tema praticamente inexistente como palavra-chave de buscas.

Pesquisando aqui e ali, achei um relatório muito interessante, chamado “2013 State of DevOps Report”, publicado pela Puppet Labs. O relatório foi feito a partir de uma pesquisa com 4 mil profissionais de TI, tanto de operações, como desenvolvedores. Ele mostra que a adoção dessa prática está acelerando. Os números mostram que 63% dos pesquisados disseram que suas empresas já adotam o conceito e entre os benefícios reportam que conseguem entregar código 30 vezes mais rápido e com 50% menos falhas.

Ora, simplesmente por esses números, creio que todo executivo responsável pelo que chamamos TI nas empresas devem, no mínimo, estudar o assunto. Ignorá-lo pode significar perder excelente oportunidade de virar o jogo, ou seja, desenvolver e entregar sistemas muito mais rápido do que hoje. Essa é uma demanda insaciável. O tempo é cada vez mais reduzido e a competição no cenário de negócios vem de todos os lados. As áreas de TI que não conseguem acompanhar o ritmo das demandas do negócio tendem a se tornar secundárias. Perdem a oportunidade de ser contributivas para novos negócios e acabam apenas responsáveis pela “casa das máquinas”, ou seja, necessário, mas simplesmente operacional. Como sugestão de leitura para entender melhor o conceito recomendo este paper: “What exactly is DevOps?”.

DevOps é uma mudança das práticas convencionais de desenvolvimento e entrega de sistemas. Provoca, claro, reações contrárias, como o famoso “não é novidade, sempre fizemos isso”, mas, por outro lado g,era benefícios de mudanças comportamentais, como uma maior colaboração entre desenvolvimento e operações. Esses setores sempre atuaram de forma compartimentalizada, com objetivos diferentes. É absolutamente necessário para as empresas criarem coisas novas e de forma rápida, para explorar as janelas de oportunidade que cada vez mais se encurtam. Por outro lado, operações precisam garantir a estabilidade do ambiente operacional de TI. Essa é sua missão e qualquer novidade que perturba seu ambiente não é bem vista. O desafio é como conciliar esses objetivos divergentes. Tem até uma piada que mostra essa divergência de forma bem humorada: “ Confuse of Dev or Ops? Simple rule: if you are praise for web site success, you are Dev; if you are blame when web site down, you are Ops”.

A questão da integração entre desenvolvimento e operações é fundamental. Apenas olhar um lado da equação não é suficiente. Por exemplo, nos últimos anos, vimos uma verdadeira explosão dos métodos ágeis, com encurtamento significativo dos prazos de desenvolvimento. Mas o deployment dos sistemas não avançou na mesma velocidade. A causa é direta: falta de colaboração entre os setores de desenvolvimento e operações. Implementar métodos ágeis sem mudança nas práticas que envolvam o deployment (operações) apenas piora as coisas. O mesmo acontece quando o setor de operações busca criar processos mais padronizados, como adoção de práticas como ITIL, e deixa em segundo plano a velocidade que o desenvolvimento demanda. O resultado de tentarmos otimizar os dois lados da equação, desenvolvimento e operações, de forma estanque, é a criação de mais barreiras e burocracias, gerando menos eficiência. Tiro n’água.

O conceito de DevOps começou a despertar atenção quando se descobriu que as principais empresas do mundo da Internet como Google, Amazon, Facebook, Twitter e outras o adotaram como prática básica. As grandes empresas da Internet apresentam números impressionantes. Por exemplo, a Amazon faz uma mudança em seus sistemas, em média, uma vez a cada 11,6 segundos!

Outros benefícios que essas empresas conseguiram foi se recuperarem muito rapidamente ,e os números da pesquisa mostram uma taxa de falhas bem baixa. Voltando ao exemplo da Amazon, apenas 0,001% dos deployments causaram uma pane (outage) no sistema. A média de falhas geradas pelas empresas que adotaram DevOps é cerca de 50 vezes menor em comparação com as que não usam essa prática. Imaginem o que é reduzir em 50 vezes o numero de falhas! Muito menos esforço e recursos despendidos em refazer coisas que já deveriam estar prontas e muito mais confiabilidade nos deployments. Cada vez mais fundamental em um ambiente de negócios hiperconectado, com usuários acessando seus sistemas baseados em nuvem, via smartphones e tablets.

DevOps é uma evolução nas práticas que chamamos de gestão do ciclo de vida dos sistemas ou Application Development Life cycle Management (ADLM). Demanda tecnologia, sim, mas principalmente mudanças culturais, funcionais e organizacionais em TI. Em termos de tecnologia, o quadrante mágico do Gartner coloca duas empresas, IBM e Microsoft, como líderes, ao lado de empresas menores como Rally e CollabNet. Instrumentação tecnológica para automação do ciclo de vida, como controle de versões e deployment automático de código, é essencial, mas é necessário ir além. As principais barreiras são o desconhecimento do conceito (e muito frequentemente a confusão que apenas implementar método ágeis resolve. E já vimos que não, pois apenas endereça um lado da equação), cultural (ambiente que não incentiva colaboração) e falta de capacitação, tanto gerencial como dos profissionais técnicos, no desenvolvimento e em operações. O diálogo entre desenvolvimento e operações é fundamental.

Importante frisar que DevOps não implica que os desenvolvedores vão operar seus sistemas. Não, essa é a função do grupo de operações. O que DevOps incentiva é um processo colaborativo entre esses dois setores estanques, de modo que eles atuem em harmonia, criando uma prática de entrega contínua de software. Não existe mais a barreira do desenvolvimento parar o processo, criar um protocolo de solicitação ao grupo de operações e aguardar que esse setor responda. Os dois setores atuando em conjunto fazem com que o processo seja continuo, ou seja, sai-se do código para a nuvem de produção, sem interrupções. Em resumo, vale a pena ler a pesquisa e refletir. E, aí, indagar: por que ainda não adotamos DevOps?