DevOps – Porque ela é importante para a sua empresa?

Há muitas opiniões diferentes sobre a DevOps, mas uma coisa é certa: ela é real. Em poucos anos, as manchetes sobre DevOps foram de “Mas o que é DevOps?” e “DevOps é uma fraude mal elaborada” para “DevOps chegou para ficar” e “Três razões por que sua sempresa vai sofrer sem DevOps.”.

Desde pequenas startups até as maiores empresas do mundo, o setor de tecnologia da informação está adotando a DevOps em ritmo acelerado. E mesmo assim, a maioria dos profissionais de TI não sabem nada sobre DevOps ou tem apenas um conhecimento superficial sobre o panorama geral. Se você está em alguma dessas categorias, este artigo foi elaborado para atendê-lo. Há muitas definições para PaaS (Plataforma como Serviço). De acordo com o Gartner, a PaaS é uma “ampla coleção de serviços de infraestrutura (middleware) de aplicativos, incluindo plataforma de aplicativos, integração, gerenciamento de processos de negócios e serviços de banco de dados.

Neste artigo, usaremos uma definição prática. PaaS é a camada de abstração que permite aos desenvolvedores criar, executar e gerenciar aplicativos sem se preocupar com a infraestrutura subjacente, além de oferecer à equipe de operações de TI o controle sobre os próprios sistemas. Existem muitas variedades de PaaS, incluindo privada, pública e híbrida. Assim, a TI tem as ferramentas que precisa, da maneira que deseja usá-las para entregar aplicativos mais rápido. A PaaS está situada entre a IaaS (Infraestrutura como Serviço) e o SaaS (Software como Serviço) no stack de software. Enquanto a IaaS fornece acesso sob demanda a recursos computacionais brutos e o SaaS fornece acesso sob demanda a um aplicativo completo, a PaaS permite o acesso sob demanda a uma plataforma de aplicativos baseada em cloud.

Apesar do aumento nas demandas de aplicativos, a disponibilidade de recursos não está acompanhando esse ritmo. Precisa-se agilizar o desenvolvimento de aplicativos, mas deve-se trabalhar com os recursos e as habilidades que já se possui. A grande demanda imposta por clientes internos e externos para a criação mais rápida de aplicativos está gerando uma necessidade por processos e métodos novos.

No texto abaixo, vamos responder algumas perguntas fundamentais, que lhe ajudarão a entender melhor a DevOps.

Por Lenildo Morais*

1.    O que é DevOps?

O termo DevOps nasceu em 2009 por Patrick Debois, que se tornou um de seus entusiastas. O termo foi formado pela combinação de “desenvolvimento” e “operações”, o que oferece um ponto de partida para entender exatamente o que as pessoas querem dizer quando falam “DevOps”. É importante notar que DevOps não é um processo, tecnologia nem um padrão. Muitos devotos se referem à DevOps como uma “cultura”. Utiliza-se também o termo “movimento DevOps”, quando falamos sobre tópicos como taxas de adesão e tendências para o futuro, e “ambiente DevOps”, para nos referirmos a uma organização de TI que tenha adotado a cultura DevOps.

DevOps é um método de desenvolvimento de software que enfatiza a comunicação, a colaboração e a integração entre os desenvolvedores de software e os profissionais de operações de tecnologia da informação. A DevOps bem-sucedida é o respeito mútuo entre o desenvolvimento e as operações. É fornecido um código de qualidade e em resposta é fornecida uma plataforma de qualidade para executar esse código. Pode-se ter opiniões disntintas sobre como fazer isso, mas, no fim do dia, será entregue um software que funciona como o contratado e atende às necessidades dos clientes.

A economia dos aplicativos motiva os líderes a fazer mudanças importantes em TI e nos negócios, onde uma das mais significativas foi a adoção do DevOps. Para as empresas de TI que esperam promover a estratégia de tecnologia em toda a empresa e fornecer aos clientes um software de mais qualidade com mais rapidez, o DevOps, com seu foco na colaboração entre domínios de TI, do desenvolvimento à entrega, é cada vez mais a resposta. Os líderes corporativos de TI percebem que a adoção das melhores práticas que permitem a colaboração entre as equipes que criam, testam e gerenciam aplicativos melhora a qualidade do software e a experiência do cliente.

Criar uma cultura de DevOps, e depois alavancá-la e investir nas ferramentas necessárias para apoiá-la, permitirá que as empresas enfrentem melhor a concorrência no mundo orientado a sistemas, conectados à nuvem.

2.    De onde surgiu a Devops?

Apesar do tom místico de algumas histórias sobre sua origem, a DevOps não foi criada do nada. As sementes da DevOps foram plantadas há muito tempo e cultivadas por especialistas de TI que pensam à frente de seu tempo em inúmeras disciplinas. A DevOps é uma plataforma perfeita e existem muitas evidências que comprovam isso. Os dois antecedentes principais da DevOps são:

•     Gestão de sistemas corporativos: Muitos dos envolvidos na definição inicial de DevOps eram ou são administradores de sistemas. Esses especialistas em operações trouxeram as práticas recomendadas da gestão de sistemas corporativos fundamentais para a DevOps, incluindo o gerenciamento de configuração, monitoramento de sistemas, provisão automatizada e a abordagem com cadeias de ferramentas;

•     Desenvolvimento Ágil: A DevOps incorpora diversos princípios, métodos  e práticas ageis, como fornecimento contínuo, integração contínua, e colaboração. A DevOps leva os princípios do desenvolvimento ágil à administração de sistemas e, finalmente, ao ciclo completo das operações de TI.

Os administradores de sistemas se permitiram ficar para trás com relação ao que há de mais moderno. Essas novas tecnologias estão finalmente nos obrigando a modernizar nosso modo de trabalho. Por que isso é importante? Tem a ver com a credibilidade básica do movimento. Longe de ser um manifesto estranho de alguns setores da TI, a origem da DevOps é, na verdade, bastante convencional. A DevOps une uma disciplina bem-estabelecida de operações com uma metodologia de desenvolvimento comprovada, onde cada parte representa as práticas recomendadas de sua área. E essa união reflete o fato da DevOps integrar desenvolvimento e operações em uma entidade com objetivos comuns: software de alta qualidade, lançamentos mais rápidos e a maior satisfação dos clientes. Mais uma vez, são preocupações corporativas totalmente convencionais.

3.    Quais problemas levaram à criação da DevOps?

Desenvolvedores e administradores de sistemas discordam em muitos aspectos, mas concordam que os clientes no setor corporativo frequentemente os puxam em duas direções diferentes. Por um lado, os usuários corporativos exigem mudanças, novos recursos, novos serviços, novos fluxos de receita, tudo o mais rapidamente possível. Ao mesmo tempo, eles também querem um sistema estável e sem interrupções. Isso gera um problema.

O problema com o processo tradicional de fornecimento de software, ou sua ausência, é que ele não está bem adaptado para oferecer suporte a essas duas exigências simultaneamente. Portanto, as empresas precisam escolher entre fornecer mudanças rápidas e ficar com um ambiente de produção caótico ou manter um ambiente estável, porém ultrapassado. Não é de surpreender que nenhuma das opções sejam aceitáveis para os executivos corporativos. E, mais importante do que isso, nenhuma delas permite que as empresas ofereçam as melhores soluções possíveis para os clients. Todos os desenvolvedores também estão querendo lançar os softwares cada vez mais rápido, afinal, é para isso que eles costumam ser contratados. A parte de operações, por outro lado, sabe que as mudanças aceleradas sem as medidas de segurança adequadas ameaçam desestabilizar o sistema, o que vai diretamente contra seu estatuto.

A DevOps foi criada para solucionar esse dilema, integrando todos aqueles que estão associados ao desenvolvimento e à implantação de software, como usuários empresariais, engenheiros de testes e administradores de sistemas, em um fluxo de trabalho único e altamente automatizado com a atenção voltada para o fornecimento rápido de softwares de alta qualidade que atendam a todas as exigências dos usuários, ao mesmo tempo em que mantêm a integridade e a estabilidade de todo o sistema.

Como esses grupos díspares unem forças? Subscrevendo a uma série comum de princípios que transcendem os limites e os papeis tradicionais da disciplina como, por exemplo:

•     Garantia de que todas as equipes estejam trabalhando tendo em vista o mesmo objetivo e sendo avaliadas pelas mesmas métricas empresariais;

•     Manutenção de ciclos de desenvolvimento curtos que permitam que a empresa responda rapidamente aos requisitos de mudanças;

•     Utilização de estratégias de implantação progressiva e sinalização de recursos que facilitem a ativação ou desativação de novos recursos na produção sem reimplantações;

•     Criação de um ciclo de retorno extremamente rápido que permita a identificação e a correção de problemas quase imediatamente pelas equipes adequadas.

O DevOps oferece e observa melhorias significativas nas principais áreas de negócios e tecnologia. Os resultados indicam que, à medida que o DevOps amadurece no setor, as implementações evoluem e atendem as métricas que continuam sendo importantes para as empresas de TI e seus parceiros de negócios. Por exemplo, os três maiores benefícios observados, cada um deles apresentando melhorias de 21%, variam de tecnologia a negócios, incluindo aspectos como: novos softwares/serviços que de outra forma não seriam viáveis/explorados, uma redução no tempo gasto na correção e na manutenção de aplicativos e uma maior colaboração entre os departamentos.

Os resultados indicam melhorias no desempenho dos aplicativos, na produtividade dos funcionários e na aceitação do software por usuários finais e clientes.

4.    Como a DevOps funciona?

Como todas as culturas, a DevOps tem muitas variações nesse tema. Contudo, a maioria dos espectadores concordam que as seguintes qualidades são comuns a todas as culturas DevOps: colaboração, automatização, integração, entregas contínuas, testes contínuos, monitoração contínua e correção imediata.

1)      Colaboração

Em vez de ficarem se acusando, o desenvolvimento e as operações de TI trabalham juntos, de verdade. Embora a falta de conexão entre esses dois grupos tenha gerado o ímpeto para sua criação, a DevOps se estende para muito além da organização de TI, pois a necessidade de colaboração abrange todos que participam do fornecimento de software, não apenas entre Dev e Ops, mas todas as equipes, inclusive testes, gestão de produtos e executivos. A DevOps bem sucedida requer corporatividade, desenvolvimento, controle de qualidade e organizações de operações para coordenar e desempenhar papeis significativos em diferentes fases do ciclo de vida dos sistemas.

2)      Automação

A DevOps depende muito da automação, e isso significa que precisa-se de ferramentas. Ferramentas que se constrói. Ferramentas que se compra. Ferramentas de código aberto. Ferramentas proprietárias. E essas ferramentas não ficam espalhadas pelo laboratório à toa. A DevOps depende de cadeias de ferramentas para automatizar grande parte do desenvolvimento total de software e do processo de implantação.

3)      Integração contínua

Geralmente encontra-se integração contínua nas culturas DevOps porque ela surgiu de uma cultura de ágil, sendo que a integração contínua é um princípio fundamental da abordagem de ágil. A integração contínua (IC) é uma prática de engenharia de software na qual mudanças isoladas são imediatamente testadas e relatadas quando são adicionadas a uma base de códigos maior. O objetivo da IC é oferecer retorno rápido, de modo que, se um defeito for introduzido na base de código, ele poderá ser identificado e corrigido o mais rapidamente possível. A regra mais comum é que cada membro da time de desevolvimento envie o trabalho diariamente, ou pelo menos com mais frequência, e que uma compilação seja realizada com cada alteração significativa.

O princípio de integração contínua do desenvolvimento ágil tem implicação cultural para o grupo de desenvolvimento. Forçar os desenvolvedores a integrar seu trabalho com o de outros desenvolvedores frequentemente, pelo menos diariamente, expõe problemas de integração e conflitos muito antes do que como acontece com o desenvolvimento no modelo cascata tadicional.

Entretanto, para alcançar esse benefício, os desenvolvedores precisam se comunicar entre si com muito mais frequência, o que vai contra a imagem daquele programador gênio e solitário que trabalha durante semanas ou meses em um módulo até estar “pronto” para mostrá-lo ao mundo. A semente da comunicação aberta e frequente floresce na DevOps.

4)      Testes contínuos

É fácil negligenciar a parte de testes da DevOps, até que isto se traga prejuízos. O custo da qualidade é o custo da falha. Embora a integração e o fornecimento contínuos sejam dominantes, os testes contínuos estão, aos poucos, encontrando seu lugar como uma parte igualmente crucial da DevOps. Os testes contínuos não são apenas uma função de controle de qualidade, na verdade, eles começam no ambiente de desenvolvimento. Os dias em que os desenvolvedores podiam simplesmente jogar o código nas mãos do controle de qualidade e dizer “Toma aí” acabaram. Em um ambiente DevOps, todo mundo se envolve nos testes. Os desenvolvedores certificam-se de, além de entregar códigos sem erros, fornecer conjuntos de dados de teste. Eles também ajudam os engenheiros de teste a configurar o ambiente de teste de modo a ficar o mais parecido possível com o ambiente de produção. Já para o controle de qualidade, a maior necessidade é velocidade. Afinal, se o ciclo de controle de qualidade levar dias ou semanas, você voltará àquele longo cronograma típico do modelo em cascata. Os engenheiros de teste enfrentam o desafio das respostas rápidas, não só por terem que automatizar grande parte do processo de teste, mas por redefinir as metodologias de teste.

Em vez de fazer do teste uma sequência separada e longa no processo ainda maior de implantação, os praticantes do fornecimento contínuo lançam pequenas atualizações quase constantemente, avaliam seu desempenho e rapidamente as revertem, se for necessário. Embora possa ser uma surpresa, as funções de operações têm um papel importante a desempenhar no teste e no controle de qualidade. As operações têm acesso aos padrões de carga e uso de produção. Esses padrões são essenciais para o time de controle de qualidade criar um teste de carga que exercite adequadamente o Sistema.

As operações também podem garantir que as ferramentas de gerenciamento estejam implantadas e os ambientes de teste configurados adequadamente. Elas podem participar de testes funcionais, de carga, estresse e vazamento, além de oferecer análises com base na experiência com aplicativos parecidos em fase de produção.

A recompensa dos testes contínuos vale o esforço. A função de testes em um ambiente DevOps ajuda os desenvolvedores a equilibrar qualidade e a velocidade. Usar ferramentas automatizadas reduz o custo dos testes e permite que os engenheiros de teste aproveitem seu tempo com mais eficiência. Os testes contínuos também eliminam os gargalos nos testes por meio de serviços dependentes virtualizados e simplificam a criação de ambientes de teste virtualizados que podem ser facilmente implantados, compartilhados e atualizados conforme o sistema muda. Esses recursos encurtam o custo de provisionamento e manutenção dos ambientes de teste, além de encurtarem o tempo do ciclo de teste permitindo os testes de integração antecipados no ciclo de vida do sistema.

5)      Entrega contínua

A entrega contínua não é nada além de levar o conceito de integração contínua para a próxima fase. Em vez de terminar na porta do laboratório de desenvolvimento, a integração contínua na DevOps se estende para toda a cadeia de lançamento, incluindo controle de qualidade e operações. O resultado disso é que lançamentos individuais são muito menos complexos e são realizados com muito mais frequência.

A frequência de lançamento real varia bastante, dependendo do legado e dos objetivos da empresa. O que exatamente é lançado também varia. Em algumas organizações, controle de qualidade e operações fazem a triagem dos potenciais lançamentos. Muitos vão diretamente para os usuários, alguns voltam para o desenvolvimento e poucos simplesmente não são implantados. Outras empresas lançam tudo o que sai dos desenvolvedores para os usuários e contam com o monitoramento em tempo real e a correção imediata para minimizar o impacto de uma falha rara.

6)      Monitoramento contínuo

Devido à grande quantidade de lançamentos, não é possível implementar o tipo de teste rigoroso pré-lançamento que caracteriza o desenvolvimento em cascata. Portanto, em um ambiente DevOps, as falhas devem ser encontradas e corrigidas em tempo real. Como isso é feito? Uma grande parte é pelo monitoramento contínuo. Os objetivos do monitoramento contínuo são determinar rapidamente quando um serviço está indisponível, entender as causas subjacentes e, sobretudo, aplicar esses aprendizados para antecipar os problemas antes que ocorram. Na verdade, alguns especialistas em monitoramento defendem que a definição de um serviço deve incluir o monitoramento, pois o veem como parte integrante do fornecimento de serviço. Como os testes, o monitoramento começa no desenvolvimento. As mesmas ferramentas que monitoram o ambiente de produção podem ser empregadas no desenvolvimento para localizar problemas de desempenho antes que cheguem à produção. Dois tipos de monitoramento são exigidos na DevOps. O monitoramento do servidor e o monitoramento do desempenho do sistema. As discussões sobre monitoramento levam rapidamente a discussões sobre ferramentas, pois não existe monitoramento eficiente sem as ferramentas adequadas.

Algumas fases importantes podem ajudar aqueles que estão iniciando sua jornada de DevOps a encontrar menos problemas e mais respostas:

·         Definir os resultados desejados: Diferentes empresas adotam a DevOps para atingir objetivos distintos. Entender por que a empresa está buscando maior colaboração e agilidade por meio do DevOps e criar uma estratégia;

·         Comunicar o objetivo comum: Tradicionalmente, as equipes de desenvolvimento e operações de TI trabalham em departamentos separados, esforçando-se para alcançar resultados diferentes. O DevOps exige que todas as equipes entendam o objetivo comum que é compartilhado entre elas. Por exemplo, os desenvolvedores de softwares trabalhariam para proporcionar uma melhor experiência com seu software para os clientes, enquanto as operações de TI acompanhariam as métricas de desempenho de aplicativos para mensurar o mesmo resultado;

·         Identificar a equipe ideal para impulsionar a estratégia: Talentos são fundamentais para impulsionar o sucesso da DevOps em uma organização. Pessoas que entendam a importância de uma mudança de cultura e as atualizações de processos em vários domínios, incluindo o de negócios, serão essenciais para ver resultados positivos e para comunicar as primeiras vitórias com a DevOps;

·         Avaliar os conjuntos de ferramentas da DevOps: Além de verificar os talentos e os processos existentes, as empresas devem avaliar a eficácia dos conjuntos de ferramentas atuais, principalmente para aumentar a eficiência do desenvolvimento sem sacrificar o software, acelerar os prazos de entrega e as implantações, e melhorar a experiência do cliente;

·         Quantificar as medidas internas e externas para o sucesso: Determinar como o sucesso da DevOps será mensurado. Será por meio de produtos a serem entregues aos clientes, pela redução de custos internos ou pela diminuição dos erros no software? Encontrar maneiras de quantificar o sucesso e aproveitar cada vitória;

·         Preparar-se para as melhorias contínuas: A DevOps não tem uma data de término. Embora ela seja a resposta para muitos problemas das empresas, a implantação da DevOps continuará e crescerá com todas as iniciativas de negócios e tecnologia. A DevOps simplesmente se tornará o novo padrão de normalidade para a TI e os negócios.

5.    Porque seus parceiros estão aderindo à DevOps?

A DevOps tem algo a oferecer para todo mundo na corrente de software. Desenvolvedores, operações e testes. Além disso, a DevOps alcança até o segmento empresarial. Gestores que monetizam o software e executivos que se preocupam com o resultado final. Aqui estão algumas das vantagens citadas por cada grupo:

1)      Desenvolvedores

O provisionamento automatizado é excelente para os programadores, porque eles podem levantar um ambiente de desenvolvimento por conta própria sem burocracia, sem ciclos de aprovação longos, sem precisar esperar que a TI providencie um servidor, ou seja, não há perda de tempo. Quando os desenvolvedores conseguem provisionar um ambiente de trabalho em 15 minutos, com todos os recursos certos, como energia de computação, armazenamento, rede e aplicativos, a maneira como eles trabalham muda. Eles podem ser muito mais criativos e inovadores. É muito mais fácil experimentar várias opções, executar diferentes cenários e testar o código mais minuciosamente.

Quando os desenvolvedores começam a trabalhar em um mundo de DevOps pela primeira vez, para muitos, uma experiência verdadeiramente reveladora é entender o que realmente acontece dentro daquela caixa-preta nomeada “Operações”. Esse conhecimento ajuda os desenvolvedores a trabalharem de modo eficaz com as operações em um modo de resolução de problemas conjunto. Os problemas são resolvidos mais rapidamente e causam menos distrações. O melhor de tudo é que os telefonemas frenéticos tarde da noite se tornam coisa do passado, o que leva diretamente a maior satisfação no trabalho e melhor qualidade de vida para os desenvolvedores.

2)      Operações

Há uma crença muito difundida de que os administradores de sistemas ficam constantemente obcecados pela estabilidade do sistema e, de fato, isso é verdade. Os piores pesadelos deles são um lançamento de software que tire o sistema do ar segundos após a implantação de produção, desenvolvedores que se eximem das responsabilidades, usuários em vários níveis de indignação e nenhum caminho claro para uma solução rápida e eficaz. Os pioneiros da adoção dos métodos de DevOps descobriram que o maior envolvimento dos desenvolvedores realmente melhora a estabilidade do sistema. A automatização também ajuda a eliminar as falhas humanas comuns em operações manuais e tem a vantagem adicional de reduzir o tempo gasto em tarefas de rotina. Também há a questão da qualidade de vida para os administradores de sistemas, na forma de construção de habilidades, oportunidades de carreira, além de muito mais horas de sono ininterruptas e mais tempo para si. Em um ambiente de DevOps, o setor de operações depende muito mais de ferramentas do que em um ambiente tradicional, muitas vezes construindo suas próprias ferramentas e escrevendo scripts que automatizem porções do processo de implantação.

3)      Engenheiros de teste

A DevOps requer novas maneiras para testar softwares, o que desafia os engenheiros de testes a inovarem no setor. Com o provisionamento automatizado, os engenheiros de teste podem provisionar um ambiente de teste virtualmente idêntico ao ambiente de produção, resultando em testes mais precisos e maior capacidade de previsão do desempenho de novos lançamentos. Como com os outros grupos, a produtividade dos engenheiros de teste aumenta graças à automatização e à colaboração.

4)      Gerentes de produto

Tecnicamente, a DevOps só diz respeito à função de TI da empresa. Contudo, aqueles que fizeram a transição vão dizer que a DevOps muda tudo. Uma estratégia de DevOps eficaz permite que a organização analise, pela primeira vez e em tempo real, dados de análise da web, dados de máquina e dados estruturados existentes, para obter uma visão completa de como os sistemas voltados aos clientes estão ou não fornecendo valor comercial. A DevOps permite que as organizações entendam o comportamento de clientes individuais, quais ações eles tomam e como seu comportamento se compara ao de outros clients. Ela permite que uma organização execute análises hipotéticas de variações em sua interface do usuário ou ofertas de produto. Com base nos resultados dessas análises preditivas e da experiência de campo real, o lado do “desenvolvimento” ágil da DevOps permite, então, que as organizações respondam às necessidades de mercado mais rapidamente do que antes.

Em um ambiente de DevOps, as partes comerciais interessadas têm maior influência sobre o processo de desenvolvimento. Graças ao espírito colaborativo da DevOps, os desenvolvedores realmente se importam com os requisitos comerciais e criam relações com os gerentes de produto. A DevOps também fornece aos gerentes de produtos retorno imediato sobre o impacto de novos preços, recursos e pacotes de produtos, permitindo que eles testem as variações e avaliem sua eficácia. Gerentes de linha de negócios são entusiastas da DevOps porque o software entra no mercado mais rapidamente, dando a eles a vantagem competitiva que desejam. Como a DevOps melhora a estabilidade do sistema, os clientes enfrentam menos interrupções e são, portanto, mais leais, o que é a solução ideal para as altas taxas de cancelamento.

5)      Executivos

Do que os executivos gostam na DevOps? Em primeiro lugar, ela ajuda a organização a fornecer produtos de alta qualidade e colocá-los no mercado muito mais rapidamente do que os concorrentes com métodos tradicionais de desenvolvimento de software. Essas são ações que têm impacto sobre o resultado final e valorizam a marca. Outro motivo é a habilidade de atrair e manter os melhores talentos: desenvolvedores, administradores de sistemas e engenheiros de testes de alta qualidade querem trabalhar com o que há de melhor e mais atual. Por fim, quando desenvolvedores, operações e controle de qualidade trabalham juntos, os principais executivos raramente são puxados para disputas interdepartamentais, liberando o tempo deles para elaborarem os objetivos empresariais concentrados que todo mundo, agora, une esforços para alcançar com sucesso.

6.    Como se beneficiar com a DevOps?

A qualidade dos produtos de software também é maior, como indicado pela descoberta de que os aplicativos DevOps têm metade dos fracassos que seus concorrentes. Finalmente, o efeito líquido sobre a estabilidade do sistema é positive. Quando a plataforma sai do ar, os grupos de DevOps restauram o serviço 12 vezes mais rápido do que seus colegas.

Por meio de uma nova metodologia de trabalho, o feedback é ampliado entre os times, o que, consequentemente, aumenta a comunicação entre os envolvidos no projeto. Isso permite uma redução no tempo de entrega e melhora a qualidade do trabalho final. Para isso ocorrer, a DevOps estende os conceitos de metodologia ágil e automação. DevOps é integração entre desenvolvimento e operações. Quando se usa DevOps, o ciclo de vida do projeto envolve equipes multidisciplinares que se comunicam e se integram por meio de processos e ferramentas em todas as suas etapas. Desse modo, o desenvolvedor não fica somente codificando e testando, mas também participa das fases de implantação e operacionalização, encurtando o looping de feedback do cliente. Como há integração dos times na realização de um projeto, diminui-se o tempo de execução das tarefas e, por consequência, os custos de execução de cada fase.

Automatizar processos e metodologias é sinônimo de otimizar o tempo, pois, à medida que se elimina o retrabalho, as equipes têm mais tempo para fazer melhorias e inovações na empresa, além de disponibilidade para caso aconteça algum imprevisto. Isso implica ter mais domínio sobre mudanças, reduzir riscos nos processos, com menos falhas humanas, uma produção ágil e sistematizada, menor energia gasta por seu time e aumento na qualidade do trabalho. Não há motivos para se preocupar com possíveis reduções de membros do time, pois o objetivo da metodologia é automatizar seu pessoal, não reduzir o quadro de colaboradores. Automação significa ampliar a qualidade de trabalho das equipes e fazer com que elas tenham mais controle do trabalho. Também está relacionado à inovação. Quando se fala em automação, deve-se pensar em otimizar o trabalho com as equipes já existentes e as tecnologias disponíveis, substituindo processos antigos e invariáveis.

As práticas de DevOps têm provocado grande impacto nas empresas, sobretudo no crescimento do negócio e na qualidade do desenvolvimento. De fato, integrar o desenvolvimento e as operações pode impulsionar a evolução rápida e ágil de softwares e serviços. Por esse motivo, a DevOps é citada como parte essencial desse processo para a grande maioria das empresas que almejam expandir suas operações. Isto é, a DevOps é capaz de criar uma infraestrutura viável para a condução de um desenvolvimento rápido e contínuo de sistemas e serviços.

Uma vez implantado nas empresas, a DevOps é capaz de transformar todo o departamento de TI em um ambiente de trabalho que poupará mais tempo e dinheiro e, ao mesmo tempo, ampliará a qualidade dos produtos e serviços. Fazer com que a operação, o desenvolvimento e a qualidade trabalhem de forma coesa é um desafio, mas, ao mesmo tempo, é possível aumentar a eficiência dos serviços de sua empresa, pois trará uma menor taxa de falhas e um menor tempo para a implantação final ou parcial de qualquer projeto.

A implantação da DevOps resulta em um conjunto de mudanças na forma como os processos de desenvolvimento são executados. Afinal, agora, as operações e o desenvolvimento andam juntos.

De modo consolidado, abaixo seguem cinco grandes vantagens que a DevOps propõe:

1)      Entregas mais rápidas, com menos riscos e custos reduzidos;

2)      Maior controle das aplicações desenvolvidas pelos times integrados e aumento da colaboração entre as atividades;

3)      Melhoria no ambiente de produção. Os projetos são desenvolvidos com mais facilidade e entregues no tempo previsto;

4)      Produtos mais eficientes a partir de uma melhor compreensão dos detalhes de cada etapa do projeto;

5)      Aumento do valor do negócio, devido à colaboração entre times mais motivados.

Portanto, a DevOps é, sim, algo que deve estar sempre presente na cultura das empresas. Afinal, não foi uma solução criada para ser uma modificação pontual no time de TI. Trata-se de uma revolução a ser empregada para criar ciclos virtuosos. Se deseja-se um departamento de TI mais eficiente, mais integrado e com redução de custos, certamente a DevOps é a cultura que se procura.

Conclusão

Cinco anos após o grande experimento da DevOps, os dados são claros. Ela chegou para ficar e por motivos muito bons. Muitos acharam que seria impossível, mas a DevOps obteve sucesso ao integrar usuários empresariais, desenvolvedores, engenheiros de teste e administradores de sistemas em um único fluxo de trabalho focado em atender às exigências dos clientes. Por que eles fariam isso voluntariamente? Porque é vantajoso para todo mundo.

Desenvolvedores e administradores de sistemas param de discutir e começam a se apoiar, acalmando os ânimos de todos. Os executivos de TI ficam felizes porque eles realmente recebem os produtos de software de que precisam para vender produtos e serviços. Os gestores observam suas métricas do painel de controle, como receita, satisfação do cliente e confiabilidade do sistema, seguindo firme e forte. E todo mundo consegue fornecer os melhores resultados e experiência geral possíveis para o cliente.

Ganhos como esses, contudo, não são obtidos facilmente. Para implantar códigos com sucesso mais frequentemente ao mesmo tempo em que mantém os sistemas na ativa, precisa-se da habilidade de monitorar precisamente todas as alterações que acontecem no ambiente.

Referências

[1] SHARMA, Sanjeev; COYNE, Bernie. DevOps for dummies. 2. Ed. New Jersey – John Wiley & Sons, 2017

[2] HÜTTERMANN, Michael. DevOps for developers: integrate development and operations, the agile way. New York – 2017.

SOBRE O AUTOR

*Lenildo Morais – Mestre em Ciência da Computação pelo Centro de Informática da Universidade Federal de Pernambuco. Pesquisador ASSERT – Advanced System and Software Engineering RESEARCH Technologies Lab. Gerente de Projetos nas empresas do Porto Digital de Pernambuco. Experiência em Engenharia de Software, atuando nos seguintes tópicos de pesquisa: Qualidade de Software, Metodologias e Processos de Desenvolvimento de Software, Engenharia de Requisitos, Testes de Software e Gerência de Projetos.

Últimas notícias