Continuous delivery: gestire il ciclo di vita del codice con Mia-Platform

Mia-Platform Team 18 giugno 2020

Il continuous delivery è una moderna pratica dell’ingegneria del software che consente di rilasciare più velocemente le applicazioni attraverso l’integrazione continua dei nuovi sviluppi e il rilascio automatizzato in ambienti di produzione o di staging. Continuous delivery mette quindi insieme le fasi di sviluppo e test con quelle funzionali al rilascio, rendendo disponibili applicazioni “già pronte” per entrare in produzione.

Le capacità di continuous delivery si fondano sull’automazione dei processi che portano il software in produzione: sviluppo, test codice, rilascio in ambiente di staging, test post-deploy e così via. Una catena di attività che, per essere efficace, dev’essere integrata dando ai team visibilità e controllo. Obiettivi che Mia-Platform indirizza con la DevOps Console: una piattaforma pensata per disegnare e gestire con semplicità l’intero ciclo DevOps.

 

La DevOps Console a supporto del continuous delivery

Progettata per centralizzare il controllo degli strumenti e semplificare il lavoro dei team di sviluppo e operations, la DevOps Console permette di integrare i dati e di eseguire automaticamente tutte le azioni necessarie alla pipeline di produzione, dando ai team la piena visibilità sui processi in corso.

Scopo della DevOps Console è supportare il continuous delivery centralizzando il controllo su tutti gli strumenti, come Git, Jenkins, Docker, Nexus, Kubernetes, Terraform, Prometheus, Kibana e molti altri.

Nell’esecuzione dei processi che conducono al delivery, aiuta il governo di cluster k8s, permette di definire gli ambienti di esecuzione, impostare i test automatici, disegnare e lanciare le pipeline di continuous integration e continuous delivery.

Continuous delivery e la piattaforma Mia-Platform

L’uso della DevOps Console di Mia-Platform riduce gli oneri e i rischi connessi con il rilascio del software, rendendo disponibile il codice già testato e caricato nel repository GitHub. 

Pensata per essere usata sia dai team di sviluppo sia di operation, permette a tutte le persone coinvolte di avere visione d’insieme sulle attività, non solo della parte di propria responsabilità. Allo stesso modo, le line of business (LOB) possono utilizzare la Console per monitorare le modifiche, dare feedback fin dalle fasi iniziali, velocizzando la produzione.

 

Le funzioni chiave della DevOps Console per il continuous delivery

Le funzioni che la DevOps Console di Mia-Platform offre a supporto del continuous delivery cominciano dal set-up dell’infrastruttura, quindi con la creazione del progetto, la configurazione di Auth0 per gli accessi, degli ambienti e delle variabili d’ambiente. 

La Console dà quindi supporto al design, aiutando a configurare le CRUD API (definendo le proprietà della collezione), importare microservizi esterni nell’ecosistema oppure creare microservizi ex novo, a partire dai template Node, Springboot, GraphQL e React. Permette di creare decorators pre e post, di configurare gli endpoint agganciandoli alle API, a microservizi custom, a servizi esterni condivisi tra più progetti.

La Console permette inoltre di configurare il CMS a partire da un file json o integrando nel CMS un frontend esterno. Consente di predisporre gli strumenti analitici per monitorare i KPI più significativi. Ha inoltre una sezione avanzata per configurare l’API Gateway (config map e request size), gestire le repliche (con il servizio Horizontal Pod Autoscaler per scalare il numero dei pod disponibili in un cluster in funzione delle necessità computazionali) e per configurare i servizi di autenticazione.

Mia-Platform_DevOps_Console

Sul fronte del Test & Debug, chiave nell’automazione del continuous delivery, permette di visualizzare lo stato di tutti i servizi sviluppati con la Console (se sono attivi, quanta memoria e CPU utilizzano, ecc) e, attraverso la funzione TelePresence, consente di eseguire un singolo servizio localmente simulandone il comportamento in un contesto reale, per fare il debug senza compromettere l’ambiente di produzione.

Dal lato del deploy, la Console facilita il rilascio delle configurazioni nei diversi ambienti, consente di controllare la cronologia delle versioni del progetto e di rilasciare codice utilizzando un Webhook personalizzato se, per esempio, si vuole usare un server di continuous integration esterno, come Jenkins. 

Gli aspetti di controllo e monitoraggio dell’infrastruttura sono gestiti separando gli ambienti del progetto, visualizzando i pod disponibili con i log specifici. Con dashboard personalizzabili è possibile raccogliere dati durante l’intero ciclo DevOps per tenere sotto controllo le metriche di specifico interesse.

Infine, la Console rende disponibile il portale delle API con la documentazione autogenerata e sincronizzata delle API RESTful e graphQL in modo da aiutare gli sviluppatori a capire come funziona e come si comporta una specifica API prima di integrarla nel codice. 

 

Perché usare la DevOps Console per il continuous delivery

Semplificare il governo dei processi di continuous delivery offre molti vantaggi sul piano del business. Il primo riguarda il time-to-market delle applicazioni. Automazione, riuso dei componenti, migliore sfruttamento di template e servizi pronti, unitamente alle fasi di test automatizzate, permettono di guadagnare settimane o mesi nei tempi di produzione.

Un altro vantaggio è nella qualità del codice prodotto attraverso il continuous delivery e il controllo offerto dalla DevOps Console. La capacità di integrare i test più semplici nel lavoro quotidiano permette ai team di concentrarsi sulle attività di maggior valore e più impegnative, quali i test esplorativi, di usabilità, di prestazioni e sicurezza, che migliorano la qualità del codice prodotto. 

La Console migliora la qualità del lavoro dei team, rendendo fluide e meno stressanti le fasi di rilascio. Il team DevOps è messo nelle condizioni di lavorare con serenità e più velocemente. Con rilasci anticipati si ottengono prima anche i feedback degli utenti e delle LOB che servono per migliorare in modo incrementale qualità e funzionalità del software prodotto.

 

Leggi il Paper 

Post Correlati

Principi e pratiche di Continuous Delivery

Ogni sviluppatore ha provato, almeno una volta nella vita, quella sensazione di tensione che accompagna il Delivery Day. Conoscendo l...
Mia-Platform Team 09 gennaio 2020

Fast Data: evolvere l’UX con informazioni in tempo reale

I dati sono il cuore del business. Senza dati, non è possibile avere la piena consapevolezza dei fenomeni che interessano l’azienda e...
Mia-Platform Team 06 marzo 2020

Cloud Business Transformation: abbattere i costi con Mia-Platform

Per affrontare il tema della Cloud Business Transformation e comprenderne la portata centrale e strategica, occorre partire da alcuni...
Mia-Platform Team 08 maggio 2020