Live migration, la migrazione dei container su neen Jelastic PaaS

Live migration, la migrazione dei container su neen Jelastic PaaS
10 novembre 2016
0 commenti

Con l’avvento di Docker e la tecnologia a container, negli ultimi anni è aumentata la domanda rispetto a un servizio scarsamente offerto dal mercato IT attuale: la live migration. Questa procedimento è in grado di facilitare in modo significativo la gestione del ciclo di vita delle applicazioni all’interno dei container.

Cos’è e come funziona la live migration

La migrazione live dei container si riferisce a quel processo con il quale è possibile spostare le applicazioni tra una o più macchine fisiche (o cloud) senza doversi disconnettere dal proprio client. Questo procedimento è possibile grazie a una sorta di sospensione che coinvolge la memoria, il file system e la connettività network: i parametri vengono conservati grazie a un ambiente hardware bare metal dalla macchina d’origine dell’host sino al trasferimento sulla macchina di destinazione, senza nessuna interruzione nell’erogazione del servizio.

HN hardware node

 

Questo approccio consente sostanzialmente di risolvere tre grosse problematiche:

  • Downtime durante la manutenzione hardware. Quando gli amministratori di sistema necessitano di fare un upgrade o manutenzione dell’hardware, può risultare difficile migrare tutti i client da un nodo ad un altro e laddove sia fattibile, è praticamente impossibile farlo senza downtime.  
  • Ripartizione errata dei carichi di traffico. Quando un nodo hardware va in sovraccarico, il ribilanciamento può richiedere l’implementazione di determinati application pattern, restringendo le tipologie di workload ospitabili nel cluster.
  • Problemi legati alla piattaforma cloud in uso. Oggi giorno ci sono così tanti vendor e servizi cloud sul mercato, che queste piattaforme possono essere soggette nel medio-lungo termine a vari cambiamenti (di policy d’utilizzo, listino o degrado delle prestazioni). Non è raro quindi che si decida di switchare i propri applicativi da una piattaforma cloud all’altra e che tra esse non vi sia compatibilità al 100%.

 

Vediamo quindi nel dettaglio quali sono gli step dal punto di vista tecnico nel processo della live migration:

Come funziona la live migration

  • Source Node – nodo di origine del container da migrare
  • Destination Node – nodo di destinazione dove il container verrà migrato

All’inizio dell’operazione l’applicazione che vogliamo migrare si trova nel nodo di partenza (source node), il procedimento prevede una fase di “congelamento” del container nel nodo sorgente, includendo memoria, processi, file system e connessioni network, in modo da conservarne lo stato intonso. A questo punto viene effettuata la copia nel nodo di destinazione (destination node) a cui segue il ripristino e il riavvio del container congelato, insieme a una breve pulizia nel nodo di origine.

Sintetizzando, il processo è molto breve: si individua lo stato del container, lo stato viene copiato e infine viene ripristinato. Tuttavia bisogna considerare che questo tipo di procedimento “congela” i processi e potrebbe creare alcuni problemi con l’architettura di alcuni applicativi.

Sono due i metodi con i quali è possibile effettuare la migrazione :

  • pre-copy memory
  • post-copy memory

 

Nel primo caso, con la pre-copy memory quando si migra un container, la piattaforma tiene traccia della memoria nel nodo di origine e copia questa memoria in parallelo nel nodo di destinazione fino a crearne una copia identica. Una volta terminata la procedura relativa alla memoria, vengono copiati i restanti dati dello stato, migrati nel nodo di destinazione, ripristinati e scongelati. Anche in questo caso, al termine della migrazione nel nodo d’origine, viene effettuata una piccola pulizia.

Generalmente il tempo di sospensione va in media dai 5 ai 30 secondi, a seconda della tipologia dell’applicativo migrato.

Nel secondo caso invece, con il procedimento della post-copy memory (chiamata anche lazy migration) il sistema congela i container nel nodo di origine, ottiene lo stato delle pagine di memoria, sposta lo stato al nodo di destinazione, effettua il ripristino e scongela il container. Il resto delle specifiche di stato viene copiato dal nodo sorgente in un secondo momento in background. Anche con questo procedimento il tempo medio di trasferimento del container si aggira tra i 5 e i 30 secondi.

 

Quando è consigliato utilizzare la Live Migration

In quali contesti è opportuno utilizzare il processo di migrazione live?

  • Durante la manutenzione/upgrade del server: durante la manutenzione i container possono essere migrati in modalità live da un nodo fisico a un altro dentro lo stesso data center. Come risultato si ottiene un tempo nullo di downtime.
  • Ridistribuzione del carico di lavoro: con la migrazione live il caricamento può essere ribilanciato da uno nodo hardware a un altro. Questo processo può essere automatizzato specificando algoritmi e trigger.

Pannello trasferimento delle immagini

  • Cambiamento del fornitore cloud: la migrazione live consente agli utenti finali di poter scegliere in modo flessibile quale cloud vendor utilizzare. Come abbiamo visto, le applicazioni possono essere migrate da un fornitore di servizi di cloud all’altro, senza riconfigurazioni e riassegnazioni durante il processo di migrazione.

 

La piattaforma neen Jelastic PaaS

neen mette a disposizione di DevOps e software house neen Jelastic PaaS, la piattaforma as a service che unisce l’elasticità dello IaaS alla semplicità di utilizzo del PaaS. A differenza della altre soluzioni PaaS presenti sul mercato, neen Jelastic PaaS non richiede alcuna modifica di codice, né obbliga gli sviluppatori ad utilizzare sistemi di API (comunque disponibili). Inoltre, grazie alla tecnologia a Container, è possibile creare istanze “pacchettizzate”, trasferibili e portabili tra diversi sistemi e Cloud.

L’affidabilità hardware è garantita in modo nativo attraverso i meccanismi di live migration, in grado di operare una migrazione a caldo dei servizi in caso di eventuali failure hardware. L’alta affidabilità applicativa è invece soddisfatta attraverso meccanismi di load balancing descritti, che distribuiscono il carico dell’applicazione su più server cloud; ogni server è istanziato su diversi hardware a garanzia di ulteriore ridondanza.

 

Inizia subito a utilizzare neen Jelastic PaaS: su neen.it è possibile accedere alla versione trial della piattaforma. Se invece desideri maggiori informazioni scrivi a sales@neen.it o chiama il numero 02.45485420

Jessica  Ventura Social Media Manager