IBM Well-Architected Framework
Ibrido è la capacità di eseguire workload in uno o più cloud pubblici, cloud privati e ambienti on-premise. L'hybrid cloud offre orchestrazione, gestione e portabilità delle applicazioni su infrastrutture pubbliche, private e on-premise. Il risultato è un ambiente di calcolo distribuito unico, unificato e flessibile, in cui un’organizzazione può eseguire e scalare i propri workload tradizionali o cloud-native sul modello di calcolo più appropriato.
Portabile è la capacità di spostare workload e dati tra ambienti di cloud computing, consentendo la migrazione da un cloud pubblico a un altro, o addirittura a un cloud privato, senza richiedere una (significativa) riconfigurazione del workload.
La combinazione di principi ibridi e portabili facilita l'interoperabilità. Questo comprende piattaforma, dati e applicazione. Le applicazioni costruite secondo i principi del design hanno un grado di interoperabilità più elevato.
Le aziende adottano una strategia multi-cloud per prevenire il blocco da fornitore o a causa dei requisiti di residenza dei dati. Inoltre, vogliono la possibilità di spostare i workload così come sono, di migrarli da un cloud all'altro o di eseguire applicazioni su più cloud. Progettare applicazioni cloud tenendo presente portabilità e interoperabilità è fondamentale per queste aziende.
I workload dovrebbero essere creati una sola volta e distribuiti in modo coerente ovunque. I workload non devono essere modificati o configurati per adattarsi ai servizi e ai vincoli della piattaforma su cui sono ospitati. Questo è, di fatto, il mantra di IBM Red Hat OpenShift, una piattaforma container per hybrid cloud disponibile su quasi tutti i cloud pubblici. Gli altri principi di questo pilastro si basano sul raggiungimento di questo ideale.
I container disaccoppiano i workload dall'infrastruttura sottostante che li ospita. Questo rende i workload containerizzati portabili su qualsiasi piattaforma che ospiti un runtime di container compatibile e, pertanto, i container sono la tecnologia preferita per il packaging e la distribuzione delle applicazioni.
Kubernetes è una piattaforma open source per la distribuzione e la gestione di workload containerizzati distribuiti su qualsiasi motore di container che supporti l’interfaccia Kubernetes Container Runtime (CRI). Kubernetes e le piattaforme di gestione derivate da Kubernetes possono essere utilizzate per gestire workload containerizzati su cloud pubblici e privati, così come su infrastrutture private.
I workload che si basano su una specifica rappresentazione o tipo di infrastruttura sono portabili solo verso ambienti che dispongono di tale infrastruttura. In questo contesto, si usa uno strumento di codifica indipendente dal cloud per definire l’ambiente o come le applicazioni devono essere configurate. Si utilizza quindi lo strumento di automazione per distribuire in modo coerente su qualsiasi cloud e anche on-premise. L'utilizzo di Infrastructure as Code (IaC) per distribuire le applicazioni facilita la distribuzione su qualsiasi cloud o il passaggio da un cloud all'altro. Un altro vantaggio dell'uso dell'IaC è che aiuta a scalare e a prevenire la deriva della configurazione. Rende anche il processo di distribuzione più portabile.
I workload che si basano su servizi nativi della piattaforma sono "vincolati" alla piattaforma. Le soluzioni dovrebbero invece adottare API e interfacce di servizio standard di settore, indipendenti dalla piattaforma su cui il servizio è distribuito.
Per adottare davvero la portabilità, i team potrebbero considerare l'uso di soluzioni open-source quale parte dello stack per minimizzare il lock-in, che altrimenti lo renderebbe più complicato.
Il software open source può essere scelto per il suo basso (o nullo) costo, la flessibilità di personalizzare il codice sorgente o per l'esistenza di una grande community che supporta l'applicazione. Tuttavia, possono comportare altri costi, solitamente per l’integrazione di rete, il supporto agli utenti finali e all’IT e altri servizi che normalmente sono inclusi nel software proprietario. Nel complesso, questa decisione dovrebbe essere bilanciata con il business case e la probabilità di migrare i workload.
Scegliere una piattaforma di deployment, come Red Hat OpenShift, comune a tutti gli ambienti, è fondamentale per raggiungere portabilità e interoperabilità tra ambienti multi-cloud e on-premise. Le soluzioni ben progettate utilizzano i container come unità comune di distribuzione, grazie alle loro dimensioni ridotte e al supporto diffuso sulla maggior parte dei sistemi operativi, fornitori di cloud service e piattaforme infrastrutturali.
I container, come Docker, disaccoppiano i workload dall'infrastruttura sottostante che li ospita. Questo rende i workload containerizzati portabili su qualsiasi piattaforma che ospiti un runtime di container compatibile.
Una piattaforma di orchestrazione dei container, come Kubernetes, automatizza la distribuzione delle applicazioni negli ambienti cloud. Può anche gestire workload containerizzati. Kubernetes è una piattaforma open source per la distribuzione e la gestione di workload containerizzati distribuiti su qualsiasi motore di container che supporti l’interfaccia Kubernetes Container Runtime (CRI). Kubernetes e le piattaforme di gestione derivate da Kubernetes sono utilizzate per gestire workload containerizzati su cloud pubblici e privati, nonché su infrastrutture on-premise.
La configurazione e la distribuzione su diversi cloud possono risultare complesse e le operazioni di routine potrebbero essere impegnative. Strumenti indipendenti dal cloud come Ansible, Terraform, Chef, Puppet sono indispensabili. Ansible è uno strumento di automazione IT open source che automatizza il provisioning, la gestione della configurazione, il deployment delle applicazioni e l'orchestrazione, sia nel cloud che negli ambienti on-premise. Può essere utilizzato per automatizzare l'installazione del software, fornire l'infrastruttura e persino migliorare la sicurezza e la conformità applicando tempestivamente le patch ai sistemi.
Il provisioning manuale di centinaia o migliaia di server non è fattibile, ed è per questo che i playbook di Ansible sono preferiti dalle aziende che vogliono scalare l'IT in modo rapido e affidabile. Con un playbook Ansible è possibile costruire un'istanza e poi usare istantaneamente la stessa istanza o qualsiasi numero di altri server che impiegano gli stessi parametri infrastrutturali.
Configurare un cloud distribuito che permetta di consumare servizi cloud ovunque necessario e di implementare, gestire e controllare workload su ambienti on-premise, ambienti edge computing e ambienti cloud pubblici di qualsiasi fornitore di cloud. IBM Cloud Satellite offre cloud service, API, politiche di accesso, registrazione e monitoraggio ovunque. Questo consente di ottenere tutti i vantaggi di servizi simili al cloud per l'infrastruttura on-premise e offre la flessibilità di spostare questi workload su altri provider di cloud, in base alle policy definite. Con la proliferazione dei dispositivi edge e l'enorme aumento dei dati, la possibilità di avvicinare l'elaborazione alla gravità dei dati è più conveniente. Inoltre, offre una maggiore sicurezza e semplifica le operazioni di routine.
Sebbene la sicurezza sia un pilastro a parte, è qualcosa che permea ogni aspetto del cloud computing, che si tratti di cloud privato, cloud pubblico o infrastruttura on-premise. La flessibilità di spostare workload in diversi ambienti comporta ulteriori sfide a livello di sicurezza. La sicurezza non può essere sacrificata a favore della portabilità. È necessario adottare una strategia di sicurezza multilivello, che copra l’intera infrastruttura e lo stack applicativo, lungo tutto il ciclo di vita.