The MetalSoft is a hardware & software orchestration solution that enables cloud-like consumption of physical resources such as switches, servers and storages. This documentation covers the “Admin” section of the product and provides more details regarding the way the system is built.
MetalSoft has been designed to handle both hyper-scale cloud data-centers but also highly distributed “edge” deployments. There is a central “controller” which registers user’s intent and determines the changes that need to happen within the infrastructure and there are many datacenter agents that will effect that change on the physical infrastructure.
MetalSoft offers the option to use controller as a service.
The agents are lightweight semi-independent pieces of software that act on behalf of the “core”. They “phone home” to create a connection to the core on which new configurations can be pushed down. They are able to survive disconnected from the core indefinitely. They update themselves if needed and need no manual maintenance and no firewall ports open. They will attempt to recover from a failed update and will keep reconnecting indefinitely in the event of a core or network failure. During the downtime there is no impact on the running infrastructure.
Users and Admins¶
The service is designed to offer users a way to self-serve themselves with resources instead of relying on somebody to deliver them. At the same time the Admins need to be able to own the lifecycle of equipments, perform maintenance etc. To enable this the MetalSoft software separates the two user types by providing separate UIs which operate with separate “logical” and “physical” concepts.
- Users The consumers of the “resources”, which own the applications and data.
- Admins The IT administrator staff that owns the equipment’s lifecycle.
User interface (a.k.a Infrastructure Editor)¶
The Infrastructure editor is a self-service portal allowing users to ‘draw’ their desired infrastructures. It allows for complex networking topologies to be created as well as cluster level manipulation of hundreds of servers.
An instance array hides a lot of complexity: