Managing runtime execution of applications on cloud computing systems
First Claim
1. A computer-implemented method of managing applications hosted in a cloud computing environment, where application instances, comprising instances of the same application, execute on different respective hosts in the cloud computing environment, the method comprising:
- distributing, to each of the hosts, to concurrently execute with each application instance a corresponding monitor application instance, such that each application instance on a given host is paired with a monitor application instance on the given host in the cloud computing environment, the monitor application comprising an application that was generated from a specification of runtime properties and characteristics of the application and the cloud computing infrastructure, the specification defining properties of the application and the cloud computing infrastructure that are to be monitored and rules based on the properties and characteristics, each rule comprising one or more conditions, and wherein one of the properties comprise an aggregate property of the application;
executing each paired application instance and monitor instance on a different host in the cloud computing environment, wherein the cloud computing environment provides access to the application instances to users outside the cloud computing infrastructure;
each monitor application concurrently running on a host with an application instance monitors execution of the corresponding application instance, by obtaining from the host information regarding usage of resources on the host by the application instance, runtime properties, characteristics and performance metrics of the cloud computing infrastructure, and properties and performance metrics exported by that application instance and other application instances sharing common resources on the host;
each of the monitor applications using the host information to repeatedly determine whether a rule condition in the specification has been satisfied; and
collecting corresponding values of the aggregate properties from the monitor instances and determining whether a condition of a rule in the application specification is satisfied by an aggregation of the collected values.
2 Assignments
0 Petitions
Accused Products
Abstract
Instances of a same application execute on different respective hosts in a cloud computing environment. Instances of a monitor application are distributed to concurrently execute with each application instance on a host in the cloud environment, which provides user access to the application instances. The monitor application may be generated from a specification, which may define properties of the application/cloud to monitor and rules based on the properties. Each rule may have one or more conditions. Each monitor instance running on a host, monitors execution of the corresponding application instance on that host by obtaining from the host information regarding values of properties on the host per the application instance. Each monitor instance may evaluate the local host information or aggregate information collected from hosts running other instances of the monitor application, to repeatedly determine whether a rule condition has been violated. On violation, a user-specified handler is triggered.
179 Citations
19 Claims
-
1. A computer-implemented method of managing applications hosted in a cloud computing environment, where application instances, comprising instances of the same application, execute on different respective hosts in the cloud computing environment, the method comprising:
-
distributing, to each of the hosts, to concurrently execute with each application instance a corresponding monitor application instance, such that each application instance on a given host is paired with a monitor application instance on the given host in the cloud computing environment, the monitor application comprising an application that was generated from a specification of runtime properties and characteristics of the application and the cloud computing infrastructure, the specification defining properties of the application and the cloud computing infrastructure that are to be monitored and rules based on the properties and characteristics, each rule comprising one or more conditions, and wherein one of the properties comprise an aggregate property of the application; executing each paired application instance and monitor instance on a different host in the cloud computing environment, wherein the cloud computing environment provides access to the application instances to users outside the cloud computing infrastructure; each monitor application concurrently running on a host with an application instance monitors execution of the corresponding application instance, by obtaining from the host information regarding usage of resources on the host by the application instance, runtime properties, characteristics and performance metrics of the cloud computing infrastructure, and properties and performance metrics exported by that application instance and other application instances sharing common resources on the host; each of the monitor applications using the host information to repeatedly determine whether a rule condition in the specification has been satisfied; and collecting corresponding values of the aggregate properties from the monitor instances and determining whether a condition of a rule in the application specification is satisfied by an aggregation of the collected values. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. One or more computer-readable storage memory devices storing information to enable host computers in a cloud computing network to perform a process, wherein the computer-readable storage media is not a signal, wherein host computers of the cloud computing network host arbitrary applications of various users by distributing the arbitrary applications among the host computers, the host computers provided with connectivity by a data network, the process comprising:
-
executing a plurality of application instances on respective host computers in the cloud computing network, each application instance comprising a copy of a same application program, where users access the application instances on the host computers via the cloud computing network, the cloud computing network providing access to the application instances by the users via the cloud computing network; executing a plurality of monitor instances, one on each of the host computers hosting the application instances, respectively, wherein on any given of the host computers hosting a given monitor instance and given application instance, the monitor instance monitors effects of execution of the given application instance on the given host computer, each of the monitor instances comprising an instance of a same program compiled from a same specification that describes different types of runtime properties or characteristics of an element and/or aggregations thereof, the element comprising a component of the cloud computing network including the data network and/or the host computers and/or the application program; and obtaining, by the application monitor instances, values of the properties and characteristics, and transmitting indicia of the values. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A method performed in a cloud computing infrastructure that includes host computers that host different applications, the cloud computing infrastructure managing which host computers host instances of which of the applications, the cloud computing infrastructure providing users with uniform access to the applications, the method comprising:
-
receiving a monitor application, the monitor application having been compiled by a compiler compiling a specification, where the compiler implements a specification language that provides a sensor construct that includes a sensor type field and a frequency field, and a plurality of sensor types for the sensor construct, each sensor type corresponding to a generic network usage property or a generic computation usage property, the specification corresponding to an application and/or the cloud computing infrastructure, the specification comprising text conforming to the specification language, the specification comprising a particular sensor construct describing identifying a particular one of the sensor types or an aggregation, wherein when the compiler compiles the specification to generate the monitor application it builds the monitor application according to the specification such that the monitor application, when executed, will periodically query any host computer on which it is running for values corresponding to the sensor type identified in the specification; and distributing instances of the application corresponding to the specification into the cloud computing infrastructure, the distributing comprising determining which host computers should host the application, and assuring that any host computer hosting the application is also provided with an instance of the monitor application, wherein the monitor application obtains, from whichever host computer it is running on, values of different properties including network resource usage or computation resource usage by the application on such host computer along-with runtime properties and characteristics of the cloud computing infrastructure. - View Dependent Claims (15, 16, 17, 18, 19)
-
Specification