L'azienda Canonical ha annunciato la disponibilità dello strumento MicroCloud, che consente di distribuire rapidamente cluster computazionali e sistemi cloud sui propri hardware, con archiviazione dati distribuita e rete virtuale protetta. Lo strumento è fornito come pacchetto snap, che include i componenti necessari per gestire le operazioni dei nodi del cluster. Il supporto tecnico commerciale per le soluzioni basate su MicroCloud è fornito attraverso il servizio Ubuntu Pro, ma coloro che possono fare a meno del supporto possono utilizzare lo strumento senza restrizioni. I progressi del progetto sono scritti in linguaggio Go e sono distribuiti con licenza AGPL 3.0.
MicroCloud per impostazione predefinita utilizza strumenti per garantire la tolleranza ai guasti, consentendo la creazione di cluster composti da almeno tre nodi (con un massimo segnalato di cluster che includono fino a 50 nodi). Lo stack software utilizzato per gestire il cluster si basa su un sistema di gestione centralizzata di container e macchine virtuali LXD, sulla piattaforma per la costruzione di reti virtuali OVN (Open Virtual Network) e su uno storage distribuito tollerante ai guasti Ceph. MicroCloud fornisce strumenti per la configurazione automatica di LXD, Ceph e OVN su tutti i nodi del cluster.
Per definire di nuovi server nella rete, che possono essere collegate al cluster, si utilizza mDNS, il che consente di configurare l'intero cluster eseguendo un'unica comando 'microcloud init' su uno dei nodi, previa installazione dei pacchetti snap lxd, microceph, microcloud e microovn. Come piattaforma principale viene considerata la distribuzione Ubuntu Server, ma lo strumento non è legato a Ubuntu e può essere utilizzato su qualsiasi distribuzione che supporti l'installazione di pacchetti snap (Arch, CentOS, Fedora, Debian, openSUSE, RHEL, ecc.). È anche possibile creare cluster su sistemi che utilizzano l'OS Ubuntu Core, che viene aggiornato in modo atomico.
Dopo aver eseguito il comando «microcloud init», lo strumento rileverà la presenza di altri server nella rete locale, chiederà di aggiungere dischi allo storage condiviso Ceph e suggerirà di configurare i parametri della rete virtuale. Per essere inclusi nel cluster, i server devono avere installati in precedenza i pacchetti snap menzionati. La configurazione del cluster può essere salvata in formato YAML per un successivo dispiegamento di sistemi analoghi. Per aggiungere nodi aggiuntivi dopo il completamento dell'inizializzazione, è possibile utilizzare il comando «microcloud add».
Il magazzino file comune viene creato attivando la replica e la tolleranza ai guasti, che consentono di non perdere dati in caso di malfunzionamento di nodi singoli, grazie alla memorizzazione di più esemplari di dati su nodi diversi. Per distribuire il magazzino basato su Ceph in un cluster, oltre ai dischi locali, devono essere presenti su tre computer diversi almeno tre dischi distinti, dedicati alla memorizzazione distribuita dei dati.
Una volta che il cluster è pronto, agli utenti viene data la possibilità di avviare le proprie applicazioni, utilizzando contenitori di sistema o macchine virtuali, oltre alla possibilità di accedere allo storage condiviso Ceph e a strumenti di gestione centralizzati basati su LXD. Per gestire l'infrastruttura dei contenitori sopra il cluster, può essere avviata la piattaforma Kubernetes (edizione Microk8s). Per l'autenticazione degli utenti macchine virtuali o dei contenitori nel cluster può essere applicato OpenID Connect (OIDC) e autorizzazione basata su OpenFGA.

È possibile gestire in modo flessibile le risorse fornite di CPU, memoria e input/output, il passaggio di dispositivi USB, GPU e unità. Gli ambienti isolati e virtuali possono essere trasferiti tra nodi in modalità di migrazione live e salvati utilizzando istantanee. Le metriche sul funzionamento del cluster e il log degli eventi possono essere esportati per il monitoraggio tramite Prometheus e Grafana.
Oltre a creare cluster di lavoro e sistemi cloud privati, lo strumento è anche adatto per condurre rapidamente esperimenti sui sistemi degli sviluppatori. Ad esempio, MicroCloud può essere utilizzato per simulare un cluster sul laptop dello sviluppatore, testare applicazioni cloud in fase di sviluppo, sperimentare nuove tecnologie o simulare infrastrutture complesse.
Fonte: opennet.ru
