Orchestration and scheduling of services
AssigneeMicrosoft Technology Licensing, LLC
InventorsRobert Lovejoy Goodwin, Janaina Barreiro Gambaro Bueno, Sitaramaswamy V. Lanka, Javier Garcia Flynn, Pedram Faghihi Rezaei, Karthik Pattabiraman
Life of this patent
Estimating the term…
Abstract
This document relates to orchestration and scheduling of services. One example method involves obtaining dependency information for an application. The dependency information can represent data dependencies between individual services of the application. The example method can also involve identifying runtime characteristics of the individual services and performing automated orchestration of the individual services into one or more application processes based at least on the dependency information and the runtime characteristics.
Claims24
A method comprising:
- obtaining dependency information for an application, the dependency information representing data dependencies between a plurality of services of the application;
- identifying actual runtime characteristics of individual services of the plurality of services of the application based at least on an execution log reflecting previous executions of the application when the plurality of services ran in a first application process on a first computing device;
- identifying, based at least on the dependency information, preceding services of the plurality of services that provide input data to the individual services and subsequent services of the plurality of services that depend on output data of the individual services;
- based at least on the actual runtime characteristics, determining at least one of serialization costs of removing the individual services from the first application process or network costs of removing the individual services from the first application process, the serialization costs including input data serialization costs of serializing the input data from the preceding services and output data serialization costs of serializing the output data for the subsequent services, the network costs including input data network costs of sending the input data from the preceding services over a network from the first computing device to a second computing device and output data network costs of sending the output data for the subsequent services over the network from the second computing device to the first computing device;
- based at least on the actual runtime characteristics, determining benefits of freeing computing resources on the first computing device by removing the individual services from the first application process;
- and
- based at least on the benefits of freeing the computing resources and the at least one of the serialization costs or the network costs, performing automated orchestration of the application by selecting a particular service from the plurality of services and moving the particular service from the first application process on the first computing device into a second application process on the second computing device while continuing to execute other services of the application in the first application process on the first computing device.
A system comprising:
- a first computing cluster include a least one first processor configured to execute a first application process;
- a second computing cluster include a least one second processor configured to execute a second application process;
- and
- a computing device include at least one third processor configured to perform orchestration of a plurality of services of an application on the first computing cluster and the second computing cluster by:
- obtaining dependency information reflecting dependencies between the plurality of services of the application;
- identifying, based at least on the dependency information, preceding services of the plurality of services that provide input data to individual services and subsequent services of the plurality of services that depend on output data of the individual services;
- obtaining runtime information representing actual runtime characteristics of the individual services based at least on an execution log reflecting previous executions of the application when the plurality of services ran in the first application process on the first computing cluster;
- based at least on the actual runtime characteristics, determining at least one of serialization costs of removing the individual services from the first application process or network costs of removing the individual services from the first application process, the serialization costs including input data serialization costs of serializing the input data from the preceding services and output data serialization costs of serializing the output data for the subsequent services, the network costs including input data network costs of sending the input data from the preceding services over a network from the first computing cluster to the second computing cluster and output data network costs of sending the output data for the subsequent services over the network from the second computing cluster to the first computing cluster;
- based at least on the actual runtime characteristics, determining benefits of freeing computing resources on the first computing cluster by removing the individual services from the first application process;
- and
- based at least on the benefits of freeing the computing resources and the at least one of the serialization costs or the network costs, orchestrating the individual services by selecting a particular service of the plurality that previously executed in the first application process with other services of the application on the first computing cluster and moving the particular service into the second application process on the second computing cluster while continuing to execute the other services of the application in the first application process on the first computing cluster.
A computer-readable storage media storing executable instructions which, when executed by a processing unit, cause the processing unit to perform acts comprising:
- obtaining dependency information for an application, the dependency information representing data dependencies between a plurality of services of the application;
- identifying actual runtime characteristics of individual services of the plurality of services of the application based at least on an execution log reflecting previous executions of the application when the plurality of services ran in a first application process on a first computing device;
- identifying, based at least on the dependency information, preceding services of the plurality of services that provide input data to the individual services and subsequent services of the plurality of services that depend on output data of the individual services;
- based at least on the actual runtime characteristics, determining at least one of serialization costs of removing the individual services from the first application process or network costs of removing the individual services from the first application process, the serialization costs including input data serialization costs of serializing the input data from the preceding services and output data serialization costs of serializing the output data for the subsequent services, the network costs including input data network costs of sending the input data from the preceding services over a network from the first computing device to a second computing device and output data network costs of sending the output data for the subsequent services over the network from the second computing device to the first computing device;
- based at least on the actual runtime characteristics, determining benefits of freeing computing resources on the first computing device by removing the individual services from the first application process;
- and
- based at least on the benefits of freeing the computing resources and the at least one of the serialization costs or the network costs, performing automated orchestration of the application by selecting a particular service from the plurality of services and moving the particular service from the first application process on the first computing device into the a second application process on the second computing device while continuing to execute other services of the application in the first application process on the first computing device.
Dependencies are inferred from the claim text.