LA STORIA IN BREVE
Governare un’architettura in espansione
Una compagnia assicurativa, che insieme a noi aveva già adottato un API Gateway, ha visto crescere notevolmente il numero di API esposte della propria architettura: gestire i rilasci manualmente era diventato impossibile senza il rischio di creare regressioni e misconfigurations.
Il progetto ha visto la gestione di apparati intermedi storicamente afferenti all’area Operations (come l’API Gateway) tramite logiche di IaC: questo ha permesso di automatizzare il rilascio e le operazioni di test su tutti i sistemi impattati, legacy compresi, includendo gli apparati nelle logiche di DevOps e di continuous integration.
IL CLIENTE
Una compagnia del settore assicurativo
La compagnia assicurativa, specializzata in bancassicurazione, fa parte di un gruppo la cui prima società nasce nel 1987. Si occupa di offrire soluzioni assicurative e previdenziali, per famiglie e imprese, rispondendo alle esigenze di sicurezza e protezione di salute, persone, casa, beni e risparmi.
L’OBIETTIVO
Migliorare la qualità dei rilasci
La necessità primaria del cliente era migliorare la velocità dei rilasci, riducendo al tempo stesso gli impatti sulle API precedenti ancora in uso: una buona copertura di test avrebbe aumentato sia la sicurezza che la qualità dei rilasci.
Occorrevano dei prodotti rispondenti a logiche di IaC che:
- mettessero a disposizione strumenti come le CLI (Command-Line Interface) da integrare nelle pipeline di automazione;
- consentissero di aggiornare la configurazione applicandola come una transazione invece che da interfaccia web.
I prodotti che offrono questa caratteristica danno accesso a una serie di benefici, tra i quali in particolare la velocità di applicazione delle configurazioni e l’automatizzazione del roll back.
LA SOLUZIONE
Continuous integration su codice, API Gateway e testing delle API
Anche l’API Gateway è un apparato e quindi ha una propria configurazione, con un ciclo di vita comparabile al codice. L’utilizzo esaustivo di decine e decine di API aveva portato a un passaggio obbligato: l’automazione dei rilasci, alla quale abbiamo aggiunto le operazioni contemporanee di test.
Grazie all’utilizzo di strumenti ad hoc, le pratiche di DevOps (tipicamente applicate al codice) possono essere estese anche alla configurazione degli apparati intermedi coinvolti nel rilascio.
L’API Gateway che si è scelto di adottare si presta bene a logiche di IaC (ovvero di “APIOps”). Quando viene organizzato un rilascio, infatti, vengono automaticamente:
- rilasciate le porzioni di codice che implementano le API;
- rilasciate le configurazioni dell’apparato interessato;
- lanciati dei test automatici che validano la correttezza e la rispondenza dei sistemi rispetto alle funzionalità aggiunte o modificate.
I RISULTATI
Più qualità, controllo e sicurezza
Avere dei test delle API con una buona copertura, offre maggiore qualità e controllo su implementazioni che possono diventare obsolete, malfunzionamenti o errori di configurazione, garantendo al contempo un più elevato livello di sicurezza dei dati esposti.
GLI STRUMENTI UTILIZZATI
Continuous integration su codice, API gateway e testing delle API
Prodotto Open Source di Kong per il design di API e scrittura di test e automazione della loro esecuzione
Piattaforma di API design per la costruzione e l’utilizzo di API
L’utilizzo di questi tool ha permesso di scrivere i test e renderli automatizzabili all’interno della pipeline.
In caso di fallimento dei test, sotto alcune condizioni, è possibile fare un intero roll back e riportare velocemente lo stato dei sistemi alla versione precedente annullando il rilascio, senza ulteriori impatti sui consumatori delle API.
Questi strumenti si prestano per logiche di continuous integration e continuos development, che permettono di orchestrare non solo i rilasci e l’automazione di codice, ma anche gli apparati intermedi che possono essere fatti rientrare in quella logica di automazione.
Il know how maturato su questi strumenti consente a Intesys di integrarsi nei team DevOps per orchestrare i rilasci.
Test automatizzati
- Test di configurazione
- Test end to end
- Test funzionali
- Test di sicurezza
Le soluzioni adottate
Competenze e know-how
Architetture evolutive
API Gateway
DevOps e DevSecOps
API testing