Canonical has announced the readiness of the MicroCloud toolkit, which allows you to quickly deploy computing clusters and cloud systems on your equipment with shared distributed data storage and a secure virtual network. The toolkit is designed as a snap package, which includes the components necessary to manage the operation of cluster nodes. Commercial technical support for MicroCloud-based solutions is provided as part of the Ubuntu Pro service, but those who can do without support can use the tools without restrictions. The project's developments are written in Go and distributed under the AGPL 3.0 license.
MicroClouds by default uses tools to ensure fault tolerance, so it allows you to create clusters of at least three nodes (clusters of up to 50 nodes are mentioned as the upper limit). The software stack used to manage the cluster is based on the use of the centralized management system for containers and virtual machines LXD, the platform for building virtual networks OVN (Open Virtual Network) and distributed fault-tolerant storage Ceph. MicroClouds provides tools to automatically configure LXD, Ceph and OVN on all cluster nodes.
To determine new servers mDNS is used in the network that can be connected to the cluster, allowing the entire cluster to be configured by running a single command, "microcloud init," on one node, after installing the lxd, microceph, microcloud, and microovn snap packages. Ubuntu Server is considered the primary platform, but the tools are not tied to Ubuntu and can be used on any distribution that supports snap installation (Arch, CentOS, Fedora, Debian, openSUSE, RHEL, etc.). Clusters can also be created on systems running the atomically updated Ubuntu Core OS.
After running the “microcloud init” command, the toolkit will detect the presence of other servers on the local network, prompt you to add disks to the shared Ceph storage, and offer to configure virtual network settings. To be included in the cluster, the above snap packages must first be installed on the servers. The cluster configuration can be saved in YAML format for subsequent deployment of similar systems. To add additional nodes after initialization is complete, you can use the "microcloud add" command.
Shared file storage is created with the inclusion of replication and fault tolerance, which makes it possible in the event of failure of individual nodes not to lose data, thanks to the storage of several copies of data on different nodes. To deploy Ceph-based storage in a cluster, in addition to local disks, three different computers must have at least three separate disks allocated for distributed data storage.
Once the cluster is ready, users can run their applications using system containers or virtual machines, as well as access shared Ceph storage and LXD-based centralized management tools. Kubernetes (Microsoft 8s edition) can be run on top of the cluster to manage the container infrastructure. For user authentication, virtual machines or containers in a cluster can use OpenID Connect (OIDC) and OpenFGA-based authorization.

Flexible management of the provided CPU, memory and I/O resources is possible, as well as forwarding of USB devices, GPUs and drives into the environment. Isolated and virtual environments can be transferred between nodes in live migration mode and saved using snapshots. Cluster performance metrics and event logs can be exported for monitoring using Prometheus and Grafana.
In addition to creating production clusters and private cloud systems, the toolkit is also suitable for quickly conducting experiments on developer systems. For example, MicroCloud can be used to simulate a cluster on a developer's laptop, test development cloud applications, experiment with new technologies, or simulate complex infrastructures.
Source: opennet.ru
