Applicare l'automazione alle operazioni non è sempre semplice, soprattutto con sistemi datati che non si adattano facilmente ai tipici strumenti di automazione DevOps e alle relative strategie.
Automatizzare i processi operativi IT è più facile con applicazioni moderne e native per il cloud. Nonostante ciò, i sistemi legacy non devono restare esclusi dalla strategia di automazione DevOps. Usando gli strumenti e le metodologie adeguate, è possibile integrare i requisiti dei sistemi legacy con le moderne tecniche di automazione.
Automazione DevOps: Le Basi
DevOps è un metodo per sviluppare e distribuire software che enfatizza la collaborazione tra sviluppatori (che scrivono il codice) e ingegneri delle operazioni IT (che gestiscono le applicazioni in produzione).
La maggior parte delle organizzazioni che adotta DevOps per le applicazioni tradizionali sfrutta strumenti e tecniche di automazione. Di seguito alcuni degli strumenti di automazione che contribuiscono a rendere efficienti, scalabili e persistenti i processi DevOps:
- Infrastructure-as-Code (IaC) e Configuration-as-Code (CaC): Consentono agli utenti di definire l'infrastruttura e configurare le applicazioni tramite codice, applicandole automaticamente a diversi ambienti.
- Test Automatizzato: Utilizzando framework di automazione dei test, i team DevOps possono scrivere script che testano automaticamente il nuovo codice alla ricerca di errori e problemi di prestazioni. Questo approccio migliora la qualità delle applicazioni e aiuta i team a individuare e risolvere i bug in modo più efficiente.
- Automazione del Rilascio: Strumenti che rilasciano automaticamente le applicazioni, ovvero impacchettano le applicazioni e le distribuiscono negli ambienti produttivi. Questi strumenti aiutano i team DevOps a fornire più rapidamente nuovo codice agli utenti.
- Orchestrazione delle Applicazioni: Le piattaforme di orchestrazione automatizzano molti processi necessari per distribuire e gestire applicazioni su un cluster di server, portando scalabilità e ripetibilità nell'hosting delle applicazioni.
Sfide dell'Automazione DevOps
Le soluzioni di automazione DevOps sopra menzionate non sono sempre semplici da implementare con i sistemi legacy composti da hardware e/o software distribuiti molto prima che esistessero le moderne architetture applicative e strategie di distribuzione favorevoli al DevOps.
Ad esempio, gli strumenti IaC potrebbero non supportare i sistemi legacy perché non gestiscono i linguaggi di configurazione o gli strumenti di gestione di cui tali sistemi hanno bisogno. La maggior parte dei sistemi moderni può essere configurata tramite linguaggi come YAML, mentre i sistemi legacy spesso dipendono da linguaggi e framework di configurazione proprietari.
Per motivi simili, anche l'automazione dei test può essere complessa da implementare in ambito legacy. La maggior parte dei framework moderni di automazione è progettata per applicazioni web-based o mobile. Tuttavia, i sistemi legacy possono funzionare localmente e spesso utilizzano interfacce utente proprietarie, rendendo più difficile l'automazione dei test tramite framework standard.
Allo stesso modo, molte piattaforme di automazione del rilascio e di orchestrazione delle applicazioni sono pensate per applicazioni distribuite tramite container. Poiché i container sono diventati popolari solo con il rilascio di Docker nel 2013, la maggior parte dei sistemi legacy dispone di un supporto nativo limitato per la containerizzazione delle applicazioni.
Portare l’Automazione ai Sistemi Legacy
Fortunatamente, gli ostacoli all’implementazione di DevOps per l’automazione dei sistemi legacy non sono impossibili da superare. Affrontare queste sfide richiede l’adozione di pratiche innovative che permettano l’integrazione dell’automazione con i sistemi legacy:
- Migrare sul Cloud: I fornitori di sistemi legacy offrono ora piattaforme di hosting basate sul Cloud. Sebbene trasferire i carichi di lavoro legacy dall'on-premises al Cloud non attivi automaticamente tutte le funzionalità di automazione DevOps, facilita comunque l'utilizzo di vantaggi come infrastrutture automaticamente scalabili e la possibilità di spostare i carichi di lavoro tra data center Cloud per mitigare i guasti in una posizione.
- Containerizzare i carichi di lavoro legacy: In alcune situazioni, le applicazioni legacy possono essere eseguite in container. Containerizzare tali app permette alle aziende di gestirle tramite soluzioni di orchestrazione come Kubernetes, offrendo molta più agilità e scalabilità nella gestione delle applicazioni legacy.
- Sfruttare il Machine Learning (ML): Integrare il machine learning nelle operazioni di monitoraggio e gestione dei sistemi legacy è un modo efficace per rilevare problemi in contesti in cui non è possibile utilizzare l'automazione convenzionale. Ad esempio, se non puoi eseguire test automatizzati su un'applicazione legacy perché Selenium non la supporta, potresti usare tecniche ML avanzate per individuare bug in base al comportamento dell'applicazione.
- Cambia mentalità: Un passo fondamentale per trarre vantaggio dall'automazione nelle app legacy è semplicemente cambiare la mentalità della tua organizzazione nei confronti dei sistemi legacy. Invece di considerarli ambienti obsoleti e inefficienti, tratta le app legacy come tutte le altre app del tuo patrimonio IT. Quando il tuo team si avvicina ai sistemi legacy con una prospettiva che ne riconosce il valore, diventa molto più facile perfezionare una cultura aziendale improntata alla collaborazione e all'innovazione che si estenderà anche a tali sistemi.
Non ignorare gli ambienti legacy
È indubbio che automatizzare la gestione delle app legacy per i team DevOps sia spesso più complesso rispetto all'implementazione dell'automazione per le app moderne. Tuttavia, ciò non significa che sia impossibile. Molte organizzazioni adottano con successo l'automazione per migliorare la flessibilità e la qualità delle app legacy, riducendo al contempo i costi di sviluppo e distribuzione. Ma per raggiungere questo obiettivo, è necessario andare oltre gli approcci DevOps convenzionali.
Fai crescere il tuo SaaS e le tue competenze di leadership. Iscriviti alla nostra newsletter per ricevere gli ultimi approfondimenti dedicati ai CTO e ai futuri leader tecnologici. Ti aiuteremo a scalare con intelligenza e guidare con maggiore forza grazie a guide, risorse e strategie dei migliori esperti!
