Modular computing is the disaggregation of compute resources in a chassis or system. Resources can be storage, CPUs, memory, accelerators, and networking. IT teams can then use software to assemble the assets and define the exact resources needed to support apps or services.
Modern applications have dynamic resource requirements that require flexible infrastructure. There is also constant technological change that will deliver more performance and new capabilities. However, new technology needs to be absorbed in a way that is nondisruptive to customer environments.
Modular computing is defined as sets of computing resources that are combined with software to become a server. The users allocate only the resources they need for a particular application.
For example, CPUs, GPUs, and NVMe drives can reside within a chassis and be interconnected with a high-speed, low-latency fabric. Using software, IT teams can attach one or more GPUs or drives to the CPUs, creating a server optimized for a specific application.
Each time an application is created, a set of computing services and resources is defined to support it. When the application has expired, the computing support expires as well, and resources become available for other apps.
In practice, modular computing requires the cooperation of OEMs (original equipment manufacturers). OEMs are currently adopting industry standards such as those from IEEE for modular computing in blade and rack servers, including:
With current technology, the distance between the various modular computing items needs to be relatively close, usually within the same rack.
At the heart of modular computing is flexible infrastructure that can be customized and optimized to meet the needs of applications. The benefits of modular computing include:
Because compute resources are allocated or shared, modular computing reduces overprovisioning and underprovisioning. It also allows the deployment of more applications with fewer resources and a smaller footprint of server space or cloud services.
In perhaps 10 years' time, modular computing will enable microallocation and rely less on hypervisor fees, also known as licensing fees, and other software present on computing cores. Also, because modular computing systems can be selectively upgraded piece by piece, lifecycles for hardware overall are extended, lowering ongoing costs over time.
Modular computing can be thought of as bringing DevOps concepts—such as containerization, automation, and virtualization—to hardware management.
For example, modular computing resources can be managed and defined through software, increasing agility and improving planning, cost control, and compliance through enhanced observability. As IT teams set policies, automation can streamline processes and further reduce workloads.
Modular computing is, by nature, growth-ready, which means scaling is as simple as adding or upgrading individual modules. It's also future-ready, designed to evolve as new technologies and business objectives emerge. Modular computing will also enable hot-swapping of components, that is, the ability to upgrade components without taking the entire system offline.
Modular computing's flexibility can also help provide developers the exact resources they need to optimize application performance and deliver high-quality customer experiences.
These are compute, storage, and networking resources that are separated from underlying physical infrastructure and can be used independently of each other.
This is a method of defining and provisioning infrastructure using definition files containing code. Modular computing can be configured using a similar approach.
Applications or services that have been allowed to continue using dedicated infrastructure become difficult to scale and require separate, dedicated management. They are referred to as siloed.
The term bare metal originally referred to any server without a defined operating system, with applications running directly on hardware. The term is used today to refer to an operating system and application that are run on a server without virtualization..