This specification generally relates management of computing environments.
As the number of managed computing environments increases, improved methods for managing and configuring multiple environments are needed to provide greater system efficiency and improved user experience.
In some implementations, a management system provides the ability to monitor and manipulate settings for various computing environments. For example, a centralized platform management system can monitor one or more server environments and record the settings, hardware resources, and load conditions of the server environments. The management system can also change the configuration of the server environments remotely, based on input from an administrator or through automated processes. The management system can monitor and control computing environments at various different levels, for example, for individual computing environments, for groups of multiple computing environments across an organization, or across computing environments of different organizations. The management system can manage multiple computing environments by, for example, spinning-up, tearing-down, cloning, upgrading, validating, and monitoring the computing environments. The ability of the management system to obtain, store, and alter configuration settings of different computing environments facilitates the transfer or replication of settings from one computing environment to another. The management system can provide access to the management functionality through an interface, such as a user interface or application programming interface (API), allowing remote management
Managing multiple computing environments can be burdensome for a platform administrator. In many cases, administrators may need to manually update settings for each computing environment individually, through separate interfaces and separate login credentials. Many systems do not allow the configuration of one computing environment to be easily replicated at other computing environments. As a result, many computing environments do not have their configurations optimized or updated in the manner needed or as quickly as needed. The management techniques discussed herein can significantly improve the process of monitoring, testing, and updating configurations of computing environments, greatly reducing the number of manual actions required by the administrator. The techniques also provide for greater consistency and predictability across computing environments. For example, the management system can enable an administrator to specify a configuration and remotely apply the configuration to any or all of multiple computing environments. As another example, the management system can also transfer or duplicate the configuration settings of one computing environment to one or more other existing computing environments.
In some implementations, a management system maintains a registry of multiple computing environments that communicate with the management system over a network. The management system monitors actions at the managed environments, stores data indicating configurations and detected actions in a repository, and can initiate various actions at the environments, such as configuration changes, execution of workflows, performance tests, etc. The management system provides data for an interface that presents aggregated information about and controls to adjust the managed environments. For example, the management system can provide data that allows a single application to display and change settings, configurations, and applications aggregated across many computing environments. The management system can monitor and manage many aspects of a computing environment, including users, groups, permissions, data privacy, security, access control, and license usage. The management system can also manage multiple computing environments to simplify processes for auditing. For example, the management system can perform audits of actions and settings relating to, among other aspects, users, groups, permissions, data privacy, security, access control, and license usage for various computing environments.
In general, the management system can remotely control each computing environment to adjust settings and configurations, for example, over a local area network and/or over a wide area network such as the Internet. The management system can monitor and react to events and changes at each computing environment, and keep the computing environment's settings and configuration up-to-date.
A management system can monitor and compare the performance of multiple environments. The management system can provide visibility into the impact of settings and configuration changes on performance. For example, the management system can track server performance over time, as well as the settings used, so that the management system can determine relationships between changes in settings and performance. The management system can provide a summary or global view of users and their activity.
A management system may provide version control, including storing information indicating different settings that are active at different times at each individual computing environment managed. In some implementations, the management system can also store and manage versions of documents, such as reports, across multiple computing environments. For example, the management system can track which versions are used by different computing environments, and initiate changes to merge changes, roll back undesired changes, or ensure that computing environments use the most up-to-date versions. The management system can store historical information about modifications to settings and configurations, for example, by logging configuration changes for each individual computing environment. The management system can track configuration changes and store versions of configuration information over time, and can revert computing environments to previous configurations when needed.
In one general aspect, a method includes obtaining, by the management system, configuration information for each of multiple computing environments; storing, by the management system, the configuration information for the multiple computing environments in a repository; monitoring, by the management system, actions that change configurations of the multiple computing environments and recording indications of the changes in the repository; and providing, by the management system, an interface configured to provide information about the configurations of the multiple computing environments and to adjust the configurations of the multiple computing environments in response to input received through the interface.
In some implementations, the obtained configuration information indicates settings, users, or applications of the multiple computing environments.
In some implementations, providing the interface includes providing application data, for presentation at a client device, for a user interface of an application to remotely configure each individual computing environment of the multiple computing environments through communication with the management system over a computer network.
In some implementations, monitoring the actions that change the configurations of the multiple computing environments includes: detecting a change in a configuration setting of a particular computing environment; determining whether the change in the configuration setting satisfies one or more criteria associated with the particular computing environment; and performing an action selected based on determining whether the change in the configuration setting satisfies one or more criteria associated with the particular computing environment.
In some implementations, the method includes detecting actions at the multiple computing environments; and storing log data indicating the detected actions in the repository.
In some implementations, the method includes: storing, by the management system, policy data indicating one or more policies for a particular computing environment of the multiple computing environments; performing, by the management system, an audit of the particular computing system with respect to the one or more policies indicated by the policy data, performing the audit including determining that a configuration parameter of the particular computing environment, a change to a configuration parameter of the particular computing environment, or an action at the particular computing environment does not satisfy the one or more policies indicated by the policy data; and in response to determining that the configuration parameter, change, or action does not satisfy the one or more policies, causing the particular computing environment to alter the configuration parameter, reverse the change, or undo the action.
In some implementations, causing the particular computing environment to alter the configuration parameter, reverse the change, or undo the action is performed automatically by the management system without being requested by a user.
In some implementations, the method includes communicating between the management system and the multiple computing environments using a representational state transfer application programming interface.
In some implementations, the method includes providing management services using a micro-service architecture that has a plurality of container-based modules configured to perform different management tasks.
In some implementations, the container-based modules are software images for software modules configured to run in isolation from each other on a host operating system; the method including: identifying, from among a plurality of management tasks, a management task to perform for a particular computing environment; selecting one of the software modules to perform the identified management task; and performing the management task causing the selected software module to be loaded and run by the management system or by the particular computing environment.
In some implementations, the method includes providing an interface enabling a user to define management tasks and remotely initiate management tasks for individual computing environments, the interface providing functionality to combine a series of management tasks into a workflow and to combine, transfer, or share settings among different computer environments.
In some implementations, the method includes: receiving data indicating a request to replicate at least a portion of a configuration of a first computing environment at a second computing environment; accessing, from the repository, configuration parameters of the first computing environment; and transferring the configuration parameters accessed from the repository to the second computing environment over a network.
In some implementations, the method includes storing, in the repository, configuration information for different versions of settings that were respectively active at a particular computing environment at different times; and providing an interface to apply, to the particular computing environment or another computing environment, any of the different versions of settings that were respectively active at the particular environment at different times.
In some implementations, the method includes providing, by the management system, an interface to define performance tests to be executed for the computing environments; performing a performance test for a particular computing environment; determining, based on the performance test, that the particular computing environment does not provide at least a threshold level of performance; and in response to determining that the particular computing environment does not provide at least the threshold level of performance, causing a notification to be provided or initiating a configuration change for the particular computing environment.
In some implementations, the method includes storing, by the management system, environment data for deploying computer environments, the environment data including software images or installers for creating new computer environments in at least one of local computing hardware, remote computing hardware, virtual machines, containers, or cloud computing platforms; and creating, by the management system, a new computer environment based on the environment data, the new computer environment being created such that the new computing environment is configured to automatically register itself with the management system to be managed by the management system.
In some implementations, the method includes receiving one or more event messages sent to the management system from one or more of the multiple computing environments, the one or more event messages each indicating an action or configuration change at one of the multiple computing environments.
In some implementations, the method includes storing, by the management system, configuration information for multiple configurations of a particular computing environment; and causing, by the management system, the particular computing environment to change among the multiple configurations at different times based on a schedule or conditions detected at the particular computing environment.
In some implementations, the method includes managing, by the management system, the execution of customized workflows for individual computing environments, each of the customized workflows including one or more operations to be performed by a corresponding computing environment.
Other embodiments of these aspects include corresponding systems, apparatus, and computer programs encoded on computer storage devices, configured to perform the actions of the methods. A system of one or more computers can be so configured by virtue of software, firmware, hardware, or a combination of them installed on the system that, in operation, cause the system to perform the actions. One or more computer programs can be so configured by virtue having instructions that, when executed by data processing apparatus, cause the apparatus to perform the actions.
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features and advantages of the invention will become apparent from the description, the drawings, and the claims.
Like reference numbers and designations in the various drawings indicate like elements.
The example of
As used herein, a computing environment can refer to any of various types of environments, including hardware, software, or both. Examples of computing environments include a local or on-premises computer system, a remote computer system, a computer environment running on a cloud-computing platform, a software environment, a virtualized environment (e.g., one or more virtual machines), and a container-based environment (e.g., one or more containers running on a host machine).
The management system 110 can include one or more computers. The management system 110 can communicate with the other servers and/or computing environments over a network 108. The management system 110 has data storage 115 containing registration data 112 and configuration records 114 for each of the computing environments 122, 132, and 142.
The management system 110 is configured to monitor settings and other configuration information for multiple computing environments 122, 132, and 142. The management system 110 maintains a registry of each environment 122, 132, and 142 to be managed. Information about the registered environments can be stored as registration data 112, which can indicate various aspects about the configuration of managed environments (e.g., hardware capabilities, software versions, network addresses, communication protocols, etc.).
In general, different computing environments may require different user login credentials to allow access. Rather than require a user to enter credentials for each individual computing environment, the management system 110 can delegate authentication processing to an authentication server, such as a single-sign-on system. The authentication server store various trust relationships and mappings between different credentials, allowing the authentication server to determine which environments a user has authorization to access. A user can log in to the management system 110, and once the user has proven his or her identity, the authentication server can check the user's permissions for the environments. The authentication server can also use the stored trust relationships to authenticate the user to the different computing environments managed by the management system 110 as needed. This can occur using, for example, a transitive trust functionality in which the authentication server authenticates the user for a first credential or first computing environment based on established authentication for a second credential or second computing environment that is trusted by the first computing environment. This can avoid the need for the computing environments 122, 132, 142 to all be configured to accept a same central account.
The management system 110 is configured to receive information about the configuration of and actions taken at the computing environments 122, 132, 142. The management system 110 can receive this information on an ongoing basis. For example, the computing environments 122, 132, 142 can be configured to send event messages when certain types of configuration changes or other actions occur. As another example, the computing environments 122, 132, 142 can periodically send reports of their current configurations, or the computing environments 122, 132, 142 can respond to requests for configuration information from the management system 110. The configuration information for each of the various computing environments 122, 132, 142 managed can be stored as configuration records 114. This can include multiple versions of configuration information, including logs of changes, to allow version tracking for the configurations of the computing environments 122, 132, 142. Thus, at least in some implementations, the configuration records 114 contain multiple sets of configuration settings for each environment, including past configuration settings to show the combinations of settings that were active at different times.
Some example settings that can be stored in the configuration records 114 and also adjusted by the management system 110 include enabling an automatic tuning setting, ensuring a working set cache is set to a designated percentage of total memory, disabling a web session recovery feature, and ensuring all performance counters for memory and CPU are enabled. Additional example settings can include a maximum number of messages per user, maximum RAM for intelligent cubes, maximum percent growth of intelligent cubes, and ensuring cube percentage growth by dynamic indexes is above a designated percentage. Other examples of settings can include ensuring core files can be generated correctly and that there is enough space to store in the destination location, ensuring governing settings for the total jobs per server, user, or project match the expected usage of the system, and ensuring that a single allocation memory is set to an expected maximum size for each child process request.
Many data analytics platforms and other computer systems are highly configurable, and so have many different configuration settings that affect behavior of the system and performance. Different configurations have different impacts on computing environments based on the size, usage, and behaviors of the computer environment in question. An example of some common settings that can be configured are listed below. Nevertheless, there are many more settings that can have a major impact on the computing environment's performance. That is one of the reasons that the ability to monitor, store, update, control version information, and enforce policies for configuration settings can be very important. Even obscure settings may have a significant impact for certain customers or computing systems. The settings that are adjusted can be at any of various different levels, e.g., at the level of an application, a service, a server, a project, a file or resource, an operating system, or a network. Similarly, settings of an environment that apply to groups of these, e.g., multiple applications, multiple servers, or across an entire set of networked devices, may be managed and stored.
At the application level, a few example settings include: a setting whether automatic tuning is enabled or disabled; a setting whether an administrative task deletes old messages (e.g., log messages or history messages); a setting whether appropriate software license restrictions are being applied (e.g., limiting a number of CPUs that can be used); and a setting for a number of processing threads used for a different engines or modules.
At the server level, a few example settings include: a setting for a cache for a working data set (e.g., where it is often desirable that the cache is at least 20% of the total memory); a setting to enable performance counters for memory usage, CPU usage, network usage, and other aspects; a setting whether web session recovery features are active (e.g., where it is often desirable to disable for better performance); a setting whether background execution of documents is allowed (e.g., where enabling background execution often provides higher performance); a setting to enable or disable lightweight directory access protocol (LDAP) connection pooling (e.g., where disabling often provides higher performance unless required by the customer LDAP infrastructure); and a setting whether to use a non-multi-threading LDAP library is being used (e.g., where using the single-threaded library often provides higher performance).
At the level of project configuration for an individual project, a few example settings include: a maximum number of historical messages to save per user; settings for analytical engine data joins; a maximum amount of RAM to use for caching data sets; a maximum amount of RAM to use for caching documents; a maximum amount of RAM to use for caching objects at a server; a maximum amount of RAM to use for caching objects at a client device; a maximum amount of RAM to use for caching elements at a server; a maximum amount of RAM to use for caching
elements at a client device; a maximum amount of RAM to use for a single data cube or for data cubes collectively; a maximum amount or rate of growth of data cubes or other data sets; a setting whether dynamic sourcing is enabled (e.g., with enabling dynamic sourcing often providing higher performance); a setting whether to generate and store basic statistics; a setting whether to generate and store advanced statistics; locations for storing data sets and corresponding caches; a setting of a number of data warehouse connection threads; and settings to prioritize different requests.
At an operating system level, settings in may be data in an operating system registry file. Additional settings may include file path locations, values of settings, whether registry keys are included in the registry or not, and others.
At a server level, for example, for web servers or those that support mobile devices, examples of settings include: settings about which actions are saved to a history list or are logged; settings for time outs (e.g., where it is often desirable that web servers, database servers, and others have matching timeouts); settings that limit the total jobs per server, user or project (e.g., which can be assessed as to whether they match the expected usage of the system); a virtual machine size (e.g., determining that a java virtual machine is set accordingly to the machine resources and customer usage; settings of a memory contract manager (e.g., a consolidated memory management component); a setting specifying an amount of memory reserved for different processes; and a setting for memory allocations for single memory sets or for child process requests.
At an infrastructure level, a few examples of settings include: settings for file system mounting points; settings for locations and sizes of trash or garbage files; destination locations for storing different files; a setting for cleaning operating system cached memory (e.g., frequency of cleaning, the set of cleaning operations to be performed, etc.); settings for automation scripts; and settings that specify the content of automation scripts.
The management system 110 is able to collect information about the performance of the 122, 132, and 142. This process can include passively receiving status messages from the environments and/or actively initiating tasks for which performance is monitored. The performance information can include performance data 116 for each of the computing environments 122, 132, and 142. Performance data 116 can include information such as server load levels over time, the types of workloads experienced, error rates, and average response times. Performance data can also include calculated performance indicators, such as a relative performance index (RPI). The RPI can be a performance score that is normalized to for a standard level of load and hardware resources, thus reducing or removing the effects of different hardware allocations or load levels to make comparisons between systems more appropriate. In some implementations, the performance data 116 includes performance results for different combinations of settings and at different times. For example, historical performance test results for different time periods can be stored. The management system 110 can build the repository of performance data 116 over time for many sets of historical configuration records 114.
The data storage 115 can include conditional settings 118 for each computing environment 122, 132, and 142. Even for a single computing environment, a single configuration may not be most appropriate under all conditions and situations. The management system 110 can store rules and other data that indicate when settings changes are appropriate. The management system 110 can then automatically alter the configuration of a computing environment as indicated by the rules. For example, conditional settings 118 may specify that a first set of settings is generally used, but that at certain times or under certain conditions, a second set of settings should be used instead, e.g., to optimize viewing reports at designated times of the day when large numbers of users typically access reports. As another example, conditional settings 118 specify settings that are optimized for loading online analytical processing (OLAP) data cubes at specific times of the day, but specify settings to maximize response times for user requests at other times. The conditional settings 118 may be dependent on various factors, e.g., geographical locations of servers, patterns of user demand, detected conditions at an environment, current and historical loads, automatically or manually defined thresholds, etc. The conditional settings 118 can include configurations that apply a combination of changes to settings of individual computing environments or to settings of multiple computing environments.
Along with the conditional settings 118, the data storage 115 can store policy data 119 that indicates policies for managed computing environments. For example, some computing environments may have policies that require certain settings to maintain security, data integrity, and so on. The management system 110 can enforce these policies by monitoring changes to settings, checking the settings changes with respect to the appropriate policies, and then denying or reversing changes that do not comply with the applicable policies. The management system 110 can also perform audits, periodically or on-demand, to check the configurations of computer environments with respect to their applicable policies.
One or more of the servers 120, 130, 140 may be a cloud computing system. A cloud computing system may be part of a cloud computing platform (e.g., Amazon Web Services (AWS), Microsoft Azure, etc.) and can host a virtual, cloud-based environment.
The first server 120 can include one or more computers and can communicate with the management system 110 over the network 108. The first server 120 manages/hosts the first computing environment 122.
The second server 130 can include one or more computers and can communicate with the management system 110 over the network 108. The second server 130 manages/hosts the second computing environment 132.
The third server 140 can include one or more computers and can communicate with the management system 110 over the network 108. The third server 140 manages/hosts the third computing environment 142.
The first server 120, the second server 130, and/or the third server 140 communicate with the management system 110 over the network 108, which can include public and/or private networks and can include the Internet.
The techniques disclosed in this document can adjust configurations of computing environments while reducing or eliminating the need for manual configuration changes. For example, the configuration of one server can be adjusted and managed based on the configurations for other servers. Configuration settings can be distributed and applied to many different servers, including servers operated by different third parties or organizations.
The management system 110 provides one or more interfaces to send information about the monitored computing environments as well as receive input specifying changes to make to the configurations. The interface can be provided as an application, dashboard, web page, web application, API, etc. For example, the management system 110 can provide data to support an application for centralized platform management of the registered computing environments. The application can be run or accessed through a user device 128, where aggregated information about any or all of the settings, users, and programs for managed computing environments can be presented. The management system 110 can communicate with the application to receive control instructions through the interface, and then remotely control each environment in response. On an ongoing basis, the management system 110 can monitor and react to events on each computing environment managed.
The following example illustrates some of the capabilities of the management system, starting with the ability to create and register new computing environments to be monitored. As shown in
The computing environment 122 can be created based on one or more software images 117 stored by the management system 110, e.g., one of the software images 117 can be loaded and made active. As another example, one of various software installers 115 may cause a certain set of software to be installed at the server 120 to create the environment 122. When the management system 110 creates an environment, the software environment can be configured to automatically register itself with the management system 110. When the first computing environment 122 has initialized and becomes active, the first computing environment 122 initiates communication over the network 108 with registration functionality system of a management system 110. The first computing environment 122 identifies the management system 110, and registers itself with the management system 110.
In response to the first computing environment 122 registering with the management system 110, the management system 110 requests registration data 112 from the first computing environment 122. For example, the management system 110 may request registration data 112 from the first computing environment 122 including configurations and capabilities of the first computing environment 122 and the first server 120. The registration data 112 may include a license key for one or more applications. The management system 110 stores the registration data 112 in the database 115. The database 115 also stores registration data 112 for additional computing environments registered with the management system 110, e.g., the second computing environment 132 and the third computing environment 142.
At stage (B), a user 124 adjusts one or more settings of the first computing environment 122. In this instance, the user 124 makes the change directly, without using the centralized management system 110. As discussed below, the management system 110 can detect and validate the change and take other actions as it determines appropriate. The user 124 can adjust settings of the first computing environment 122, e.g., through a user interface 126 on a user device 128. The user device 128 may be a computing device, such as a laptop, a desktop computer, a mobile computing device, etc. The user device 128 is able to communicate with the management system 110 through, for example, the network 108. Here, the user interface 126 is a graphical user interface (GUI). In other implementations, the user interface 126 may be another interface, such as a voice interface with an audible output through a speaker, with the user device 128 having a microphone to detect a verbal response from the user 124.
At a first time T0, the computing environments 122, 132, and 142 each have configuration C0. In general, the configuration of a computing environment refers to a group or combination of settings or other operating parameters that are being used. The configuration C0 includes settings for a maximum number of users, a maximum wait time, a cache refresh rate, cache maximum RAM usage, maximum cache size, and maximum file size. The configuration C0 includes a cache maximum RAM usage setting of 1 GB.
The configuration C0 may include additional settings such as network settings, thresholds, limits for concurrency of operations, limits on user subscriptions, and so on. For example, the configuration C0 may include a maximum number of rows of data that can be returned, a maximum number of rows of data that can be retrieved, a limit to the number of concurrent operations for a given user and/or project, a limit to the number of interactive operations that can be processed at a time, a limit to the number of scheduled operations that can be processed at a time, etc. As another example, the configuration C1 may include a limit to the number of execution requests that a user can subscribe to, a limit to the number of cache updates that a user can subscribe to, a limit to the number of email subscriptions that a user can subscribe to, a limit to the number of files that a user can subscribe to, a limit to the number of personal views that can be created, a limit to the number of reports and/or documents that a user can subscribe to, etc. As another example, the configuration C1 may include a permission to allow users to import files, e.g. from the Internet using a URL, using an HTTP or HTTPS URL, or using an FTP server, permission to allow users to import data from files on a particular server, etc.
Through the user interface 126, the user 124 may select to change one or more configuration settings of the first computing environment 122. In some implementations, the user interface 126 enables the user 124 to make modifications to the configuration settings using a drop-down menu. For example, the user 124 may use a computer mouse to select the cache maximum RAM usage, and select to change the cache maximum RAM usage from 1 GB to 2 GB.
At time T1, as a result of changes made by the user 124, the server environment 122 has configuration C1. The configuration C1 includes a cache maximum RAM usage of 2 GB, and in this case, a corresponding change in the maximum cache size to 2 GB also. The other settings of configuration C1 remain the same as the configuration C0.
At stage (C), the management system 110 receives data indicating the change to the configuration of the first computing environment, e.g., data indicating the configuration C1 settings from the first server 120. In some examples, the registration process for associating the computing environment 122 with management system 110 subscribes the management system 110 to receive notifications of changes in the computing environment 122, so that the management system 110 receives the configuration C1 settings when the user 124 makes changes to the computing environment 122. In some examples, the management system 110 receives configuration settings from the first server 120 at regular intervals, e.g., once per hour or once per day. As another example, the computing environment 122 can be configured to send an event message to the management system each time a change or action of a certain type occurs.
At stage (D), the management system 110 stores the configuration settings in its data storage 115, illustrated as configuration records 114. The configuration records 114 include time-stamped configurations of the computing environments 122, 132, and 142. In some examples, the management system 110 stores the configuration settings in the data storage 115 at regular intervals, e.g., once per day. The management system 110 can access the configuration records 114 to copy configurations from one computing environment to another. The management system 110 can also access the configuration records 114 to roll back computing environment configurations to previous versions.
The management system 110 can review and analyze histories of configurations within a computing environment. The configuration records 114 can include lists of reports for various computing environments. The management system 110 can access the configuration records 114 to determine which reports are included in which environments. The configuration records 114 can include the most recent version of each report, and the most recent edit date for each report.
The management system 110 can access the configuration records 114 to determine when configurations changed and how configurations changed. The management system 110 can also perform audits of users, groups, and license usage across the computing environments. Based on performing audits, the management system 110 can determine if an underlying computing environment made an unauthorized configuration change. If the management system 110 determines that an underlying computing environment made an unauthorized configuration change, for example a change that violates a policy for the environment indicated in the policy data 119, the management system 110 can roll back the configuration to a previous version. In some examples, the management system 110 may automatically roll back the configuration upon detection of an unauthorized change. In some examples, the management system 110 may send a request and/or a recommendation to an administrator to roll back the configuration to a previous version.
For example, an application may have a license key that specifies a maximum of 100 users. The license key may be stored in the computing environment, e.g., the computing environment 122. The management system 110 can access the license key upon registration as shown in stage (A), and any time there is a change to the configuration. If more than 100 users register for the application, the management system 110 can analyze the configuration to determine that the number of users exceeds the maximum. The management system 110 can then roll back the computing environment 122 to a previous configuration. The management system 110 stores the rolled back configuration settings in its data storage 115 as the configuration records 114.
At stage (E), the management system 110 uses the configuration information obtained for the computing environment 122 to change the configurations of computing environments 132, 142. The management system 110 may determine that a change in the other computer environments 132, 142 is needed for any of various reasons. For example, after analysis of the performance of the environments 122, 132, 142, the management system 110 may determine that the configuration of the environment 122 provides better performance, and so would make the operation of the other environments 132, 142 more efficient. As another example, a user may initiate a change to one environment based on a configuration of another environment using an interface to the management system 110.
In the present example, the management system 110 receives an instruction from a user to replicate the configuration of the environment 122, e.g., the configuration C1, at the computing environments 132, 142. The management system 110 instructs the servers 130, 140 to apply the configuration C1 settings for the second computing environment 132 and the third computing environment 142, respectively.
In some implementations, the first computing environment 122, the second computing environment 132, and/or the third computing environment 142 are production computing environments. Production computing environments are computing environments that are in use, for example, receiving and responding to requests from users. As such, when the management system 110 sends configuration settings to these one or more computing environments, users may be impacted by the resulting effects of those changes. The management system 110 may instruct the servers to apply the configuration C1 when usage is relatively low, such as in the evening, to limit impact on users.
In some implementations, the management system 110 provides the servers 130, 140 a modified version of the configuration C1 settings as part of gradually or incrementally making the change to the configuration C1. For example, the management system 110 may do this by making only part of the change to the existing configuration settings C0 of a particular environment, waiting a period of time, and repeating the process with a further change. For example, the management system 110 may instruct changes in the cache RAM usage from 1 GB to 1.2 GB, then to 1.4 GB, then to 1.6 GB, then to 1.8 GB, then to 2.0 GB. This iterative process may be used when there are significant differences between the existing configuration settings C0 and the configuration C1, and/or when configuration changes are limited by one or more thresholds. This iterative process may be useful when the computing environment is a production environment since significant changes in the computing environment's configuration settings could negatively impact users in some instances. In addition, it gives the management system 110 the opportunity to measure performance at each incremental change and stop or reverse changes if a negative impact on performance is detected.
The management system 110 stores historical information about settings and configurations modifications. The management system tracks and store version changes over time, e.g., as configuration records 114. In some implementations, after modifying the computing environments 132, 142 to configuration C1, the management system 110 may determine to roll back configuration settings to a previous version, e.g., the configuration C0.
For example, the management system 110 may collect performance data 116 for the computing environments 122, 132, 142. The management system can track server performance over time in relation to the change from the configuration C0 to the configuration C1. The management system 110 can compare the performance data 116 with the configuration C1 to historical performance data and the configuration records 114, e.g., with the configuration C0. If the management system 110 determines that the configuration C1 results in poorer performance compared to the configuration C0, the management system 110 can roll back to configuration C0 for one or more of the computing environments 122, 132, 142.
In the example of
The interface 202 may be divided into one or more portions 210, 220, and 230. In one portion, for example in categories portion 210, a list of categories corresponding to various platforms is displayed. Within each category, a list of various applications can be provided. For example, within the “Enterprise” category, various types of subcategories are listed corresponding to environments, topology, certificates, license, central management system (CMS), and users and groups.
In
As shown in
In the illustrated example, the “Cube Memory Governing for Attribute Element Indexes” (“Cube Memory”) setting 232 is expanded to display multiple environments. Displayed environments include “Aqueduct Production” 234, “Aqueduct Mirror” 236, and “Aqueduct Development” 238.
The interface 202 displays values 242 of each setting. The values of each setting can be, for example, a setting of “on,” “off,” a numerical setting, or an indication of multiple settings. The interface 202 also displays a modification date 244 for each setting and a relative performance index (RPI) 246 for each setting. The interface 202 allows the user to edit settings for each environment independently, or to change multiple environments at once.
As illustrated in
A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the disclosure. For example, various forms of the flows shown above may be used, with steps re-ordered, added, or removed.
Embodiments of the invention and all of the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the invention can be implemented as one or more computer program products, e.g., one or more modules of computer program instructions encoded on a computer readable medium for execution by, or to control the operation of, data processing apparatus. The computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them. The term “data processing apparatus” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. A propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus.
A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a tablet computer, a mobile telephone, a personal digital assistant (PDA), a mobile audio player, a Global Positioning System (GPS) receiver, to name just a few. Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
To provide for interaction with a user, embodiments of the invention can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
Embodiments of the invention can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the invention, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.
The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
While this specification contains many specifics, these should not be construed as limitations on the scope of the invention or of what may be claimed, but rather as descriptions of features specific to particular embodiments of the invention. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
In each instance where an HTML file is mentioned, other file types or formats may be substituted. For instance, an HTML file may be replaced by an XML, JSON, plain text, or other types of files. Moreover, where a table or hash table is mentioned, other data structures (such as spreadsheets, relational databases, or structured files) may be used.
Particular embodiments of the invention have been described. Other embodiments are within the scope of the following claims. For example, the steps recited in the claims can be performed in a different order and still achieve desirable results.
Number | Name | Date | Kind |
---|---|---|---|
5758071 | Burgess et al. | May 1998 | A |
6085244 | Wookey | Jul 2000 | A |
6282175 | Steele et al. | Aug 2001 | B1 |
6334158 | Jennyc et al. | Dec 2001 | B1 |
6338149 | Ciccone, Jr. et al. | Jan 2002 | B1 |
6339795 | Narukar et al. | Jan 2002 | B1 |
6449739 | Landan | Sep 2002 | B1 |
6473794 | Guheen et al. | Oct 2002 | B1 |
6691067 | Ding et al. | Feb 2004 | B1 |
6691245 | DeKoning | Feb 2004 | B1 |
6792393 | Farel et al. | Sep 2004 | B1 |
6816871 | Lee | Nov 2004 | B2 |
6934934 | Baker et al. | Aug 2005 | B1 |
6964051 | Palaniappan | Nov 2005 | B1 |
6993747 | Friedman | Jan 2006 | B1 |
7024548 | O'Toole, Jr. | Apr 2006 | B1 |
7035919 | Eismann et al. | Apr 2006 | B1 |
7047177 | Eismann et al. | May 2006 | B1 |
7051098 | Masters et al. | May 2006 | B2 |
7089347 | Mogi et al. | Aug 2006 | B2 |
7155462 | Singh et al. | Dec 2006 | B1 |
7197559 | Goldstein et al. | Mar 2007 | B2 |
7346676 | Swildens et al. | Mar 2008 | B1 |
7389216 | Parent et al. | Jun 2008 | B2 |
7523447 | Callahan et al. | Apr 2009 | B1 |
7552438 | Werme et al. | Jun 2009 | B1 |
7581011 | Teng | Aug 2009 | B2 |
7617486 | Sharma et al. | Nov 2009 | B2 |
7657871 | Velupillai | Feb 2010 | B2 |
7784049 | Gandler | Aug 2010 | B1 |
7802174 | Teng et al. | Sep 2010 | B2 |
7917617 | Ponnapur et al. | Mar 2011 | B1 |
7937655 | Teng et al. | May 2011 | B2 |
7996525 | Stienhans | Aug 2011 | B2 |
8024299 | Dias et al. | Sep 2011 | B2 |
8099727 | Bahat et al. | Jan 2012 | B2 |
8219432 | Bradley et al. | Jul 2012 | B1 |
8260893 | Bandhole | Sep 2012 | B1 |
8285681 | Prahlad et al. | Oct 2012 | B2 |
8554918 | Douglis | Oct 2013 | B1 |
8583769 | Peters | Nov 2013 | B1 |
8595364 | Levy et al. | Nov 2013 | B2 |
8595714 | Hamer et al. | Nov 2013 | B1 |
8612599 | Tung et al. | Dec 2013 | B2 |
8732604 | Okamoto et al. | May 2014 | B2 |
8805970 | Breh et al. | Aug 2014 | B2 |
8819171 | Chakraborty et al. | Aug 2014 | B2 |
8892954 | Gray et al. | Nov 2014 | B1 |
8990778 | Allocca et al. | Mar 2015 | B1 |
9047017 | Dolan et al. | Jun 2015 | B1 |
9053220 | Banks et al. | Jun 2015 | B2 |
9110496 | Michelsen | Aug 2015 | B1 |
9164874 | Tonnay et al. | Oct 2015 | B1 |
9166895 | Sivaraman | Oct 2015 | B1 |
9189294 | Considine et al. | Nov 2015 | B2 |
9262150 | Haserodt et al. | Feb 2016 | B2 |
9268663 | Siddiqui et al. | Feb 2016 | B1 |
9270449 | Tribble et al. | Feb 2016 | B1 |
9311161 | Jagtap | Apr 2016 | B2 |
9367305 | Kumar et al. | Jun 2016 | B1 |
9424172 | Helder | Aug 2016 | B1 |
9436535 | Ricken et al. | Sep 2016 | B2 |
9491072 | Raghunathan et al. | Nov 2016 | B2 |
9531604 | Akolkar et al. | Dec 2016 | B2 |
9674294 | Gonthier et al. | Jun 2017 | B1 |
9716624 | Zeyliger et al. | Jul 2017 | B2 |
9733921 | Saenz et al. | Aug 2017 | B1 |
9762450 | Xie | Sep 2017 | B2 |
9766962 | Dvir | Sep 2017 | B2 |
9767312 | Sahoo et al. | Sep 2017 | B2 |
9811849 | Bursey | Nov 2017 | B2 |
9820224 | Hui et al. | Nov 2017 | B2 |
9928210 | Zhang et al. | Mar 2018 | B1 |
9959104 | Chen et al. | May 2018 | B2 |
9965261 | Chen et al. | May 2018 | B2 |
9986427 | Kimpe | May 2018 | B2 |
10002247 | Suarez et al. | Jun 2018 | B2 |
10007509 | Quershi et al. | Jun 2018 | B1 |
10169023 | Ciano et al. | Jan 2019 | B2 |
10191778 | Yang et al. | Jan 2019 | B1 |
10241778 | Emeis et al. | Mar 2019 | B2 |
10244034 | Joshi et al. | Mar 2019 | B2 |
10261782 | Suarez et al. | Apr 2019 | B2 |
10303455 | Fitzgerald et al. | May 2019 | B2 |
10310949 | Chakraborty et al. | Jun 2019 | B1 |
10318280 | Islam et al. | Jun 2019 | B2 |
10356214 | Joshi et al. | Jul 2019 | B2 |
10389582 | Fakhouri et al. | Aug 2019 | B1 |
10440153 | Smith et al. | Oct 2019 | B1 |
10452440 | Odulinski et al. | Oct 2019 | B1 |
10474548 | Sanakkayala et al. | Nov 2019 | B2 |
10803411 | Smith et al. | Oct 2020 | B1 |
10810041 | Myers et al. | Oct 2020 | B1 |
10997052 | Khosrowpour et al. | May 2021 | B2 |
10997135 | Zoll et al. | May 2021 | B2 |
11102330 | Gardner et al. | Aug 2021 | B2 |
11102331 | Smith et al. | Aug 2021 | B2 |
20020065833 | Litvin | May 2002 | A1 |
20020122422 | Kenney et al. | Sep 2002 | A1 |
20020124243 | Broeksteeg et al. | Sep 2002 | A1 |
20020157089 | Patel et al. | Oct 2002 | A1 |
20020198985 | Fraenkel et al. | Dec 2002 | A1 |
20030135382 | Marejka et al. | Jul 2003 | A1 |
20040060044 | Das et al. | Mar 2004 | A1 |
20040068424 | Lee et al. | Apr 2004 | A1 |
20060129870 | Parent et al. | Jun 2006 | A1 |
20060236056 | Nagata | Oct 2006 | A1 |
20080077366 | Neuse et al. | Mar 2008 | A1 |
20080097960 | Dias et al. | Apr 2008 | A1 |
20080109448 | Aboel-Nil et al. | May 2008 | A1 |
20080115195 | Malek et al. | May 2008 | A1 |
20080163092 | Rao | Jul 2008 | A1 |
20080243660 | Amemiya et al. | Oct 2008 | A1 |
20080247314 | Kim | Oct 2008 | A1 |
20080301663 | Bahat et al. | Dec 2008 | A1 |
20090018996 | Hunt et al. | Jan 2009 | A1 |
20090063699 | Chapweske et al. | Mar 2009 | A1 |
20090070462 | Saenz et al. | Mar 2009 | A1 |
20090282401 | Todorova | Nov 2009 | A1 |
20100153780 | Kirtkow | Jun 2010 | A1 |
20100162406 | Benameur et al. | Jun 2010 | A1 |
20100250487 | Gabriel et al. | Sep 2010 | A1 |
20100318986 | Burke et al. | Dec 2010 | A1 |
20110054968 | Galaviz | Mar 2011 | A1 |
20110055823 | Nichols et al. | Mar 2011 | A1 |
20110099290 | Swildens et al. | Apr 2011 | A1 |
20110145525 | Browne et al. | Jun 2011 | A1 |
20110314344 | Okamoto et al. | Dec 2011 | A1 |
20120096149 | Sunkara et al. | Apr 2012 | A1 |
20120117620 | Cassidy | May 2012 | A1 |
20120167094 | Suit | Jun 2012 | A1 |
20120198279 | Schroeder | Aug 2012 | A1 |
20120310765 | Masters | Dec 2012 | A1 |
20130042123 | Smith et al. | Feb 2013 | A1 |
20130054792 | Sharaf | Feb 2013 | A1 |
20130080514 | Gupta et al. | Mar 2013 | A1 |
20130197863 | Rayate et al. | Aug 2013 | A1 |
20130297769 | Chang et al. | Nov 2013 | A1 |
20130311740 | Watanabe et al. | Nov 2013 | A1 |
20130339299 | Muller et al. | Dec 2013 | A1 |
20140019387 | Cao et al. | Jan 2014 | A1 |
20140020048 | Snodgrass | Jan 2014 | A1 |
20140089033 | Snodgrass | Mar 2014 | A1 |
20140089505 | Haserodt et al. | Mar 2014 | A1 |
20140156839 | Swildens et al. | Jun 2014 | A1 |
20140165063 | Shiva et al. | Jun 2014 | A1 |
20140282456 | Drost et al. | Sep 2014 | A1 |
20140331209 | Singh | Nov 2014 | A1 |
20140331225 | Helander et al. | Nov 2014 | A1 |
20140358944 | Brower, Jr. et al. | Dec 2014 | A1 |
20150019195 | Davis | Jan 2015 | A1 |
20150019197 | Higginson | Jan 2015 | A1 |
20150019488 | Balch et al. | Jan 2015 | A1 |
20150019706 | Raghunathan et al. | Jan 2015 | A1 |
20150081574 | Selby et al. | Mar 2015 | A1 |
20150089479 | Chen et al. | Mar 2015 | A1 |
20150095892 | Baggott et al. | Apr 2015 | A1 |
20150100829 | Nanjundappa et al. | Apr 2015 | A1 |
20150178052 | Gupta et al. | Jun 2015 | A1 |
20150220426 | Spektor et al. | Aug 2015 | A1 |
20150242636 | Khan et al. | Aug 2015 | A1 |
20150295792 | Cropper et al. | Oct 2015 | A1 |
20150326432 | Fujie et al. | Nov 2015 | A1 |
20150373097 | Konkus et al. | Dec 2015 | A1 |
20160026555 | Kuo et al. | Jan 2016 | A1 |
20160044040 | Caffary, Jr. | Feb 2016 | A1 |
20160055067 | Bensinger | Feb 2016 | A1 |
20160072730 | Jurban et al. | Mar 2016 | A1 |
20160132320 | Fitzgerald et al. | May 2016 | A1 |
20160139887 | Pudiyapura et al. | May 2016 | A1 |
20160164738 | Pinski et al. | Jun 2016 | A1 |
20160277249 | Singh | Sep 2016 | A1 |
20160335106 | Behere et al. | Nov 2016 | A1 |
20160335108 | Ryu et al. | Nov 2016 | A1 |
20160337186 | Dolinsky | Nov 2016 | A1 |
20160344610 | Robinette | Nov 2016 | A1 |
20160350205 | Acharya et al. | Dec 2016 | A1 |
20160371170 | Salunke et al. | Dec 2016 | A1 |
20170041201 | Ilyadis et al. | Feb 2017 | A1 |
20170061313 | Oros et al. | Mar 2017 | A1 |
20170090972 | Ryu et al. | Mar 2017 | A1 |
20170147319 | Riek et al. | May 2017 | A1 |
20170154017 | Kristiansson et al. | Jun 2017 | A1 |
20170177860 | Suarez et al. | Jun 2017 | A1 |
20170185488 | Kumarasamy et al. | Jun 2017 | A1 |
20170270455 | Chi et al. | Sep 2017 | A1 |
20170295199 | Kirti | Oct 2017 | A1 |
20170300311 | Lopez et al. | Oct 2017 | A1 |
20170315795 | Keller | Nov 2017 | A1 |
20180013616 | Abadi et al. | Jan 2018 | A1 |
20180075086 | Yam et al. | Mar 2018 | A1 |
20180088926 | Abrams | Mar 2018 | A1 |
20180088935 | Church et al. | Mar 2018 | A1 |
20180095778 | Aydelott et al. | Apr 2018 | A1 |
20180095973 | Huang et al. | Apr 2018 | A1 |
20180136931 | Hendrich et al. | May 2018 | A1 |
20180157516 | Kristiansson et al. | Jun 2018 | A1 |
20180173502 | Biskup et al. | Jun 2018 | A1 |
20180173522 | Hamill et al. | Jun 2018 | A1 |
20180205652 | Saxena | Jul 2018 | A1 |
20180267908 | Pan et al. | Sep 2018 | A1 |
20180285199 | Mitkar et al. | Oct 2018 | A1 |
20180285210 | Mitkar et al. | Oct 2018 | A1 |
20180285246 | Tuttle et al. | Oct 2018 | A1 |
20180285353 | Rao et al. | Oct 2018 | A1 |
20180287902 | Chitalia et al. | Oct 2018 | A1 |
20180288129 | Joshi | Oct 2018 | A1 |
20180341471 | Stefanov et al. | Nov 2018 | A1 |
20190034313 | Vedurumudi et al. | Jan 2019 | A1 |
20190050680 | Waugh et al. | Feb 2019 | A1 |
20190095254 | Rao | Mar 2019 | A1 |
20190102204 | Khosrowpour et al. | Apr 2019 | A1 |
20190109822 | Clark et al. | Apr 2019 | A1 |
20190109857 | Caffary, Jr. | Apr 2019 | A1 |
20190132329 | Verberkt et al. | May 2019 | A1 |
20190163559 | Takahashi et al. | May 2019 | A1 |
20190208031 | Bennet et al. | Jul 2019 | A1 |
20190213068 | Upadhyay | Jul 2019 | A1 |
20190230130 | Beckman et al. | Jul 2019 | A1 |
20190235897 | Goel | Aug 2019 | A1 |
20190236844 | Balasian et al. | Aug 2019 | A1 |
20190260716 | Lerner | Aug 2019 | A1 |
20190278669 | Mueller-Wicke et al. | Sep 2019 | A1 |
20190288956 | Pulier et al. | Sep 2019 | A1 |
20190303541 | Reddy et al. | Oct 2019 | A1 |
20190312800 | Schibler et al. | Oct 2019 | A1 |
20190317829 | Brown et al. | Oct 2019 | A1 |
20190342425 | Cheng et al. | Nov 2019 | A1 |
20190354389 | Du et al. | Nov 2019 | A1 |
20190392045 | De Lima Junior et al. | Dec 2019 | A1 |
20200019393 | Vichare et al. | Jan 2020 | A1 |
20200067763 | Vytla | Feb 2020 | A1 |
20200081814 | Srinivasan et al. | Mar 2020 | A1 |
20200099773 | Myers et al. | Mar 2020 | A1 |
20200112624 | Smith et al. | Apr 2020 | A1 |
20200119979 | Woodland et al. | Apr 2020 | A1 |
20200135264 | Brady | Apr 2020 | A1 |
20200177634 | Hwang | Jun 2020 | A1 |
20200204465 | Baker | Jun 2020 | A1 |
20200249962 | Vichare et al. | Aug 2020 | A1 |
20200257612 | Lang et al. | Aug 2020 | A1 |
20200272786 | Pandurangarao et al. | Aug 2020 | A1 |
20200293436 | Carames et al. | Sep 2020 | A1 |
20200356806 | Li et al. | Nov 2020 | A1 |
20200366572 | Chauhan | Nov 2020 | A1 |
20200394120 | Salmi et al. | Dec 2020 | A1 |
20210019321 | Ehrlich et al. | Jan 2021 | A1 |
20210042141 | De Marco et al. | Feb 2021 | A1 |
20210048995 | Myers et al. | Feb 2021 | A1 |
20210048998 | Myers et al. | Feb 2021 | A1 |
20210049002 | Myers et al. | Feb 2021 | A1 |
20210064262 | Myers et al. | Mar 2021 | A1 |
20210064492 | Myers et al. | Mar 2021 | A1 |
20210065078 | Gardner et al. | Mar 2021 | A1 |
20210067406 | Myers et al. | Mar 2021 | A1 |
20210067607 | Gardner et al. | Mar 2021 | A1 |
20210073026 | Myers et al. | Mar 2021 | A1 |
20210081298 | Gardner et al. | Mar 2021 | A1 |
20210089438 | Gardner et al. | Mar 2021 | A1 |
20210124610 | Gardner et al. | Apr 2021 | A1 |
Entry |
---|
doc-archives.microstrategy.com [online], “Installation and Configuration Guide,” Sep. 2018, retrieved Mar. 20, 2020, retrieved from URL <https://doc-archives.microstrategy.com/producthelp/10.11/manuals/en/InstallationConfig.pdf>, 527 pages. |
www2.microstrategy.com [online], “OperationsManager Guide” 2016, retrieved on Mar. 20, 2020 retrieved from URL <https://www2.microstrategy.com/producthelp/10.4/manuals/en/OperationsManager.pdf>, 154 pages. |
U.S. Office Action in U.S. Appl. No. 116/556,636, dated Jun. 8, 2021, 7 pages. |
U.S. Office Action in U.S. Appl. No. 16/557,482, dated Nov. 30, 2020, 13 pages. |
U.S. Office Action in U.S. Appl. No. 16/787,596, dated Nov. 25, 2020, 11 pages. |
U.S. Office Action in U.S. Appl. No. 17/005,657, dated Dec. 27, 2021, 33 pages. |
Abbors et al., “An Automated Approach for Creating Workload Models from Server Log Data,” 9th Intl Conf. on Software Engineering and Applications, 2014, 1-12. |
Doc-archives.microstrategy.com [online], “Installing and Configuring MicroStrategy Library,” Jun. 2017, retrieved on Oct. 25, 2019, retrieved from URL <https://doc-archives.microstrategy.com/producthelp/10.10/InstallConfig/WebHelp/Lang_1033/Content/install_config_library.htm>, 2 pages. |
docs.docker.com [online], “Get Started, Part 1: Orientation and setup,” 2017, retrieved on Oct. 25, 2019, retrieved from URL<https://docs.docker.com/get-started/>, 6 pages. |
Dyn.com “Kubernetes: The Difference Between Containers and Virtual Machines,” Feb. 2018, retrieved on Oct. 25, 2019, retrieved from URL <https://dyn.com/blog/kubernetes-the-difference-between-containers-and-virtual-machines/>, 8 pages. |
Edureka.co [online], “Docker tutorial—Introduction to docker & containerization,” 2017, retrieved on October 25, 2019, retrieved from URL <https://www.edureka.co/blog/docker-tutorial>, 10 pages. |
GWS Advisory [online], “What's New in Microstrategy 2019”, Jan. 2019, retrieved on Oct. 8, 2021, retrieved from URL <https://www.gwsadvisory.com/wp-content/uploads/2019/01/whats-new-in-microstrategy-2019.pdf>, 138 pages. |
Kubernetes.io [online], “Concepts underlying the cloud controller manager,” May 2019, retrieved on Jun. 20, 2019, retrieved from URL <https://kubernetes.io/docs/concepts/architecture/cloud-controller/>, 9 pages. |
Kubernetes.io [online], “StatefulSet is the workload API object used to manage stateful applications,” Jun. 2019, retrieved on Jun. 20, 2019, retrieved from URL <https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/>, 9 pages. |
Linkedin.com [online], “Moving MicroStrategy to a docker/kubernetes infrastructure,” Jan. 2018, retrieved from Oct. 25, 2019 retrieved from URL <https://www.linkedin.com/pulse/moving-microstrategy-dockerkubernetes-infrastructure-montero/>, 3 pages. |
linuxize.com [online], “How To Remove Docker Containers, Images, Volumes, and Networks,” Oct. 2018, retrieved on Oct. 25, 2019, retrieved from URL <https://linuxize.com/post/how-to-remove-docker-images-containers-volumes-and-networks/#remove-one-or-more-containers>, 11 pages. |
Ma et al., “Efficient service handoff across edge servers via docker container migration author:,” 2017, SEC '17: Proceedings of the Second ACM/IEEE Symposium on Edge Computing, 11:1-13. |
MicroStrategy [online], “MicroStrategy 10.9 Readme”, 2017, retrieved on Oct. 5, 2021, 124 pages. |
MicroStrategy [online], “System Administration Guide”, 2018, retrieved on Oct. 5, 2021, 831 pages. |
MicroStrategy [online], “Tools to Upgrade with Confidence”, Feb. 4, 2019, retrieved on Oct. 12, 2021, 26 pages. |
MicroStrategy [online], “Upgrade Guide—Upgrading your MicroStrategy Enterprise Software”, Jun. 2016, retrieved on Oct. 8, 2021, retrieved from URL <https://doc-archives.microstrategy.com/producthelp/10.4/manuals/en/UpgradeGuide.pdf>, 109 pages. |
MicroStrategy [online], “Upgrade Guide—Version 10”, 2015, retrieved on Oct. 8, 2021, retrieved from URL <https://doc-archives.microstrategy.com/producthelp/10/manuals/en/UperadeGuide.pdf>, 118 pages. |
MicroStrategy [online], “Upgrade Guide—Version 10. 9”, Sep. 2017, retrieved on Oct. 8, 2021, retrieved from URL <https://www2.microstrategy.com/producthelp/10.9/manuals/en/UpgradeGuide.pdf>, 90 pages. |
MicroStrategy [online], “Upgrade Guide—Version 10.11”, Jun. 2018, retrieved on Oct. 8, 2021, retrieved from URL <https://www2.microstrategy.com/producthelp/10.11/manuals/en/UpgradeGuide.pdf>, 92 pages. |
MicroStrategy.com [online],“Microstrategy on Kubernetes,” 2017, retrieved on Oct. 25, 2019, retrieved from URL <https://www.microstrategy.com/getmedia/d99b44dc-ec44-451b-a5a3-3db7160282f0/Genesys-How-to-run-MicroStrategy-on-Kubernetes>, 10 pages. |
Pederson, “Testing SharePoint Apps in Production (Canary Release)”, Simon J.K. Pedersen's Azure & Docker blog, 2014, 1-9. |
Singh et al., “Container-based microservice architecture for cloud applications,” May 2017, 2017 International Conference on Computing, Communication and Automation (ICCCA), 847-52. |
Stackoverflow.com [online] “What's the difference between ClusterIP, NodePort and LoadBalancer service types in Kubernetes?” Jan. 2017, retrieved from URL <https://stackoverflow.com/questions/41509439/whats-the-difference-between-clusterip-nodeport-and-loadbalancer-service-types/52241241#52241241>, 6 pages. |
Tao el al., “Dynamic Resource Allocation Algorithm for Container-based Service Computing”; 2017 IEEE 13th International Symposium on Autonomous Decentralized Systems—2017 IEEE, 61-67. |
Tuton, “Deploy A MongoDB replica set using the IBM Cloud Kubernetes Service,” IBM Developer, Mar. 15, 2018, 14 pages. |
U.S. Office Action in U.S. Appl. No. 17/028,565, dated Oct. 22, 2021, 9 pages. |
U.S. Office Action in U.S. Appl. No. 16/542,023, dated Mar. 12, 2021, 15 pages. |
U.S. Office Action in U.S. Appl. No. 16/557,713, dated Aug. 5, 2021, 39 pages. |
U.S. Office Action in U.S. Appl. No. 16/557,713, dated Feb. 24, 2021, 34 pages. |
U.S. Office Action in U.S. Appl. No. 16/557,713, dated Nov. 13, 2020, 25 pages. |
Wikipedia.org [online], “Docker(software),” Mar. 2013, retrieved on Oct. 25, 2019, retrieved from URL <https://en.wikipedia.org/wiki/Docker_(software)>, 8 pages. |
Wikipedia.org [online], “OS-level virtualization,” Aug. 2006, retrieved on Oct. 25, 2019, retrieved from URL <https://en.wikipedia.org/wiki/OS-level_virtualization> , 4 pages. |
Wikipedia.org [online], “System Image,” Feb. 2013, retrieved Oct. 25, 2019, retrieved from URL <https://en.wikipedia.org/wiki/System_image>, 2 pages. |
Wong, “What's the Difference Between Containers and Virtual Machines?,” Jul. 15, 2016, Electronic Design, retrieved from URL <http://electronicdesign.com/ dev-tools /what-s-difference-between-containers-and-virtualmachines>, 3 pages. |
www.en.wikipedia.org [online], “Online Analytical Processing” Mar. 2018, retrieved on Mar. 19, 2020, retrieved from URL <https://en.wikipedia.org/wiki/Online_analytical_processing>, 14 pages. |
www2.microstrategy.com [online], “MicroStrategy Intelligence Server,” Apr. 2019, retrieved on Oct. 25, 2019, retrieved from URL <https://www2.microstrategy.com/producthelp/10.4/ProjectDesignGuide/WebHelp/Lang_1033/Content/ProjectDesign/MicroStrategy_Intelligence_Server.htm>, 2 pages. |
Xu et al.; “Mining Container Image Repositories for Software Configuration and Beyond”; 2018 ACM/IEEE 40th International Conference on Soltware Engineering: New Ideas and Emerging Results—ICSE-NIER'18, May 27-Jun. 3, 2018, 4 pages. |
Number | Date | Country | |
---|---|---|---|
20210092015 A1 | Mar 2021 | US |