Automatically Deployed Information Technology (IT) System and Method
Disclosed herein are systems, methods, and apparatuses where a controller can automatically manage a physical infrastructure of a computer system based on a plurality of system rules, a system state for the computer system, and a plurality of templates. Techniques for automatically adding resources such as computer, storage, and/or networking resources to the computer system are described. Also described are techniques for automatically deploying applications and services on such resources. Also described are techniques for spawning computing environments. These techniques provide a scalable computer system that can serve as a turnkey scalable private cloud.
1 . A system for managing bare metal computing resources, comprising:
a controller;
a set of computing resource configuration descriptions that are readable by the controller, wherein the set of computing resource configuration descriptions are accessible according to a resource request that is hardware agnostic; and
a memory storing machine-readable instructions configured to cause the controller to:
read the set of computing resource configuration descriptions;
search a computing resource inventory for bare metal computing resources based at least on the set of computing resource configuration descriptions;
engage at least one computer network in order to power on, boot and configure the bare metal computing resources in accordance with the set of computing resource configuration descriptions; and
update at least one computing resource configuration record with system state information, including deployment information, based at least on how the bare metal computing resources have been configured.
2 . The system of claim 1 , further comprising:
the computing resource inventory.
3 . The system of claim 1 , wherein the machine-readable instructions configured to cause the controller to engage the at least one computer network further comprise machine-readable instructions configured to cause the controller to:
update at least one PCI switch.
4 . The system of claim 3 , wherein the at least one PCI switch is updated to boot or configure the bare metal computing resources.
5 . The system of claim 1 , wherein the machine-readable instructions configured to cause the controller to engage the at least one computer network further comprise machine-readable instructions configured to cause the controller to:
connect with at least one storage resource using a nvmeof protocol.
6 . The system of claim 1 , wherein the machine-readable instructions configured to cause the controller to engage the at least one computer network in order to configure the bare metal computing resources is performed out of band and further comprise machine-readable instructions configured to cause the controller to:
connect to at least one of the bare metal computing resources via a Redfish API.
7 . The system of claim 1 , wherein the set of computing resource configuration descriptions comprise at least one playbook.
8 . The system of claim 1 , wherein the machine-readable instructions configured to cause the controller to configure the bare metal computing resources further comprise machine-readable instructions configured to cause the controller to:
initiate at least one BIOS update for at least one of the bare metal computing resources.
9 . The system of claim 1 , wherein the machine-readable instructions configured to cause the controller to configure the bare metal computing resources further comprise machine-readable instructions configured to cause the controller to:
provide at least one operating system image to at least one of the bare metal computing resources.
10 . The system of claim 9 , wherein the at least one operating system image includes base directories and operating system tools.
11 . The system of claim 9 , wherein the machine-readable instructions further comprise machine-readable instructions configured to cause the controller to:
provide metadata with the at least one operating system image to configure the at least one of the bare metal computing resources.
12 . The system of claim 1 , wherein the machine-readable instructions configured to cause the controller to engage the at least one computer network in order to configure the bare metal computing resources further comprise machine-readable instructions configured to cause the controller to:
simultaneously update a plurality of switches associated with a plurality of storage resources.
13 . The system of claim 1 , wherein the machine-readable instructions configured to cause the controller to engage the at least one computer network in order to configure the bare metal computing resources further comprise machine-readable instructions configured to cause the controller to:
query a system state to determine whether at least one of the bare metal computing resources is available and writeable.
14 . The system of claim 1 , wherein the machine-readable instructions configured to cause the controller to engage the at least one computer network in order to configure the bare metal computing resources further comprise machine-readable instructions configured to cause the controller to:
couple at least one storage resource to at least one processing resource.
15 . The system of claim 1 , wherein the machine-readable instructions configured to cause the controller to engage the at least one computer network in order to configure the bare metal computing resources further comprise machine-readable instructions configured to cause the controller to:
determine an authorization status for at least one of the bare metal computing resources; and
provide access to the at least one of the bare metal computing resources when authorized.
16 . The system of claim 1 , wherein the machine-readable instructions configured to cause the controller to engage the at least one computer network in order to configure the bare metal computing resources further comprise machine-readable instructions configured to cause the controller to:
perform a PXE boot of at least one of the bare metal computing resources.
17 . The system of claim 1 , wherein the at least one computer network employs a Remote Direct Memory Access (RDMA) protocol in order to configure at least one of the bare metal computing resources.
18 . The system of claim 1 , wherein the machine-readable instructions further comprise machine-readable instructions configured to cause the controller to:
assess an infrastructure requirement; and
automatically adjust availability of the bare metal computing resources based at least on the assessing.
19 . The system of claim 1 , wherein the machine-readable instructions further comprise machine-readable instructions configured to cause the controller to:
assess an infrastructure requirement; and
automatically adjust availability of the bare metal computing resources based at least on the assessing.
20 . The system of claim 1 , wherein the machine-readable instructions further comprise machine-readable instructions configured to cause the controller to:
track a history of changes, including which computing resource configuration descriptions have been utilized; and
provide the history of changes to an alerting system.
21 . The system of claim 1 , wherein the resource request comprises at least one of:
build an IT system;
build an individual stack in an IT system;
create a service or application;
migrate a service or application;
change a service or application;
remove a service or application;
clone a stack onto another stack on a different network; and/or
create, add, remove, set up, configure, or reconfigure a resource or system component.
22 . A method for managing bare metal computing resources, comprising:
receiving a resource request that is hardware agnostic;
accessing at least one computing resource configuration description based on the resource request;
reading the at least one computing resource configuration description;
searching a computing resource inventory for bare metal computing resources based at least on the at least one computing resource configuration description;
engaging at least one computer network in order to power on, boot and configure the bare metal computing resources in accordance with the at least one computing resource configuration description; and
updating at least one computing resource configuration record with system state information, including deployment information, based at least on configuring the bare metal computing resources.
23 . A non-transitory computer-readable medium comprising processor-issuable instructions configured to cause the processor to:
receive a resource request that is hardware agnostic;
access at least one computing resource configuration description based on the resource request;
read the at least one computing resource configuration description;
search a computing resource inventory for bare metal computing resources based at least on the at least one computing resource configuration descriptions;
engage at least one computer network in order to power on, boot and configure the bare metal computing resources in accordance with the at least one computing resource configuration description; and
update at least one computing resource configuration record with system state information, including deployment information, based at least on configuring the bare metal computing resources.
24 . A system for managing bare metal computing resources, comprising:
a controller;
a computing resource inventory;
a set of computing resource configuration descriptions that are readable by the controller, wherein the computing resource configuration descriptions accessible according to a resource request that is hardware agnostic;
a memory storing machine-readable instructions configured to cause the controller to:
read the set of computing resource configuration descriptions;
search the computing resource inventory for bare metal computing resources based at least on the set of computing resource configuration descriptions;
engage at least one computer network in order to power on, boot and configure the bare metal computing resources in accordance with the set of computing resource configuration descriptions, including:
query a system state to determine whether at least one of the bare metal computing resources is available and writeable;
connect to the at least one of the bare metal resources when available via a Redfish API;
initiate at least one BIOS update for the at least one of the bare metal resources;
provide at least one operating system image to the at least one of the bare metal computing resources, the at least one operating system image comprising base directories and operating system tools; and
couple at least one storage resource to at least one processing resource;
receive a firmware version from the at least one of the bare metal computing resources; and
update at least one computing resource configuration record with system state information, including deployment information, based at least on configuring the bare metal computing resources and the firmware version.
25 . The system of claim 24 , wherein the machine-readable instructions further comprise machine-readable instructions configured to cause the controller to:
simultaneously update a plurality of PCI switches associated with a plurality of storage resources.