A method comprising: providing a graph, stored within a graph database, that defines relationships between one or more hardware components of a plurality of computers and component characteristics of the one or more hardware components, and relationships between one or more applications and requirements of the one or more applications; receiving, by an enterprise data center, a selection of an application; determining, by the enterprise data center, via the graph, whether at least one computer of the plurality of computers with hardware components capable of meeting the requirements of the application exists; if the at least one computer exists, the enterprise data center: communicating the application to the at least one computer; triggering the at least one computer to execute the application; and communicating, from the at least one computer, data processed by the application to an external system, wherein communicating the application to the at least one computer further comprises: communicating a control plane message to the at least one computer that specifies the application; communicating, by the at least one computer, authentication credentials to an authentication service; if the authentication service authenticates the at least one computer, communicating, by the at least one computer, a request to download the application from an application repository that stores a plurality of applications; receiving the requested application from the application repository; and if the at least one computer exists: determining, by an agent, changes to hardware components of the at least one computer of the plurality of computers; and communicating, by the agent, the changes to the graph so that the graph represents a current state of the plurality of computers. providing a graph, stored within a graph database, that defines relationships between one or more hardware components of a plurality of computers and component characteristics of the one or more hardware components, and relationships between one or more applications and requirements of the one or more applications; receiving, by an enterprise data center, a selection of an application; determining, by the enterprise data center, via the graph, whether at least one computer of the plurality of computers with hardware components capable of meeting the requirements of the application exists; if the at least one computer exists, the enterprise data center: communicating the application to the at least one computer; triggering the at least one computer to execute the application; and communicating, from the at least one computer, data processed by the application to an external system, communicating the application to the at least one computer; triggering the at least one computer to execute the application; and communicating, from the at least one computer, data processed by the application to an external system, wherein communicating the application to the at least one computer further comprises: communicating a control plane message to the at least one computer that specifies the application; communicating, by the at least one computer, authentication credentials to an authentication service; if the authentication service authenticates the at least one computer, communicating, by the at least one computer, a request to download the application from an application repository that stores a plurality of applications; receiving the requested application from the application repository; and if the at least one computer exists: determining, by an agent, changes to hardware components of the at least one computer of the plurality of computers; and communicating, by the agent, the changes to the graph so that the graph represents a current state of the plurality of computers. communicating a control plane message to the at least one computer that specifies the application; communicating, by the at least one computer, authentication credentials to an authentication service; if the authentication service authenticates the at least one computer, communicating, by the at least one computer, a request to download the application from an application repository that stores a plurality of applications; receiving the requested application from the application repository; and if the at least one computer exists: determining, by an agent, changes to hardware components of the at least one computer of the plurality of computers; and communicating, by the agent, the changes to the graph so that the graph represents a current state of the plurality of computers. determining, by an agent, changes to hardware components of the at least one computer of the plurality of computers; and communicating, by the agent, the changes to the graph so that the graph represents a current state of the plurality of computers.