Invented by Craig M. Fulton, Stephen Burgess, Arnold Bellini, Iii, ConnectWise Inc
The ConnectWise Inc invention works as followsThe present disclosure simplifies the improvement of cloud services by updating their configuration information and resource requirements. A decision logic module is able to monitor the resource usage of the cloud service and determine if action is needed. If action is needed, an update will be created and applied. Notifications can also be sent about the situation and its resolution. Correlation of cloud services can be required to give real-time access information not available to one entity. A predictive engine can learn and predict resolutions in many different ways.
Background for Systems and Methods for Updating the Configuration of a Cloud Service
A cloud service may include a server that provides a service or resource to a client over a network. The cloud service can provide one or more resources or services via the network. Several client devices may be configured for this purpose. As more client devices use the various services and resources offered by the cloud service it becomes difficult to manage the configurations on all of them or to identify errors in order to minimize downtime.
Cloud services can be a software as a service (?SaaS? Software as a Service is one example of cloud services. Cloud services can include Software as a Service, Platform as a service (Paas), or Infrastructure As a Service. Platform as a Service, Infrastructure as a service (IaaS) or Platform-as-a-Service. SaaS is a model of software distribution in which a service provider or vendor hosts an application and makes it available over the internet. PaaS is the delivery of a network operating system, along with the associated services without the need to download or install the operating system. IaaS includes the outsourcing of equipment to support operations. This can include storage, hardware and servers, as well as network components. These can be accessed over a network.
Cloud services can be useful for end-user devices or client devices by scaling resources to match the usage of end-user devices. It can be used to distribute computing resources evenly. Cloud-based email services, for example, can increase the storage space allotted to a user in order to handle a temporary rise in emails with large attachments. A cloud-based web service, for example, can improve a website’s response by increasing its network bandwidth during peak usage, such as a response to an ecommerce site sale.
Systems and methods in the present disclosure, therefore, can improve the performance a cloud service, by improving, for example the cloud service’s response time, latencies, or capabilities. A system, for example, can measure the characteristics of a cloud service. The system can use the measured characteristics across multiple client devices and resources to create a notification or support ticket for a customer service system. The ticket or notification that the system generates can be received by the customer support systems via their network interface. Customer support system can create, in response to the notification or ticket, a configuration to improve performance of cloud service. The cloud service or the system can use the configuration update generated. The system can therefore improve the performance by updating the configuration of the service in response to the processing of measured characteristics.
Cloud services can be provided in a multitenant fashion. A single machine can offer the same service to several groups of users, so that they are unaware of each other and have exclusive access to a complete instance of cloud services. Multi-tenancy is possible to implement natively. The cloud service can be designed so that it presents multiple isolated instances. Multi-tenancy is possible using virtual machines that each run their own instance of cloud service. In either case, multiple instances of a cloud service can be used by different tenants while sharing resources on the physical machine. It can be done by having different configuration and state data for each instance. Each instance of a cloud-based email service, for example, may have different mailboxes and email domains (state information). It could be useful to have a set of global configuration and state data that controls the operation of a cloud service independent of whichever instance. “For example, cloud-based email services may include a log for system errors (state information), and a setting to target the maximum memory usage (configuration data).
Multi-tenancy can be beneficial for using machine resources more efficiently because peak usage may differ for each tenant. In an example embodiment, employees of two tenants who use a cloud-based email service might both check their emails when they first arrive at work in the morning. This creates a high load during the first hour. However, the employees may be in different time zones. Therefore, the machine resources could be used first by one tenant and then the second. In another embodiment, two tenants could be using cloud-based customer service system. One tenant might be a travel agency with peaks in customer interaction around the summer months. Another tenant might be a tax accounting firm with peaks in customer interaction between March and April leading up to Federal Tax Filing deadline. In both cases the staggered peak resource usage can be beneficial in using the machine resources efficiently. The same resources could handle both peak requirements rather than a separate set for each peak.
To take full advantage of multi-tenancy, it might be necessary to change the configuration of cloud service. In order to continue with the previous email cloud service embodiment, it may also be necessary for each tenant to have a schedule set up that allows them more email connections in the morning for their time zone. Configuration may take the form of a resource allocation. To continue the email cloud service example described earlier, it may be required to increase the maximum number of connections allowed for each tenant during the morning hour of that tenant’s time zone.
It may be necessary, in order to make adjustments to the cloud service configuration, to compare information from multiple tenants. The tenants in the examples above may be unwilling to share their information. Therefore, to improve the performance of the cloud services, real-time access may be used to anonymous cloud statistics.
The present disclosure describes systems and methods that can be used to improve the operation of a cloud service. This is done by updating its configuration and resource allocation based on the measurement of resource usage and state information. This improvement in the operation can be achieved by utilizing a novel database that allows the database to be queried using a canonical presentation of state information and resource usage. This improvement can also use a prediction engine in order to learn and anticipate the conditions that may arise during normal usage of the cloud service.
At the very least, one aspect of this disclosure is a method to improve performance of a cloud-based service. The method may include a collector component that is executed by a system configuration comprising one of more processors. This system receives data packets containing state information from a cloud-based service corresponding to multiple client devices accessing the cloud-based service via a networking. Cloud service can be configured so that it provides one or more services via the network to the plurality client devices. A decision component of the service configuration system can determine to generate a notification of an initial error (e.g. disruption of service or outdated configuration information; exceeded capacity; virus, malicious code and malware, hardware failures, latency, etc.) based upon a comparison between a feature of a client device from the plurality received by the collector component. The decision component can store the first notification in the memory of the service system. The decision component can determine to generate a secondary notification of error based upon a comparison between a characteristic of a client device from the plurality stored in the collected state information. A support application programming system of the service configuraton system can generate a request for an update to the configuration based on the correlation of the first notification in the memory of the system configuration system with the second notification. The support application programming system can provide, in response to the request generated from the decision component to the cloud services, a configured update to the cloud services to cause them to update the configuration of the cloudservice.
The service configuration system is able to measure the characteristic of resource usage of a cloud service. The service configuration system is able to generate the request for a configuration update based upon the characteristic of resource usage.
The service configuration can measure the first resource usage of the cloud service that is associated with the client device. The service configuration can measure the second resource usage of the cloud service that is associated with the device. The service configuration can enter the first and second resource usages into a predictive engine. The prediction engine can provide a predicted resource usage for the multiple client devices to the service configuration system. The service configuration can generate an alarm if the predicted resource usage exceeds a threshold.
The service configuration system is able to convert the alert into a ticket. The service configuration system is able to transmit the electronic ticket from a customer support system.
The service configuration can generate a ticket that contains the first notification about the error. The service configuration can create a second ticket that contains the second notification. The service configuration can identify a match by comparing the first electronic tickets with the second electronic tickets. The service configuration system may select a configuration update type based on the match.
The service configuration can generate an electronic ticket containing the first notification of error. The first error notification can indicate a disruption in an electronic mail service offered by the cloud service. The service configuration system may generate a second ticket containing the second notification. The second notification can indicate that the cloud service has disrupted the electronic mail service. The system of service configuration can compare the first and second electronic tickets to determine if there is a match that corresponds to a disruption in the electronic mail service offered by the cloud service. The system can create a third alert in response to the match. The service configuration can send the third notification from the first and second client devices to a third device. This third device is configured to access electronic mail provided by the cloud services.
The service configuration system may transmit the third notification before the third device fails to access the electronic email service. The service configuration system may transmit the third notice via a different communication channel than the electronic mail service that is experiencing the disruption.
The service configuration system may transmit a request to the cloud service. The service configuration system is able to receive data packets containing the state information in response to the query.
The service configuration system may transmit security credentials, such as a username, password or token. It can also transmit pin numbers, authentication codes, or pin numbers. The service configuration system may receive data packets containing state information in response to the validation of security credentials.
At lease one aspect may be directed towards a system for improving performance of a cloud-based service. The system may include a collector, a decision component and a support API executed by an service configuration system having one or more processors. The collector component receives data packets containing state information from a cloud-based service that correspond to a plurality client devices accessing the cloud-based service via a networking. Cloud service is configured to deliver one or more services via network to the plurality client devices. The decision component may decide to generate a notification of an initial error based upon a comparison between a feature of a client device from the plurality received by the collector component and a characteristic stored in state information. The decision component may store the first error notification in the memory of the system of service configuration. The decision component may decide to generate a secondary notification of an error based upon a comparison between a characteristic of the second client device among the plurality of clients devices stored in state information received by collector component. The support application can create a request for configuration update based on the correlation of the first notification in the memory of the service system and the second notification. The support application can send a request to the decision component to have the cloud service update its configuration.
The state information, and resource usage that characterizes a cloud service can be measured more accurately than those of a similar service running on an equivalent physical machine. The execution environment for a cloud-based service can be more precisely controlled than that of the service running on an equivalent physical machine. This can be true whether a multitenant cloud service is running natively on the machine or if virtual machines are being used to manage multiple instances. In an example embodiment, for a multi-tenanted cloud service using multiple virtual machines it may be possible to measure the network bandwidth usage of each virtual computer, and thus each tenant separately, by using an API to the hypervisor. The network driver on a physically machine may not have the ability to report per-process consumption, and may not therefore be able provide network utilization to multiple tenants. The hypervisor can provide an API for CPU throttling, which allows resource sharing to be based on allocation. In a physical computer, the operating system scheduler might not allow such fine-grained control at the per-process level. These information and controls can be used to enhance the performance of a cloud service. This is done by applying updates to configurations and resource allocations based on improved measurements and using the improved control features. Improved measurements can be used to better predict the operation and performance of the cloud service, and can improve the selection of configuration updates and resource allotments. In the example of an email cloud service, it is possible to review the CPU utilization for the tenants and find that two tenants are using the most CPU at different times in the morning. This may be due to the fact that they are in different time zones. It may then be possible to assign a higher limit of CPU to each tenant to allow them to operate more efficiently.
The cloud service’s improvement may depend on real-time information that the tenants do not have access to, but which is only available to it.” The two tenants of the previous example might be legally bound to keep their operations secret from each other and therefore be unable to coordinate a staggered increase in CPU limit. However, a neutral third-party running the cloud service could be able make this determination, without referring to the specifics of the operations conducted by either tenant.Click here to view the patent on Google Patents.