Levar a Automatização de DevOps aos Sistemas Legados

Discover how to deliver better software and systems in rapidly scaling environments. Join our Community

Embora as aplicações modernas se integrem facilmente com ferramentas de automatização de DevOps, os sistemas legados constituem um desafio. No entanto, através da migração para a nuvem, da conteinerização, da aprendizagem automática e de uma mudança de mentalidade, as organizações podem automatizar com sucesso os sistemas legados e usufruir dos benefícios de DevOps.

bringing devops automation to legacy systems featured image

Aplicar automação às operações nem sempre é simples, especialmente no caso de sistemas mais antigos que não se integram facilmente nas típicas ferramentas e estratégias de automação de DevOps.

A automatização dos processos operacionais de TI é mais simples com aplicações modernas e nativas da nuvem. Apesar disso, os sistemas legados não têm de ficar à margem da sua estratégia de automação de DevOps. Com as ferramentas e metodologias certas, é possível integrar os requisitos dos sistemas legados com técnicas modernas de automação.

Automação de DevOps: os conceitos básicos

DevOps é um método para desenvolver e fornecer software que privilegia a colaboração entre programadores (que escrevem código) e engenheiros de operações de TI (que gerem aplicações em produção).

Kausik Chaudhuri

Perspetiva do setor

A complexidade dos pipelines de software modernos, que inclui atividades como codificação, testes, implementação e monitorização, exige automação para aumentar a eficiência. Ao automatizar os processos operacionais, as equipas de desenvolvimento e de operações de TI podem acelerar os ciclos de retorno e de lançamento de software, tornando a colaboração mais eficaz.

A maioria das organizações que adota DevOps para aplicações convencionais recorre a ferramentas e técnicas de automação. Seguem-se apenas algumas das ferramentas de automação que ajudam a tornar os processos de DevOps eficientes, escaláveis e persistentes:

  • Infraestrutura como código (IaC) e configuração como código (CaC): Permite aos utilizadores definir a infraestrutura e configurar aplicações através de código, aplicando-o automaticamente a vários ambientes.
  • Testes automatizados: Ao utilizarem estruturas de automação de testes, as equipas de DevOps podem escrever scripts que testam automaticamente o código acabado de escrever quanto a erros e problemas de desempenho. Esta abordagem melhora a qualidade das aplicações e ajuda as equipas a identificar e resolver erros de forma mais eficiente.
  • Automação de lançamentos: Ferramentas que podem lançar aplicações automaticamente, o que significa que empacotam as aplicações e as implementam em ambientes de produção. Estas ferramentas ajudam as equipas de DevOps a disponibilizar novo código aos utilizadores mais rapidamente.
  • Orquestração de aplicações: As plataformas de orquestração automatizam muitos dos processos necessários para implementar e gerir aplicações num cluster de servidores, proporcionando escalabilidade e repetibilidade ao alojamento de aplicações.

Desafios da automação de DevOps

As soluções de automação de DevOps mencionadas anteriormente nem sempre são simples de implementar com sistemas legados compostos por hardware e/ou software implementados muito antes de existirem arquiteturas de aplicações e estratégias de implementação modernas e compatíveis com DevOps.

Por exemplo, as ferramentas de IaC podem não suportar sistemas legados porque não suportam as linguagens de configuração ou as ferramentas de gestão exigidas por esses sistemas. A maioria dos sistemas modernos pode ser configurada utilizando linguagens como YAML, embora os sistemas legados dependam frequentemente de linguagens e estruturas de configuração proprietárias.

Pelas mesmas razões, a implementação da automação de testes pode ser complexa no contexto de aplicações legadas. A maioria das estruturas de automação modernas foi concebida para aplicações baseadas em navegadores ou aplicações móveis. No entanto, os sistemas legados podem ser executados localmente e utilizar frequentemente interfaces de utilizador proprietárias, o que dificulta a automatização dos testes com estruturas padrão.

Da mesma forma, muitas plataformas de automação de lançamentos e de orquestração de aplicações foram concebidas para aplicações implementadas através de contentores. Como os contentores só se tornaram populares após o lançamento do Docker, em 2013, a maioria dos sistemas legados tem suporte nativo limitado para a contentorização de aplicações.

Levar a automação aos sistemas legados

Felizmente, os obstáculos à implementação da automação de DevOps em sistemas legados não são impossíveis de ultrapassar. A resolução destes desafios exige a adoção de algumas práticas inovadoras que permitem integrar a automação com sistemas legados:

  • Migrar para a Nuvem: Os fornecedores de sistemas legados oferecem agora plataformas de alojamento baseadas na Nuvem. Embora a transferência de cargas de trabalho legadas de ambientes locais para a Nuvem não ative automaticamente todas as funcionalidades de automatização de DevOps, facilita a utilização de benefícios como uma infraestrutura com escalabilidade automática e a capacidade de mover cargas de trabalho entre centros de dados na Nuvem para mitigar falhas numa localização. 
  • Colocar as Cargas de Trabalho Legadas em Contentores: Em determinadas situações, as aplicações legadas podem ser executadas em contentores. A colocação destas aplicações em contentores permite às empresas geri-las utilizando soluções de orquestração como o Kubernetes, proporcionando uma agilidade e escalabilidade muito maiores à gestão de aplicações legadas.
  • Recorrer à Aprendizagem Automática (ML): Incorporar a aprendizagem automática nas operações de monitorização e gestão de sistemas legados é uma forma de detetar problemas eficazmente em contextos onde não é possível utilizar a automatização convencional. Por exemplo, se não puder executar testes automatizados numa aplicação legada porque o Selenium não a suporta, poderá utilizar técnicas avançadas de ML para identificar erros com base no comportamento da aplicação.
  • Alterar a Sua Mentalidade:  Um passo fundamental para tirar partido da automatização em aplicações legadas consiste simplesmente em alterar a mentalidade da sua organização em relação aos sistemas legados. Em vez de os classificar como ambientes desatualizados e ineficientes, trate as aplicações legadas como todas as outras aplicações do seu património informático. Quando a sua equipa aborda os sistemas legados de uma perspetiva que valoriza as aplicações legadas, torna-se muito mais fácil aperfeiçoar uma cultura empresarial orientada para a colaboração e a inovação, que também se estenderá a esses sistemas legados.

Não Ignore os Ambientes Legados

Não há como negar que automatizar a gestão de aplicações legadas para equipas de DevOps é frequentemente mais desafiante do que implementar a automatização para aplicações modernas. No entanto, isso não significa que seja impossível. Muitas organizações adotam com sucesso a automatização para melhorar a flexibilidade e a qualidade das aplicações legadas, reduzindo simultaneamente os custos de as desenvolver e implementar. Mas, para o conseguir, é necessário pensar para além das abordagens convencionais de DevOps.

Aumente o crescimento da sua SaaS e as suas competências de liderança. Subscreva a nossa newsletter para receber os conhecimentos mais recentes destinados a CTOs e futuros líderes tecnológicos. Ajudá-lo-emos a crescer de forma mais inteligente e a liderar com maior impacto, através de guias, recursos e estratégias dos melhores especialistas!