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).

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!

