O modelo tradicional de desenvolvimento de software possui duas disciplinas com objetivos distintos: desenvolvimento e operações. Enquanto a primeira possui o anseio natural por inovação, a segunda busca estabilidade. O fato é que não existe lado certo ou errado. Todos possuem um papel fundamental no ciclo de desenvolvimento de soluções. É nessa luz que surgiu o DevOps.
DevOps é um movimento que busca atender à crescente demanda por agilidade no processo de liberação ou adoção de novas versões de software através de uma profunda integração entre as disciplinas de desenvolvimento, operações e qualidade.
Empresas como Google, Netflix, Amazon, Facebook, Twitter, entre outras, adotam DevOps como prática básica, resultando como um dos benefícios uma redução drástica da taxa de falhas, o que fundamenta um tempo de resposta otimizado em eventuais paradas.
A Amazon, por exemplo, consegue realizar uma mudança em seus sistemas a cada impressionantes 11,6 segundos, com apenas 0,001% das implementações com alguma pane. A média de falhas geradas pelas empresas que adotaram DevOps é cerca de 50 vezes menor em comparação àquelas que não usam esta prática. Isso se traduz em uma redução de esforço e retrabalho, além de muito mais confiabilidade na implementação.
É impossível falar de DevOps sem falar do conceito de "Infraestrutura como Código", amplificado radicalmente pela imensa oferta de soluções em nuvem. A infraestrutura como código é o processo de transformar o ambiente em código. As características mais marcantes de código são o fato de ser controlável, testável e repetível. Este procedimento dá muita segurança para empresas conseguirem replicar seu ambiente com facilidade, seja para a criação de ambientes de teste similares (Produção = User Acceptance Tests = Quality Assurance Tests = Development), ou mesmo para um bom tempo de resposta na ocorrência de um desastre. É nesse cenário que entra o Chef.
O Chef é uma plataforma de automação que ajuda empresas a aplicarem o conceito de infraestrutura como código. Seja na nuvem ou em ambiente local, o Chef permite a automatização de servidores ou mesmo estações de trabalho. Você escreve em Ruby o código que define o estado no qual um servidor, por exemplo, deve possuir. No caso de um servidor, é necessário um determinado recurso do sistema operacional habilitado, algumas aplicações instaladas e configuradas e assim por diante. É nessa hora que o Chef brilha, permitindo a execução dessas tarefas de maneira bastante intuitiva. Utilizando o Chef Developer Kit você terá à sua mão uma série de recursos que permitirão que você consiga transformar toda sua infraestrutura em código controlável, testável e repetível.
O uso de uma plataforma de automação como o Chef aliada ao ambiente de nuvem traz resultados espetaculares. Em alguns casos, é possível reduzir drasticamente o esforço de manutenção de ambientes (DEV,QAT,UAT,PRD), uma vez que o código que define estes ambientes é exatamente o mesmo, o que minimaliza eventuais surpresas decorrentes de uma eventual discrepância entre ambientes.
A estabilidade da infraestrutura permite que os clientes se concentrem em inovar no seu negócio. Amparados por um ciclo de entrega reduzido, fica mais fácil superar a concorrência e surpreender o cliente final com um serviço de muita qualidade. Se você ainda não conhecia ou praticava DevOps, talvez essa seja uma boa hora para mobilizar a sua organização para uma evolução nesse rumo.
Pedro Castelo Branco, sênior software engineer da GFT.