L'azienda Canonical ha annunciato la disponibilità dello strumento MicroCloud, che consente di implementare rapidamente cluster computazionali e sistemi cloud sul proprio hardware, con uno storage dati distribuito e una rete virtuale sicura. Lo strumento è fornito come pacchetto snap, contenente i componenti necessari per gestire il funzionamento dei nodi del cluster. Il supporto tecnico commerciale per le soluzioni basate su MicroCloud è offerto 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 Go e sono distribuiti con licenza AGPL 3.0.
MicroClouds per impostazione predefinita applica strumenti per garantire l'affidabilità, consentendo così la creazione di cluster composti da almeno tre nodi (il limite massimo menzionato è di 50 nodi). Il software utilizzato per la gestione del cluster si basa su un sistema di gestione centralizzata di container e macchine virtuali LXD, su una piattaforma per la costruzione di reti virtuali OVN (Open Virtual Network) e su uno storage distribuito e resiliente Ceph. MicroClouds offre strumenti per la configurazione automatica di LXD, Ceph e OVN su tutti i nodi del cluster.
Per la determinazione nuovi server In rete, che possono essere collegate al cluster, si utilizza mDNS, il che consente di configurare l'intero cluster eseguendo un solo comando «microcloud init» su uno dei nodi, dopo aver installato i pacchetti snap lxd, microceph, microcloud e microovn. Il sistema operativo principale è considerato la distribuzione Ubuntu Server, ma gli strumenti non sono vincolati a Ubuntu e possono essere utilizzati in qualsiasi distribuzione per la quale è disponibile la possibilità di installare strumenti snap (Arch, CentOS, Fedora, Debian, openSUSE, RHEL, ecc.). È anche possibile creare cluster basati su sistemi che utilizzano un sistema operativo Ubuntu Core aggiornato in modo atomico.
Dopo aver eseguito il comando «microcloud init», lo strumento determinerà la presenza di altri server nella rete locale, richiederà l'aggiunta di dischi allo storage condiviso Ceph e offrirà la possibilità di configurare i parametri della rete virtuale. Per essere inclusi nel cluster, sui server devono essere preventivamente installati i pacchetti snap citati in precedenza. La configurazione del cluster può essere salvata in formato YAML per il successivo lancio di sistemi analoghi. Per aggiungere ulteriori nodi dopo il completamento dell'inizializzazione, si può utilizzare il comando «microcloud add».
Lo storage file system generale è creato includendo la replicazione e la tolleranza ai guasti, consentendo di non perdere dati nel caso di guasti di singoli nodi, grazie alla conservazione di più istanze dei dati su nodi diversi. Per implementare uno storage basato su Ceph in un cluster, oltre ai dischi locali, devono essere presenti su tre computer diversi almeno tre dischi separati dedicati allo storage distribuito 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, nonché di accedere allo storage condiviso Ceph e agli strumenti di gestione centralizzata 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 di macchine virtuali o dei contenitori nel cluster può essere applicato OpenID Connect (OIDC) e l'autorizzazione basata su OpenFGA.

È possibile gestire in modo flessibile le risorse fornite, come CPU, memoria e I/O, con supporto per dispositivi USB, GPU e archiviazione. Gli ambienti isolati e virtuali possono essere spostati tra i nodi con migrazione live e salvati tramite snapshot. Le metriche delle prestazioni del cluster e i log degli eventi possono essere esportati per il monitoraggio tramite Prometheus e Grafana.
Oltre a creare cluster di lavoro e sistemi cloud privati, gli strumenti sono anche utili per la rapida realizzazione di esperimenti sui sistemi degli sviluppatori. Ad esempio, MicroCloud può essere utilizzato per simulare un cluster sul laptop dello sviluppatore, testare le applicazioni cloud in fase di sviluppo, sperimentare nuove tecnologie o simulare infrastrutture complesse.
Fonte: opennet.ru
