Tags:

DevOps: mais um modismo ou uma evolução necessária?

O termo “DevOps” é uma combinação de “Development” (Desenvolvimento) e “Operations” (Operações), significando uma nova abordagem para agilizar a geração de novos produtos e serviços. Pode ser visto como mais um campo para aplicação de técnicas ágeis e para o uso de ferramentas para automatizar e monitorar processos relacionados à infraestrutura.

A ideia básica de DevOps é integrar e otimizar todas as atividades feitas em conjunto pelos times: desenvolvimento e operações trabalham como se fossem uma única equipe. Na abordagem tradicional, a função do time de desenvolvimento é transformar requisitos em programas, e a função do time de operações é instalar e manter esses programas rodando na infraestrutura (computadores, redes, bancos de dados) existente. Cada um dos times utiliza seus próprios métodos, processos e ferramentas, como se fossem independentes e ignorando que as decisões em um time podem afetar o outro time.

Para entender o modelo DevOps, vamos usar como exemplo um site onde uma empresa vende produtos diretamente para seus clientes. Para evoluir seu negócio, a empresa pode aperfeiçoar esse canal, através de várias possibilidades:

  • a equipe de vendas quer lançar promoções que aumentem as visitas ao site;

  • a área de marketing quer integrar o site com redes sociais para reforçar a imagem da empresa;

  • o pessoal de logística quer interfaces do site com os sistemas de expedição e entrega;

  • a área financeira quer expandir as formas de pagamento.

Cada uma dessas melhorias exige mudanças no site: primeiro a implementação dessa alteração (feita por uma equipe de desenvolvimento) e depois colocar a nova versão do site no ar (feita por uma equipe de operações). Na forma tradicional, o processo é feito em duas etapas (o time de operações só começa a trabalhar depois que o time de desenvolvimento entrega a versão), normalmente leva tempo (pois cada equipe tem seu próprio planejamento) e sempre pode haver problemas típicos da “passagem de bastão” (falta de documentação, programas ou scripts com erros, incompatibilidades de versão de software etc).

Na abordagem DevOps, por outro lado, tudo é um único processo, desde a decisão da área usuária em mudar o site até a efetiva entrada em produção. Todos devem trabalhar como equipe tendo um único objetivo final: entregar a nova versão do site da forma mais rápida e eficiente possível. Esse processo tem então os seguintes passos:

  • todos os interessados (“stakeholders”) participam desde o começo (área usuário, time de desenvolvimento e time de operações);

  • há um planejamento integrado de todas as atividades, desde o levantamento dos requisitos até a entrada do novo site em produção;

  • requisitos não funcionais (tais como performance, escalabilidade, SLA etc) são tão importantes quanto os requisitos funcionais e são considerados desde o início do projeto;

  • os processos de build, testes e instalação são automatizados e continuamente monitorados, restringindo ao mínimo indispensável a necessidade de execução manual desses passos;

  • padrões usados no desenvolvimento devem levar em conta requisitos do time de operações: código deve ser bem documentado para agilizar o diagnóstico de erros, alterações na configuração devem ser permitidas com o site em uso, deve haver integração com ferramentas de monitoramento etc;

  • as melhores práticas de desenvolvimento são usadas pela equipe de operações, como gerenciamento de versões (base de dados, imagem de servidores, configurações etc), testes automáticos, integração contínua etc;

  • a implantação das mudanças deve ser simulada usando versões intermediárias do novo site, de forma que a implantação da versão final seja uma mera repetição de um processo já testado.

A motivação para essa integração dos times e para a adoção de técnicas ágeis é a necessidade de reagir rapidamente às mudança do negócio. Quanto mais mudanças, mais alterações são necessárias, mais produtos e serviços novos devem ser disponibilizados para os clientes. Se cada nova implantação é um processo difícil e arriscado (pense no “freezing” de sistemas perto das festas de fim de ano), a mudança é vista como problema e não como necessidade ou oportunidade.

Respondendo à pergunta do título, realmente o modelo DevOps é uma resposta inovadora a um desafio muito concreto das empresas: como reagir rapidamente às mudanças do negócio e, ao mesmo tempo, manter a estabilidade e a qualidade de produtos e serviços. 

Por CELSO GONÇALVES JUNIOR

Postado em: 28 de maio de 2013

Confira outros artigos do nosso blog

[Webinar] Profile de aplicações Java com Oracle Mission Control e Flight Recorder

24 de julho de 2017

Danival Calegari

Criando Mocks de serviços REST com SoapUI

27 de junho de 2017

Monise Costa

Three laws that enable agile software development

09 de março de 2017

Celso Gonçalves Junior

Medindo performance de uma API REST

21 de fevereiro de 2017

Monise Costa

Deixe seu comentário