La trasformazione digitale delle imprese sta oggi passando attraverso la modernizzazione dell’architettura applicativa, e compiendo la transizione, dai tradizionali modelli di sviluppo monolitici, verso stili di progettazione e architetture software basati su microservizi e container: questi ultimi vengono poi gestiti ed orchestrati in ambienti on premise o nel cloud, a seconda delle necessità e degli obiettivi di business. La tecnologia di containerizzazione è attualmente considerata la soluzione più adatta per soddisfare i requisiti di elevata portabilità, flessibilità, agilità, scalabilità con cui occorre saper dispiegare le moderne applicazioni e servizi digitali, sempre più spesso improntati su un’architettura cloud-native.
Gestione dei container a livello enterprise, le sfide di complessità
La progressiva maturazione di tale modello di sviluppo porta poi alla crescente necessità di creare e dispiegare in produzione applicazioni e servizi containerizzati su larga scala a livello enterprise, utilizzando una piattaforma come Kubernetes. A questo punto, però, la complessità tecnologica cresce ulteriormente, e, al contempo, diventa particolarmente critico individuare, nella molteplicità di software commerciali e distribuzioni Kubernetes, opzioni e servizi cloud disponibili sul mercato, la strategia d’implementazione di Kubernetes più conveniente: sia in rapporto alle specifiche esigenze di gestione dei vari workload aziendali, sia rispetto al rischio di lock-in insito nella selezione di uno specifico vendor.
Cosa è Rancher e come può aiutare le imprese
Proprio per rispondere alle esigenze aziendali di semplificare l’implementazione e l’amministrazione di Kubernetes in ambito enterprise è stata creata Rancher, piattaforma open source, indirizzata a liberare gli utenti da situazioni di lock-in, e progettata per gestire in modo completo a livello end-to-end, dal datacenter, al cloud, all’edge, molteplici cluster Kubernetes certificati. Creata da Rancher Labs, società fondata nel 2014 (recentemente acquisita da SUSE) con l’obiettivo di fornire gli strumenti per trarre il massimo vantaggio dalla tecnologia container, Rancher è in grado di operare con qualunque tipo d’installazione Kubernetes, e incorpora un insieme di funzionalità che, per essere ottenute con soluzioni alternative, richiederebbero lunghi processi di configurazione e mantenimento di svariati progetti open source.
Più in particolare, Rancher facilita l’amministrazione di Kubernetes in alcune aree chiave. Dal punto di vista della gestione dei workload applicativi, tra le varie funzionalità di Rancher sono inclusi un catalogo applicazioni; un sistema centralizzato di monitoraggio dell’infrastruttura, capace di estendere la visibilità a livello multi-cluster; un sistema centralizzato di controllo accessi RBAC (role-based access control), in grado d’integrarsi con vari servizi, tra cui Active Directory (AD), LDAP, SAML, OpenID. Tutte le operazioni sono amministrabili da un’unica interfaccia utente.
Flessibilità di deployment di cluster Kubernetes
Quando arriva il momento di decidere quale ambiente e modalità d’installazione scegliere per Kubernetes, Rancher è in grado di supportare le diverse opzioni possibili. Ad esempio, una possibilità è eseguire il deployment dei workload applicativi adottando servizi di cluster Kubernetes gestiti, e già pronti per eseguire applicazioni containerizzate in produzione, come Google Kubernetes Engine (GKE), Amazon Elastic Container Service for Kubernetes (EKS) o Azure Kubernetes Service (AKS). In questo caso, Rancher è in grado d’integrarsi in maniera fluida nell’infrastruttura di gestione di GKE, EKS o AKS, e fornisce un completo controllo delle diverse risorse cloud: inoltre, non è più necessario apprendere le modalità d’utilizzo di tre diverse interfacce di amministrazione, perché Rancher costituisce un’interfaccia “single pane of glass”, unificata e coerente, da cui si può accedere per visualizzare e configurare ciascun servizio hosted.
Nel caso, invece, si decida d’installare, eseguire e gestire Kubernetes su piattaforme IaaS come Google Cloud, Amazon EC2, Azure, oppure installare Kubernetes direttamente sull’infrastruttura IT di proprietà aziendale, utilizzando server bare metal o soluzioni di cloud privato come VMware, Rancher è in grado di fornire, anche in questi ambienti, una modalità d’installazione semplificata e indirizzata a ridurre al minimo la complessità.
Per quanto riguarda i cluster Kubernetes già esistenti su servizi come GKE, essi possono essere importati in Rancher. Quando occorre spostare workload da un cloud provider a un altro, Rancher consente di creare con facilità un nuovo cluster nel nuovo cloud, dove i workload del cluster esistente possono essere fatti migrare.
Amministrazione multi-cluster semplificata
Sempre attraverso una singola console, Rancher permette di gestire non solo uno, ma molteplici cluster Kubernetes in ambienti multicloud, evitando le tipiche difficoltà tecniche che s’incontrano nel far migrare applicazioni e workload da una nuvola pubblica a un’altra, per sfruttare, ad esempio, vantaggi in termini di costi o di nuove funzionalità. E, in maniera analoga alla fase d’installazione, anche in fase di gestione di Kubernetes su differenti cloud, con Rancher i team DevOps possono mantenere lo stesso ambiente di sviluppo e workflow.
In aggiunta, in qualità di piattaforma enterprise-grade, Rancher possiede un’architettura agnostica rispetto al tipo d’infrastruttura, e supporta la gestione di container in cloud privati, pubblici, ibridi, infrastrutture edge, o reti “air-gap”, isolate fisicamente per ragioni di sicurezza.
Un’altra funzionalità chiave di Rancher è la configurazione centralizzata delle policy, che possono essere integrate ed applicate in ciascun cluster Kubernetes: ad esempio, è possibile creare su Rancher una policy di rete per la connessione tra i servizi di un’applicazione web, e poi distribuirla su GKE, EKS o AKS, senza dover più eseguire alcuna riconfigurazione.
Uno scenario d’uso che chiarisce con efficacia le opportunità d’adozione di Rancher prevede il suo utilizzo per dispiegare una stessa applicazione su cluster Kubernetes da ospitare su cloud differenti, in due diverse aree geografiche: ad esempio, in conformità col regolamento GDPR, potrebbe essere necessario far risiedere i dati dei clienti europei nel cloud Azure in Europa, mentre i dati degli altri utenti nel mondo potrebbero restare su un cloud AWS negli Stati Uniti. Attraverso Rancher, l’applicazione può essere distribuita nelle due regioni geografiche applicando le medesime policy e regole di gestione delle identità e degli accessi, garantendo un deployment coerente di tutte le istanze software.