WO2015163915A1 - Optimizing scaling based on real user experience - Google Patents
Optimizing scaling based on real user experience Download PDFInfo
- Publication number
- WO2015163915A1 WO2015163915A1 PCT/US2014/035498 US2014035498W WO2015163915A1 WO 2015163915 A1 WO2015163915 A1 WO 2015163915A1 US 2014035498 W US2014035498 W US 2014035498W WO 2015163915 A1 WO2015163915 A1 WO 2015163915A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- application
- issues
- tiers
- tier
- scaling
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Definitions
- FIG. 1 is a diagram of an example of a system for optimizing scaling based on real user experience, according to one example of principles described herein.
- FIG. 2 is a diagram of an example of a scaled down system, according to one example of principles described herein.
- FIG. 3 is a diagram of an example of a scaled up system, according to one example of principles described herein.
- FIG. 4 is a flowchart of an example of a method for optimizing scaling based on real user experience, according to one example of principles described herein.
- Fig. 5 is a flowchart of an example of a method for optimizing scaling based on real user experience, according to one example of principles described herein.
- FIG. 6 is a diagram of an example of an optimizing system, according to one example of principles described herein.
- Fig. 7 is a diagram of an example of an optimizing system, according to one example of principles described herein.
- an application owner is to know when and how to trigger the scaling of the applications.
- the application owner may manually scale the applications. Manually scaling the applications involves the application owner determining which applications are to be rescaled and if an application is to be scaled up or scaled down. With hundreds of
- the application owner may improperly scale the applications. This can lead to delays, performance issues, availability issues, increased cost for application maintenance, as well as other complications.
- the principles described herein include a method for optimizing scaling based on real user experience.
- Such a method includes monitoring, using a real user monitor solution, application tiers, determining a priority level for each of the application tiers, identifying, based on monitoring the application tiers, issues associated with each of the application tiers, the issues representing current states of the application tiers, as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers, and scaling, according to a scaling plan, the application tiers based on the issues and the priority level for each of the application tiers.
- Such a method allows scaling of the application's resources to be optimized by scaling the application tiers. As a result, delays, performance issues and availability issues are reduced as well as the cost for application maintenance.
- a resource is meant to be understood broadly as a source that an application may use when accessing or processing data.
- a resource may be a server, a database, random access memory (RAM), central processing unit (CPU), other resources, or combinations thereof.
- an application tier is meant to be understood broadly as a layer of functionality for an application.
- a persistency tier is composed of database servers.
- a user interface (Ul) tier is composed of Web servers.
- a business brain tier is composed of application servers that handle calculations of the applications.
- an application is a finance application
- the application tier for the finance application is responsible for all the finance calculations, approximation, and predictions.
- each tier is composed of several servers which share the functionality load. Further, due to dependencies between different application tiers, some application tier may be considered as users for other application tier.
- business logic brain tier servers such as application servers, are the actual users of the persistency database tier since they request all the persistency and query request from the various databases.
- measuring the performance and availability of the database persistency tier as experience by business logic brain tier servers is considered as measuring the real user experience of the database persistency tier.
- issue is meant to be understood broadly as a current state of an application tier, as monitored by a real user monitor solution, in which the current state indicates a negative impact on the application tier.
- an issue may be a performance issue, an availability issues, a delay issues, other issues, or combinations thereof.
- an issue negatively impacts a user.
- the term "priority level” is meant to be understood broadly as level of significance associated with an application tier.
- the priority level may be a range such as 0 to 10, where 0 represents the lowest priority level for an application tier and 10 represents the highest priority level for an application tier.
- the priority level may be symbolic such as lowest priority, less priority, more priority, and highest priority, among others.
- a number of or similar language is meant to be understood broadly as any positive number comprising 1 to infinity; zero not being a number, but the absence of a number.
- Fig. 1 is a diagram of an example of a system for optimizing scaling based on real user experience, according to one example of principles described herein.
- an optimizing system is in communication with a network to monitor, using a real user monitor solution, application tiers. Further, the optimizing system identifies, based on monitoring the application tiers, issues associated with each of the application tiers, the issues representing current states of the application tiers, as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers. Further, the optimizing system scales, according to a scaling plan, the application tiers based on the issues and a priority level for each of the application tiers.
- the system (100) includes a user device ( 12) with a display (110).
- a user device (112) may be used by a user to access applications (112) over a network (106).
- the application tiers (114) may be layers of functionality for applications (112).
- the applications (112) may use the resources (108) when accessing or processing data.
- a resource may be a server, a database, RAM, CPU, other resources, or combinations thereof. The more users that access the applications (112), the heavier the traffic load on the network (106). In one example, if the traffic load on the network (106) is excessive, this may cause issues such as performance issues, availability issues, delay issues, other issues, or combinations thereof for the application tiers (11 ).
- the system (100) further includes an optimizing system (110).
- the optimizing system (110) monitors, using a real user monitor solution, application tiers (114).
- the optimizing system (110) monitors all incoming and outgoing traffic to every application tier (1 4) and based on that measurement, the optimizing system (110) deduces and calculates performance and availability of the application tiers (114).
- the optimizing system (110) determines a priority level for each of the application tiers (114).
- the priority level may be based on determining a number of dependencies for each of the application tiers (114).
- the priority level may be based on determining the priority level set by an application owner for each of the application tiers (114).
- the optimizing system (110) further identifies, based on monitoring the application tiers ( 14), issues associated with each of the application tiers (114), the issues representing current states of the application tiers (114), as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers (114).
- an issue may be a performance issue, an availability issue, a delay issue, other issues, or combinations thereof for the application tiers (114).
- the optimizing system (110) scales, according to a scaling plan, the application tiers (114) based on the issues and the priority level for each of the application tiers (114).
- a scaling plan allows scaling of the application's resources to be optimized by scaling the application tiers (114).
- delays, performance issues and availability issues are reduced as well as the cost for application maintenance. More information about the optimizing system (110) will be described later on in this specification.
- the optimizing system may be located in any appropriate location according to the principles described herein.
- the optimizing system may be located in a user device, a server, a datacenter, other locations, or combinations thereof.
- any number of user devices may access the application.
- the traffic load may be increased or decreased.
- the optimizing system may scale the application tiers accordingly.
- the application tiers may be located in any appropriate location according to the principles described herein.
- the application tiers may be located on the applications.
- Fig. 2 is a diagram of an example of a scaled down system, according to one example of principles described herein.
- an optimizing system is in communication with a network to monitor, using a real user monitor solution, application tiers. Further, the optimizing system identifies, based on monitoring the application tiers, issues associated with each of the application tiers, the issues representing current states of the application tiers, as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers. Further, the optimizing system scales, according to a scaling plan, the application tiers based on the issues and a priority level for each of the application tiers.
- the system (200) is scaled down.
- the optimizing system of Fig. 1 may scale down. For example, scaling down may use less resources, servers, and services. Scaling down may take into consideration network volume and a concurrent amount of users on the network. In one example, again according to the highest priority level for each of the application tiers, the optimizing system of Fig. 1 will learn from the history of the monitoring for each application tier and deduce whether the system (200) can be scaled down.
- the system (200) is scaled down to include a persistence tier database server (202), a business logic tier application server (204), and web tier web server (206).
- a persistence tier database server 202
- a business logic tier application server 204
- web tier web server 206
- Fig. 3 is a diagram of an example of a scaled up system, according to one example of principles described herein.
- an optimizing system is in communication with a network to monitor, using a real user monitor solution, application tiers. Further, the optimizing system identifies, based on monitoring the application tiers, issues associated with each of the application tiers, the issues representing current states of the application tiers, as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers. Further, the optimizing system scales, according to a scaling plan, the application tiers based on the issues and a priority level for each of the application tiers.
- the optimizing system of Fig. 1 understands which application tiers suffer from issues such as delays issues, performance issues, and availability issue.
- the analysis may be done according to a baseline or according to static thresholds.
- the optimizing system of Fig. 1 scales up the system (300). This increases resources, servers instances, and/or services usages.
- the optimizing system of Fig. 1 focuses on a single application tier with the highest priority level set for scaling by the application owner that suffers from issues. As a result, this application tier is scaled up.
- the system (300) is scaled up to include two persistence tier database server (302), two business logic tier application server (304), and three web tier web server (306).
- two persistence tier database server (302) two business logic tier application server (304), and three web tier web server (306).
- issues such as delays issues, performance issues, and availability issues are reduced.
- Fig. 4 is a flowchart of an example of a method for optimizing scaling based on real user experience, according to one example of principles described herein.
- the method (400) may be executed by the system (100) of Fig. 1.
- the method (400) may be executed by other systems such as system 600 or system 700.
- the method (400) includes monitoring (401), using a real user monitor solution, application tiers, determining (402) a priority level for each of the application tiers, identifying (403), based on monitoring the application tiers, issues associated with each of the application tiers, the issues representing current states of the application tiers, as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers, and scaling (404), according to a scaling plan, the application tiers based on the issues and the priority level for each of the application tiers.
- the method (400) includes monitoring (401). using a real user monitor solution, application tiers.
- the method (400) monitors all incoming and outgoing traffic to every application tier and based on the traffic, the method (400) deduces performance and availability for each application tier. As a result, the method (400) monitors the current state of the application tiers.
- monitoring, using the real user monitor solution, the application tiers includes monitoring the application tiers using a sniffer based solution.
- the sniffer based solution may sniff the traffic and perform an analysis of the traffic.
- the sniffer based solution may use a real user experience manager (RUM) tool.
- the RUM tool is a passive monitoring technology that records all user interaction with a website or client interacting with a server, application tiers, or database based application as data.
- the RUM tool monitors the actual user interaction with a website or an application of interest to determine if users are being served quickly, error free and if not which part of a business process is failing.
- the data is used to determine the actual service-level quality delivered to end-users and to detect errors or slowdowns on web sites.
- the data may also be used to determine if changes that are promulgated to application tiers has a desired effect or causes issues.
- monitoring, using the real user monitor solution, the application tiers includes monitoring the application tiers using a server agent code injection solution.
- the server agent code injection solution interjects computer program code on a server such that the server understands the traffic on the server.
- a diagnostic tool may be used to aid the server agent code injection solution in analyzing the traffic on the server.
- monitoring, using the real user monitor solution, the application tiers includes monitoring the application tiers using a client instrumentation solution.
- the client instrumentation solution injects computer program code into every client. Further the client instrumentation solution performs an analysis to determine the traffic on the clients.
- the method (400) includes determining (402) a priority level for each of the application tiers. As will be described in later parts of this specification, the method (400) focuses on an application tier with the highest priority level to determine if the application tier is to be scaled up or scaled down.
- determining the priority level for each of the application tiers includes determining a number of dependencies for each of the application tiers to other different application tiers. For example, if a login service serves a web Ul tier, a business logic tier, and a security tier, the method (400) determines the priority level is three.
- determining the priority level for each of the application tiers includes determining the priority level set by an application owner.
- the priority level for each of the application ties may be set by the application owner via a Ul.
- the Ul allows the application owner to specify a priority level for each of the application tiers.
- the Ul may include text boxes, pull down boxes, among other methods to allow the user to specify the priority level for each of the application tiers.
- the method (400) includes identifying (403), based on monitoring the application tiers, issues associated with each of the application tiers, the issues representing current states of the application tiers, as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers.
- the method (400) understands which application tiers suffer from issues such as delays issues, performance issues, and availability issue. This may be accomplished according to baseline and even according to static thresholds.
- the method (400) includes scaling (404), according to a scaling plan, the application tiers based on the issues and the priority level for each of the application tiers.
- scaling, according to the scaling plan, the application tiers based on the issues and the priority level for each of the application tiers includes scaling up or scaling down.
- scaling up includes identifying the issues for the application tiers that are due to a heavy traffic load from users.
- the heavy traffic load from users may slow down the application tier thus causing issues.
- Scaling up further includes selecting a single application tier from the application tiers that have the issues due to the heavy traffic load from the users. For example, if a web tier and a database tier both suffer from poor performance it may very well be that scaling the database tier will resolve both issues. As a result, the method (400) scales the database tier.
- scaling up includes scaling the single application tier according to the scaling plan.
- the scaling plan may be as simple as adding identical servers to the application tier.
- the scaling plan may be complex. For example, the scaling plan may first attempt to add more CPU cores, RAM, and memory to the servers. Next, the scaling plan may increase usage patterns of cache services. Finally, the scaling plan may add more servers.
- Scaling up further includes revaluating the application tiers to identify further issues for the application tiers. In one example, selecting a single application tier from the application tiers that have issues due to the heavy traffic load from the users and remediating that issue may or may not fix the issues or may result in further issues. As a result, the method (400) revaluates the application tiers to identify further issues for the application tiers. If there are further issues, the scaling up method repeats. Alternatively, if there are no further issues, the scaling method ends.
- scaling according to the scaling plan, the application tiers based on the issues and the priority level for each of the application tiers includes scaling down. For example, in the case that no application tiers are suffering from issues, the method (400) scales down to use fewer resources. In one example, according to the highest priority level, the method (400) learns from the history of monitoring each of the application tiers and deduces whether to scale down.
- five different web servers belong to web tiers, may handle a peak period of 500 MBPS from 10000 concurrent users. If the entire web tier is currently handling 10 KBPS from 100 concurrent users it should be clear that the method (400) could scale down and use fewer resources.
- such an attempt to scale down may be done according to a traffic amount per second that application tiers are handling. In another example, such an attempt to scale down may be done based on the number of user tiers the servers are handling. In yet another example, such an attempt to scale down may be done according to a factor ratio. In one example, the factor ratio may be provided by application owner. In another example, the factor ratio may be calculated dynamically by a learning function.
- the method (400) scales down by Identifying, based on the priority level, a single application tier that can handle a heavier traffic load. If an application tier can handle a heavier traffic load, the application tier may be underutilized.
- the method (400) scales down by determining if the single application tier passes a ratio factor test.
- the factor ratio may be provided by application owner. Further, the factor ratio may be calculated dynamically by a learning function. For example, when reducing from 500 megabits per second (Mbps) to 10 kilobits per second (Kbps), the ratio may be 50,000:1. In one example, to scale down, the ratio factor has to be greater than 500:1. In one example, if the ratio factor test passes, the method (700) may continue. Alternatively, if the ratio factor test fails, the method (700) may not continue.
- the method (400) further scales down by scaling the single application tier according to the scaling plan.
- the scaling plan may be simple or complex.
- the method (400) scales down by revaluating the application tiers to identify further issues for the application tiers. In one example, selecting a single application tier from the application tiers to scale down may lead to issues. As a result, the method (400) revaluates the application tiers to identify further issues for the application tiers. If there are further issues, the scaling down method repeats. Alternatively, if there are no further issues, the scaling down method ends.
- Fig. 5 is a flowchart of an example of a method for optimizing scaling based on real user experience, according to one example of principles described herein.
- the method (500) may be executed by the system (100) of Fig. 1.
- the method (500) may be executed by other systems such as system 600 or system 700.
- the method (500) includes monitoring (501), using a real user monitor solution, application tiers, determining (502) a priority level for each of the application tiers, identifying (503), based on monitoring the application tiers, issues associated with each of the application tiers, the issues representing current states of the application tiers, as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers, obtaining (504) a scaling plan, in which the scaling plan determines how to scale the application tiers, and scaling (505), according to the scaling plan, the application tiers based on the issues and the priority level for each of the application tiers.
- the method (500) includes obtaining (504) a scaling plan, in which the scaling plan determines how to scale the application tiers.
- the scaling plan may as simple as adding identical servers to the application tier.
- the scaling plan may be complex. For example, the scaling plan may first attempt to add more CPU cores, RAM, and memory to the servers. Next, the scaling plan may increase usage patterns of cache services. Finally, the scaling plan may add more servers.
- a Ul may allow a user to define the scaling plan.
- the scaling system of Fig. 1 may obtain the scaling plan.
- other methods and techniques may be used to define the scaling plan.
- Fig. 6 is a diagram of an example of an optimizing system (600), according to one example of principles described herein.
- the optimizing system (600) includes a monitoring engine (602), a determining engine (604), an identifying engine (606), and a scaling engine (608).
- the optimizing system (600) also includes an obtaining engine (610).
- the engines (602, 604, 606, 608, 610) refer to a combination of hardware and program instructions to perform a designated function.
- Each of the engines (602, 604, 606, 608, 610) may include a processor and memory.
- the program instructions are stored in the memory and cause the processor to execute the designated function of the engine.
- the monitoring engine (602) monitors, using a real user monitor solution, application tiers.
- the monitoring engine (602) monitors the application tiers using a sniffer based solution, a server agent code injection solution, a client instrumentation solution, or combinations thereof.
- the determining engine (604) determines a priority level for each of the application tiers. In one example, the determining engine (604) determines the priority level for each of the application tiers by determining a number of dependencies for each of the application tiers, determining the priority level set by an application owner, or combinations thereof.
- the identifying engine (606) identifies, based on monitoring the application tiers, issues associated with each of the application tiers, the issues representing current states of the application tiers, as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers. In one example, the identifying engine (606) identifies one issue associated with each of the application tiers. In another example, the identifying engine (606) identifies several issues associated with each of the application tiers.
- the scaling engine (608) scales, according to a scaling plan, the application tiers based on the issues and the priority level for each of the application tiers. In one example, the scaling engine (608) scales up or scales down.
- the scaling engine (608) scales up by identifying the issues for the application tiers that are due to a heavy traffic load from users, selecting a single application tier from the application tiers that have the issues due to the heavy traffic load from the users, scaling the single application tier according to the scaling plan, and revaluating the application tiers to identify further issues for the application tiers.
- the scaling engine (608) scales down by identifying, based on the priority level, a single application tier that can handle a heavier traffic load, determining if the single application tier passes a ratio factor test, scaling the single application tier according to the scaling plan, and revaluating the application tiers to identify further issues for the application tiers.
- the obtaining engine (610) obtains the scaling plan, in which the scaling plan determines how to scale the application tiers. In one example, the obtaining engine (610) obtains one scaling plan. In another example, the obtaining engine (610) obtains several scaling plans.
- Fig. 7 is a diagram of an example of an optimizing system (700), according to one example of principles described herein.
- optimizing system (700) includes processing resources (702) that are in communication with memory resources (704).
- Processing resources (702) include at least one processor and other resources used to process
- the memory resources (704) represent generally any memory capable of storing data such as programmed instructions or data structures used by the optimizing system (700).
- the programmed instructions shown stored in the memory resources (704) include an application tier monitor (706), a priority level determiner (708), an issue identifier (710), a scaling plan obtainer (712), and an application tier scaler (714).
- the memory resources (704) include a computer readable storage medium that contains computer readable program code to cause tasks to be executed by the processing resources (702).
- the computer readable storage medium may be tangible and/or physical storage medium.
- the computer readable storage medium may be any appropriate storage medium that is not a transmission storage medium.
- a non-exhaustive list of computer readable storage medium types includes non-volatile memory, volatile memory, random access memory, write only memory, flash memory, electrically erasable program read only memory, or types of memory, or combinations thereof.
- the application tier monitor (706) represents programmed instructions that, when executed, cause the processing resources (702) to monitor, using a real user monitor solution, application tiers.
- the priority level determiner (708) represents programmed instructions that, when executed, cause the processing resources (702) to determine a priority level for each of the application tiers.
- the issue identifier (710) represents programmed instructions that, when executed, cause the processing resources (702) to identify, based on monitoring the application tiers, issues associated with each of the application tiers, the issues representing current states of the application tiers, as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers.
- the scaling plan obtainer (712) represents programmed instructions that, when executed, cause the processing resources (702) to obtain a scaling plan, in which the scaling plan determines how to scale the application tiers.
- the application tier scaler (714) represents programmed instructions that, when executed, cause the processing resources (702) to scale, according to the scaling plan, the application tiers based on the issues and the priority level for each of the application tiers.
- the memory resources (704) may be part of an installation package.
- the programmed instructions of the memory resources (704) may be downloaded from the installation package's source, such as a portable medium, a server, a remote network location, another location, or combinations thereof.
- Portable memory media that are compatible with the principles described herein include DVDs, CDs, flash memory, portable disks, magnetic disks, optical disks, other forms of portable memory, or combinations thereof.
- the program instructions are already installed.
- the memory resources can include integrated memory such as a hard drive, a solid state hard drive, or the like.
- the processing resources (702) and the memory resources (702) are located within the same physical component, such as a server, or a network component.
- the memory resources (704) may be part of the physical component's main memory, caches, registers, non-volatile memory, or elsewhere in the physical component's memory hierarchy.
- the memory resources (704) may be in communication with the processing resources (702) over a network.
- the data structures, such as the libraries, may be accessed from a remote location over a network connection while the programmed instructions are located locally.
- the optimizing system (700) may be implemented on a user device, on a server, on a collection of servers, or combinations thereof.
- the optimizing system (700) of Fig. 7 may be part of a general purpose computer. However, in alternative examples, the optimizing system (700) is part of an application specific integrated circuit.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
Optimizing scaling based on real user experience includes monitoring, using a real user monitor solution, application tiers, determining a priority level for each of the application tiers, identifying, based on monitoring the application tiers, issues associated with each of the application tiers, the issues representing current states of the application tiers, as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers, and scaling, according to a scaling plan, the application tiers based on the issues and the priority level for each of the application tiers.
Description
OPTIMIZING SCALING BASED ON REAL USER EXPERIENCE
BACKGROUND
[0001] Often, applications rescale their resource consumption to manage traffic loads and maintenance expenses. Upon peak periods or heavy traffic loads an application may rescale its resource consumption to avoid delays issues, performance issues, and availability issues. Upon idle periods, the application may rescale its resource consumption to reduce maintenance expenses.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] The accompanying drawings illustrate various examples of the principles described herein and are a part of the specification. The examples do not limit the scope of the claims.
[0003] Fig. 1 is a diagram of an example of a system for optimizing scaling based on real user experience, according to one example of principles described herein.
[0004] Fig. 2 is a diagram of an example of a scaled down system, according to one example of principles described herein.
[0005] Fig. 3 is a diagram of an example of a scaled up system, according to one example of principles described herein.
[0006] Fig. 4 is a flowchart of an example of a method for optimizing scaling based on real user experience, according to one example of principles described herein.
[0007] Fig. 5 is a flowchart of an example of a method for optimizing scaling based on real user experience, according to one example of principles described herein.
[0008] Fig. 6 is a diagram of an example of an optimizing system, according to one example of principles described herein.
[0009] Fig. 7 is a diagram of an example of an optimizing system, according to one example of principles described herein.
[0010] Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements.
DETAILED DESCRIPTION
[0011] To rescale the applications to meet the application's resource consumption demands, an application owner is to know when and how to trigger the scaling of the applications. In one example, the application owner may manually scale the applications. Manually scaling the applications involves the application owner determining which applications are to be rescaled and if an application is to be scaled up or scaled down. With hundreds of
applications, the application owner may improperly scale the applications. This can lead to delays, performance issues, availability issues, increased cost for application maintenance, as well as other complications.
[0012] The principles described herein include a method for optimizing scaling based on real user experience. Such a method includes monitoring, using a real user monitor solution, application tiers, determining a priority level for each of the application tiers, identifying, based on monitoring the application tiers, issues associated with each of the application tiers, the issues representing current states of the application tiers, as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers, and scaling, according to a scaling plan, the application tiers based on the issues and the priority level for each of the application tiers. Such a method allows scaling of the application's resources to be optimized by
scaling the application tiers. As a result, delays, performance issues and availability issues are reduced as well as the cost for application maintenance.
[0013] In the present specification and in the appended claims, the term "resource" is meant to be understood broadly as a source that an application may use when accessing or processing data. In one example, a resource may be a server, a database, random access memory (RAM), central processing unit (CPU), other resources, or combinations thereof.
[0014] In the present specification and in the appended claims, the term "application tier" is meant to be understood broadly as a layer of functionality for an application. For example, a persistency tier is composed of database servers. A user interface (Ul) tier is composed of Web servers. A business brain tier is composed of application servers that handle calculations of the applications. In one example, if an application is a finance application, the application tier for the finance application is responsible for all the finance calculations, approximation, and predictions. In one example, if the application as a whole is a multi-tier module, each tier is composed of several servers which share the functionality load. Further, due to dependencies between different application tiers, some application tier may be considered as users for other application tier. For example, business logic brain tier servers, such as application servers, are the actual users of the persistency database tier since they request all the persistency and query request from the various databases. As a result, measuring the performance and availability of the database persistency tier as experience by business logic brain tier servers is considered as measuring the real user experience of the database persistency tier.
[0015] In the present specification and in the appended claims, the term "issue" is meant to be understood broadly as a current state of an application tier, as monitored by a real user monitor solution, in which the current state indicates a negative impact on the application tier. In one example, an issue may be a performance issue, an availability issues, a delay issues, other issues, or combinations thereof. As will be described below, an issue negatively impacts a user. In the present specification and in the appended claims, the term "priority level" is meant to be understood broadly as
level of significance associated with an application tier. In one example, the priority level may be a range such as 0 to 10, where 0 represents the lowest priority level for an application tier and 10 represents the highest priority level for an application tier. In another example, the priority level may be symbolic such as lowest priority, less priority, more priority, and highest priority, among others.
[0016] Further, as used in the present specification and in the appended claims, the term "a number of or similar language is meant to be understood broadly as any positive number comprising 1 to infinity; zero not being a number, but the absence of a number.
[0017] In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present systems and methods. It will be apparent, however, to one skilled in the art that the present apparatus, systems, and methods may be practiced without these specific details. Reference in the specification to "an example" or similar language means that a particular feature, structure, or characteristic described in connection with that example is included as described, but may not be included in other examples.
[0018] Referring now to the figures, Fig. 1 is a diagram of an example of a system for optimizing scaling based on real user experience, according to one example of principles described herein. As will be described below, an optimizing system is in communication with a network to monitor, using a real user monitor solution, application tiers. Further, the optimizing system identifies, based on monitoring the application tiers, issues associated with each of the application tiers, the issues representing current states of the application tiers, as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers. Further, the optimizing system scales, according to a scaling plan, the application tiers based on the issues and a priority level for each of the application tiers.
[0019] In one example, the system (100) includes a user device ( 12) with a display (110). In this example, a user device (112) may be used by a user to access applications (112) over a network (106). As will be described in
other parts of this specification, the application tiers (114) may be layers of functionality for applications (112). Further, the applications (112) may use the resources (108) when accessing or processing data. In one example, a resource may be a server, a database, RAM, CPU, other resources, or combinations thereof. The more users that access the applications (112), the heavier the traffic load on the network (106). In one example, if the traffic load on the network (106) is excessive, this may cause issues such as performance issues, availability issues, delay issues, other issues, or combinations thereof for the application tiers (11 ).
[0020] The system (100) further includes an optimizing system (110). As will be described in other parts of this specification, the optimizing system (110) monitors, using a real user monitor solution, application tiers (114). In one example, the optimizing system (110) monitors all incoming and outgoing traffic to every application tier (1 4) and based on that measurement, the optimizing system (110) deduces and calculates performance and availability of the application tiers (114).
[0021] Further, the optimizing system (110) determines a priority level for each of the application tiers (114). In one example, the priority level may be based on determining a number of dependencies for each of the application tiers (114). In another example, the priority level may be based on determining the priority level set by an application owner for each of the application tiers (114).
[0022] The optimizing system (110) further identifies, based on monitoring the application tiers ( 14), issues associated with each of the application tiers (114), the issues representing current states of the application tiers (114), as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers (114). In one example, an issue may be a performance issue, an availability issue, a delay issue, other issues, or combinations thereof for the application tiers (114).
[0023] Further, the optimizing system (110) scales, according to a scaling plan, the application tiers (114) based on the issues and the priority level for each of the application tiers (114). Such a method allows scaling of the
application's resources to be optimized by scaling the application tiers (114). As a result, delays, performance issues and availability issues are reduced as well as the cost for application maintenance. More information about the optimizing system (110) will be described later on in this specification.
[0024] While this example has been described with reference to the optimizing system being located over the network, the optimizing system may be located in any appropriate location according to the principles described herein. For example, the optimizing system may be located in a user device, a server, a datacenter, other locations, or combinations thereof.
[0025] While this example has been described with reference to one user device accessing the applications, any number of user devices may access the application. Depending on the users and the number of user devices, the traffic load may be increased or decreased. As a result, the optimizing system may scale the application tiers accordingly.
[0026] While this example has been described with reference to the application tiers being located over the network, the application tiers may be located in any appropriate location according to the principles described herein. For example, the application tiers may be located on the applications.
[0027] Fig. 2 is a diagram of an example of a scaled down system, according to one example of principles described herein. As mentioned above, an optimizing system is in communication with a network to monitor, using a real user monitor solution, application tiers. Further, the optimizing system identifies, based on monitoring the application tiers, issues associated with each of the application tiers, the issues representing current states of the application tiers, as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers. Further, the optimizing system scales, according to a scaling plan, the application tiers based on the issues and a priority level for each of the application tiers.
[0028] As illustrated in Fig. 2, the system (200) is scaled down. In one example, if no application tier is suffering from issues, the optimizing system of Fig. 1 may scale down. For example, scaling down may use less resources, servers, and services. Scaling down may take into consideration
network volume and a concurrent amount of users on the network. In one example, again according to the highest priority level for each of the application tiers, the optimizing system of Fig. 1 will learn from the history of the monitoring for each application tier and deduce whether the system (200) can be scaled down.
[0029] In this example, the system (200) is scaled down to include a persistence tier database server (202), a business logic tier application server (204), and web tier web server (206). As a result, the cost for application maintenance is reduced without the network experiencing issues such as delays issues, performance issues, and availability issues.
[0030] Fig. 3 is a diagram of an example of a scaled up system, according to one example of principles described herein. As mentioned above, an optimizing system is in communication with a network to monitor, using a real user monitor solution, application tiers. Further, the optimizing system identifies, based on monitoring the application tiers, issues associated with each of the application tiers, the issues representing current states of the application tiers, as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers. Further, the optimizing system scales, according to a scaling plan, the application tiers based on the issues and a priority level for each of the application tiers.
[0031] As illustrated in Fig. 3, the system (300) is scaled up.
According to the analysis of the real user monitoring, the optimizing system of Fig. 1 understands which application tiers suffer from issues such as delays issues, performance issues, and availability issue. In one example, the analysis may be done according to a baseline or according to static thresholds. In the example of Fig. 3, the optimizing system of Fig. 1 scales up the system (300). This increases resources, servers instances, and/or services usages. As will be described in other parts of this specification, in those scenarios according to a priority level, the optimizing system of Fig. 1 focuses on a single application tier with the highest priority level set for scaling by the application owner that suffers from issues. As a result, this application tier is scaled up.
[0032] In this example, the system (300) is scaled up to include two persistence tier database server (302), two business logic tier application server (304), and three web tier web server (306). As a result, issues such as delays issues, performance issues, and availability issues are reduced.
[0033] Fig. 4 is a flowchart of an example of a method for optimizing scaling based on real user experience, according to one example of principles described herein. In one example, the method (400) may be executed by the system (100) of Fig. 1. In other examples, the method (400) may be executed by other systems such as system 600 or system 700. In this example, the method (400) includes monitoring (401), using a real user monitor solution, application tiers, determining (402) a priority level for each of the application tiers, identifying (403), based on monitoring the application tiers, issues associated with each of the application tiers, the issues representing current states of the application tiers, as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers, and scaling (404), according to a scaling plan, the application tiers based on the issues and the priority level for each of the application tiers.
[0034] As mentioned above, the method (400) includes monitoring (401). using a real user monitor solution, application tiers. In one example, the method (400) monitors all incoming and outgoing traffic to every application tier and based on the traffic, the method (400) deduces performance and availability for each application tier. As a result, the method (400) monitors the current state of the application tiers.
[0035] In one example, monitoring, using the real user monitor solution, the application tiers includes monitoring the application tiers using a sniffer based solution. For example, the sniffer based solution may sniff the traffic and perform an analysis of the traffic. In one example, the sniffer based solution may use a real user experience manager (RUM) tool. The RUM tool is a passive monitoring technology that records all user interaction with a website or client interacting with a server, application tiers, or database based application as data. The RUM tool monitors the actual user interaction with a website or an application of interest to determine if users are being served
quickly, error free and if not which part of a business process is failing. The data is used to determine the actual service-level quality delivered to end-users and to detect errors or slowdowns on web sites. The data may also be used to determine if changes that are promulgated to application tiers has a desired effect or causes issues.
[0036] In another example, monitoring, using the real user monitor solution, the application tiers includes monitoring the application tiers using a server agent code injection solution. In one example, the server agent code injection solution interjects computer program code on a server such that the server understands the traffic on the server. In one example, a diagnostic tool may be used to aid the server agent code injection solution in analyzing the traffic on the server.
[0037] In yet another example, monitoring, using the real user monitor solution, the application tiers includes monitoring the application tiers using a client instrumentation solution. In one example, the client instrumentation solution injects computer program code into every client. Further the client instrumentation solution performs an analysis to determine the traffic on the clients.
[0038] As mentioned above, the method (400) includes determining (402) a priority level for each of the application tiers. As will be described in later parts of this specification, the method (400) focuses on an application tier with the highest priority level to determine if the application tier is to be scaled up or scaled down.
[0039] In one example, determining the priority level for each of the application tiers includes determining a number of dependencies for each of the application tiers to other different application tiers. For example, if a login service serves a web Ul tier, a business logic tier, and a security tier, the method (400) determines the priority level is three.
[0040] In another example, determining the priority level for each of the application tiers includes determining the priority level set by an application owner. In this example, the priority level for each of the application ties may be set by the application owner via a Ul. For example, the Ul allows the
application owner to specify a priority level for each of the application tiers. The Ul may include text boxes, pull down boxes, among other methods to allow the user to specify the priority level for each of the application tiers.
[0041] As mentioned above, the method (400) includes identifying (403), based on monitoring the application tiers, issues associated with each of the application tiers, the issues representing current states of the application tiers, as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers. According to the analysis of the real user monitoring, the method (400) understands which application tiers suffer from issues such as delays issues, performance issues, and availability issue. This may be accomplished according to baseline and even according to static thresholds.
[0042] As mentioned above, the method (400) includes scaling (404), according to a scaling plan, the application tiers based on the issues and the priority level for each of the application tiers. In one example, scaling, according to the scaling plan, the application tiers based on the issues and the priority level for each of the application tiers includes scaling up or scaling down.
[0043] In one example, scaling up includes identifying the issues for the application tiers that are due to a heavy traffic load from users. In this example, the heavy traffic load from users may slow down the application tier thus causing issues.
[0044] Scaling up further includes selecting a single application tier from the application tiers that have the issues due to the heavy traffic load from the users. For example, if a web tier and a database tier both suffer from poor performance it may very well be that scaling the database tier will resolve both issues. As a result, the method (400) scales the database tier.
[0045] Further, scaling up includes scaling the single application tier according to the scaling plan. In one example, the scaling plan may be as simple as adding identical servers to the application tier. In another example, the scaling plan may be complex. For example, the scaling plan may first attempt to add more CPU cores, RAM, and memory to the servers. Next, the
scaling plan may increase usage patterns of cache services. Finally, the scaling plan may add more servers.
[0046] Scaling up further includes revaluating the application tiers to identify further issues for the application tiers. In one example, selecting a single application tier from the application tiers that have issues due to the heavy traffic load from the users and remediating that issue may or may not fix the issues or may result in further issues. As a result, the method (400) revaluates the application tiers to identify further issues for the application tiers. If there are further issues, the scaling up method repeats. Alternatively, if there are no further issues, the scaling method ends.
[0047] As mentioned above, scaling, according to the scaling plan, the application tiers based on the issues and the priority level for each of the application tiers includes scaling down. For example, in the case that no application tiers are suffering from issues, the method (400) scales down to use fewer resources. In one example, according to the highest priority level, the method (400) learns from the history of monitoring each of the application tiers and deduces whether to scale down.
[0048] For example, five different web servers, belong to web tiers, may handle a peak period of 500 MBPS from 10000 concurrent users. If the entire web tier is currently handling 10 KBPS from 100 concurrent users it should be clear that the method (400) could scale down and use fewer resources.
[0049] In one example, such an attempt to scale down may be done according to a traffic amount per second that application tiers are handling. In another example, such an attempt to scale down may be done based on the number of user tiers the servers are handling. In yet another example, such an attempt to scale down may be done according to a factor ratio. In one example, the factor ratio may be provided by application owner. In another example, the factor ratio may be calculated dynamically by a learning function.
[0050] In one example, the method (400) scales down by Identifying, based on the priority level, a single application tier that can handle a heavier
traffic load. If an application tier can handle a heavier traffic load, the application tier may be underutilized.
[0051] The method (400) scales down by determining if the single application tier passes a ratio factor test. As mentioned above, the factor ratio may be provided by application owner. Further, the factor ratio may be calculated dynamically by a learning function. For example, when reducing from 500 megabits per second (Mbps) to 10 kilobits per second (Kbps), the ratio may be 50,000:1. In one example, to scale down, the ratio factor has to be greater than 500:1. In one example, if the ratio factor test passes, the method (700) may continue. Alternatively, if the ratio factor test fails, the method (700) may not continue.
[0052] The method (400) further scales down by scaling the single application tier according to the scaling plan. As mentioned above, the scaling plan may be simple or complex.
[0053] The method (400) scales down by revaluating the application tiers to identify further issues for the application tiers. In one example, selecting a single application tier from the application tiers to scale down may lead to issues. As a result, the method (400) revaluates the application tiers to identify further issues for the application tiers. If there are further issues, the scaling down method repeats. Alternatively, if there are no further issues, the scaling down method ends.
[0054] Fig. 5 is a flowchart of an example of a method for optimizing scaling based on real user experience, according to one example of principles described herein. In one example, the method (500) may be executed by the system (100) of Fig. 1. In other examples, the method (500) may be executed by other systems such as system 600 or system 700. In this example, the method (500) includes monitoring (501), using a real user monitor solution, application tiers, determining (502) a priority level for each of the application tiers, identifying (503), based on monitoring the application tiers, issues associated with each of the application tiers, the issues representing current states of the application tiers, as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers,
obtaining (504) a scaling plan, in which the scaling plan determines how to scale the application tiers, and scaling (505), according to the scaling plan, the application tiers based on the issues and the priority level for each of the application tiers.
[0055] As mentioned above, the method (500) includes obtaining (504) a scaling plan, in which the scaling plan determines how to scale the application tiers. In one example, the scaling plan may as simple as adding identical servers to the application tier. In another example, the scaling plan may be complex. For example, the scaling plan may first attempt to add more CPU cores, RAM, and memory to the servers. Next, the scaling plan may increase usage patterns of cache services. Finally, the scaling plan may add more servers.
[0056] In one example, a Ul may allow a user to define the scaling plan. By defining the scaling plan, the scaling system of Fig. 1 may obtain the scaling plan. Further, other methods and techniques may be used to define the scaling plan.
[0057] Fig. 6 is a diagram of an example of an optimizing system (600), according to one example of principles described herein. The optimizing system (600) includes a monitoring engine (602), a determining engine (604), an identifying engine (606), and a scaling engine (608). In this example, the optimizing system (600) also includes an obtaining engine (610). The engines (602, 604, 606, 608, 610) refer to a combination of hardware and program instructions to perform a designated function. Each of the engines (602, 604, 606, 608, 610) may include a processor and memory. The program instructions are stored in the memory and cause the processor to execute the designated function of the engine.
[0058] The monitoring engine (602) monitors, using a real user monitor solution, application tiers. In one example, the monitoring engine (602) monitors the application tiers using a sniffer based solution, a server agent code injection solution, a client instrumentation solution, or combinations thereof.
[0059] The determining engine (604) determines a priority level for each of the application tiers. In one example, the determining engine (604)
determines the priority level for each of the application tiers by determining a number of dependencies for each of the application tiers, determining the priority level set by an application owner, or combinations thereof.
[0060] The identifying engine (606) identifies, based on monitoring the application tiers, issues associated with each of the application tiers, the issues representing current states of the application tiers, as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers. In one example, the identifying engine (606) identifies one issue associated with each of the application tiers. In another example, the identifying engine (606) identifies several issues associated with each of the application tiers.
[0061] The scaling engine (608) scales, according to a scaling plan, the application tiers based on the issues and the priority level for each of the application tiers. In one example, the scaling engine (608) scales up or scales down.
[0062] In one example, the scaling engine (608) scales up by identifying the issues for the application tiers that are due to a heavy traffic load from users, selecting a single application tier from the application tiers that have the issues due to the heavy traffic load from the users, scaling the single application tier according to the scaling plan, and revaluating the application tiers to identify further issues for the application tiers.
[0063] In one example, the scaling engine (608) scales down by identifying, based on the priority level, a single application tier that can handle a heavier traffic load, determining if the single application tier passes a ratio factor test, scaling the single application tier according to the scaling plan, and revaluating the application tiers to identify further issues for the application tiers.
[0064] The obtaining engine (610) obtains the scaling plan, in which the scaling plan determines how to scale the application tiers. In one example, the obtaining engine (610) obtains one scaling plan. In another example, the obtaining engine (610) obtains several scaling plans.
[0065] Fig. 7 is a diagram of an example of an optimizing system (700), according to one example of principles described herein. In this
example, optimizing system (700) includes processing resources (702) that are in communication with memory resources (704). Processing resources (702) include at least one processor and other resources used to process
programmed instructions. The memory resources (704) represent generally any memory capable of storing data such as programmed instructions or data structures used by the optimizing system (700). The programmed instructions shown stored in the memory resources (704) include an application tier monitor (706), a priority level determiner (708), an issue identifier (710), a scaling plan obtainer (712), and an application tier scaler (714).
[0066] The memory resources (704) include a computer readable storage medium that contains computer readable program code to cause tasks to be executed by the processing resources (702). The computer readable storage medium may be tangible and/or physical storage medium. The computer readable storage medium may be any appropriate storage medium that is not a transmission storage medium. A non-exhaustive list of computer readable storage medium types includes non-volatile memory, volatile memory, random access memory, write only memory, flash memory, electrically erasable program read only memory, or types of memory, or combinations thereof.
[0067] The application tier monitor (706) represents programmed instructions that, when executed, cause the processing resources (702) to monitor, using a real user monitor solution, application tiers. The priority level determiner (708) represents programmed instructions that, when executed, cause the processing resources (702) to determine a priority level for each of the application tiers.
[0068] The issue identifier (710) represents programmed instructions that, when executed, cause the processing resources (702) to identify, based on monitoring the application tiers, issues associated with each of the application tiers, the issues representing current states of the application tiers, as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers. The scaling plan obtainer (712) represents programmed instructions that, when executed, cause the processing resources (702) to obtain a scaling plan, in which the scaling plan
determines how to scale the application tiers. The application tier scaler (714) represents programmed instructions that, when executed, cause the processing resources (702) to scale, according to the scaling plan, the application tiers based on the issues and the priority level for each of the application tiers.
[0069] Further, the memory resources (704) may be part of an installation package. In response to installing the installation package, the programmed instructions of the memory resources (704) may be downloaded from the installation package's source, such as a portable medium, a server, a remote network location, another location, or combinations thereof. Portable memory media that are compatible with the principles described herein include DVDs, CDs, flash memory, portable disks, magnetic disks, optical disks, other forms of portable memory, or combinations thereof. In other examples, the program instructions are already installed. Here, the memory resources can include integrated memory such as a hard drive, a solid state hard drive, or the like.
[0070] In some examples, the processing resources (702) and the memory resources (702) are located within the same physical component, such as a server, or a network component. The memory resources (704) may be part of the physical component's main memory, caches, registers, non-volatile memory, or elsewhere in the physical component's memory hierarchy.
Alternatively, the memory resources (704) may be in communication with the processing resources (702) over a network. Further, the data structures, such as the libraries, may be accessed from a remote location over a network connection while the programmed instructions are located locally. Thus, the optimizing system (700) may be implemented on a user device, on a server, on a collection of servers, or combinations thereof.
[0071] The optimizing system (700) of Fig. 7 may be part of a general purpose computer. However, in alternative examples, the optimizing system (700) is part of an application specific integrated circuit.
[0072] The preceding description has been presented to illustrate and describe examples of the principles described. This description is not intended
to be exhaustive or to limit these principles to any precise form disclosed. Many modifications and variations are possible in light of the above teaching.
Claims
OPTIMIZING SCALING BASED ON REAL USER EXPERIENCE
BACKGROUND
[0001] Often, applications rescale their resource consumption to manage traffic loads and maintenance expenses. Upon peak periods or heavy traffic loads an application may rescale its resource consumption to avoid delays issues, performance issues, and availability issues. Upon idle periods, the application may rescale its resource consumption to reduce maintenance expenses.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] The accompanying drawings illustrate various examples of the principles described herein and are a part of the specification. The examples do not limit the scope of the claims.
[0003] Fig. 1 is a diagram of an example of a system for optimizing scaling based on real user experience, according to one example of principles described herein.
[0004] Fig. 2 is a diagram of an example of a scaled down system, according to one example of principles described herein.
[0005] Fig. 3 is a diagram of an example of a scaled up system, according to one example of principles described herein.
[0006] Fig. 4 is a flowchart of an example of a method for optimizing scaling based on real user experience, according to one example of principles described herein.
[0007] Fig. 5 is a flowchart of an example of a method for optimizing scaling based on real user experience, according to one example of principles described herein.
[0008] Fig. 6 is a diagram of an example of an optimizing system, according to one example of principles described herein.
[0009] Fig. 7 is a diagram of an example of an optimizing system, according to one example of principles described herein.
[0010] Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements.
DETAILED DESCRIPTION
[0011] To rescale the applications to meet the application's resource consumption demands, an application owner is to know when and how to trigger the scaling of the applications. In one example, the application owner may manually scale the applications. Manually scaling the applications involves the application owner determining which applications are to be rescaled and if an application is to be scaled up or scaled down. With hundreds of
applications, the application owner may improperly scale the applications. This can lead to delays, performance issues, availability issues, increased cost for application maintenance, as well as other complications.
[0012] The principles described herein include a method for optimizing scaling based on real user experience. Such a method includes monitoring, using a real user monitor solution, application tiers, determining a priority level for each of the application tiers, identifying, based on monitoring the application tiers, issues associated with each of the application tiers, the issues representing current states of the application tiers, as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers, and scaling, according to a scaling plan, the application tiers based on the issues and the priority level for each of the application tiers. Such a method allows scaling of the application's resources to be optimized by
scaling the application tiers. As a result, delays, performance issues and availability issues are reduced as well as the cost for application maintenance.
[0013] In the present specification and in the appended claims, the term "resource" is meant to be understood broadly as a source that an application may use when accessing or processing data. In one example, a resource may be a server, a database, random access memory (RAM), central processing unit (CPU), other resources, or combinations thereof.
[0014] In the present specification and in the appended claims, the term "application tier" is meant to be understood broadly as a layer of functionality for an application. For example, a persistency tier is composed of database servers. A user interface (Ul) tier is composed of Web servers. A business brain tier is composed of application servers that handle calculations of the applications. In one example, if an application is a finance application, the application tier for the finance application is responsible for all the finance calculations, approximation, and predictions. In one example, if the application as a whole is a multi-tier module, each tier is composed of several servers which share the functionality load. Further, due to dependencies between different application tiers, some application tier may be considered as users for other application tier. For example, business logic brain tier servers, such as application servers, are the actual users of the persistency database tier since they request all the persistency and query request from the various databases. As a result, measuring the performance and availability of the database persistency tier as experience by business logic brain tier servers is considered as measuring the real user experience of the database persistency tier.
[0015] In the present specification and in the appended claims, the term "issue" is meant to be understood broadly as a current state of an application tier, as monitored by a real user monitor solution, in which the current state indicates a negative impact on the application tier. In one example, an issue may be a performance issue, an availability issues, a delay issues, other issues, or combinations thereof. As will be described below, an issue negatively impacts a user. In the present specification and in the appended claims, the term "priority level" is meant to be understood broadly as
level of significance associated with an application tier. In one example, the priority level may be a range such as 0 to 10, where 0 represents the lowest priority level for an application tier and 10 represents the highest priority level for an application tier. In another example, the priority level may be symbolic such as lowest priority, less priority, more priority, and highest priority, among others.
[0016] Further, as used in the present specification and in the appended claims, the term "a number of or similar language is meant to be understood broadly as any positive number comprising 1 to infinity; zero not being a number, but the absence of a number.
[0017] In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present systems and methods. It will be apparent, however, to one skilled in the art that the present apparatus, systems, and methods may be practiced without these specific details. Reference in the specification to "an example" or similar language means that a particular feature, structure, or characteristic described in connection with that example is included as described, but may not be included in other examples.
[0018] Referring now to the figures, Fig. 1 is a diagram of an example of a system for optimizing scaling based on real user experience, according to one example of principles described herein. As will be described below, an optimizing system is in communication with a network to monitor, using a real user monitor solution, application tiers. Further, the optimizing system identifies, based on monitoring the application tiers, issues associated with each of the application tiers, the issues representing current states of the application tiers, as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers. Further, the optimizing system scales, according to a scaling plan, the application tiers based on the issues and a priority level for each of the application tiers.
[0019] In one example, the system (100) includes a user device ( 12) with a display (110). In this example, a user device (112) may be used by a user to access applications (112) over a network (106). As will be described in
other parts of this specification, the application tiers (114) may be layers of functionality for applications (112). Further, the applications (112) may use the resources (108) when accessing or processing data. In one example, a resource may be a server, a database, RAM, CPU, other resources, or combinations thereof. The more users that access the applications (112), the heavier the traffic load on the network (106). In one example, if the traffic load on the network (106) is excessive, this may cause issues such as performance issues, availability issues, delay issues, other issues, or combinations thereof for the application tiers (114).
[0020] The system (100) further includes an optimizing system (110). As will be described in other parts of this specification, the optimizing system (110) monitors, using a real user monitor solution, application tiers (114). In one example, the optimizing system (110) monitors all incoming and outgoing traffic to every application tier (114) and based on that measurement, the optimizing system (110) deduces and calculates performance and availability of the application tiers (114).
[0021] Further, the optimizing system (110) determines a priority level for each of the application tiers (114). In one example, the priority level may be based on determining a number of dependencies for each of the application tiers (114). In another example, the priority level may be based on determining the priority level set by an application owner for each of the application tiers (114).
[0022] The optimizing system (110) further identifies, based on monitoring the application tiers (114), issues associated with each of the application tiers (114), the issues representing current states of the application tiers (114), as monitored by the real user monitor solution, in which the current states indicate negative impacts on the application tiers (114). In one example, an issue may be a performance issue, an availability issue, a delay issue, other issues, or combinations thereof for the application tiers (114).
[0023] Further, the optimizing system (110) scales, according to a scaling plan, the application tiers (114) based on the issues and the priority level for each of the application tiers (114). Such a method allows scaling of the
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2014/035498 WO2015163915A1 (en) | 2014-04-25 | 2014-04-25 | Optimizing scaling based on real user experience |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2014/035498 WO2015163915A1 (en) | 2014-04-25 | 2014-04-25 | Optimizing scaling based on real user experience |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015163915A1 true WO2015163915A1 (en) | 2015-10-29 |
Family
ID=54332944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2014/035498 WO2015163915A1 (en) | 2014-04-25 | 2014-04-25 | Optimizing scaling based on real user experience |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2015163915A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11962455B2 (en) | 2021-11-29 | 2024-04-16 | T-Mobile Usa, Inc. | Prioritizing multiple issues associated with a wireless telecommunication network |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130080641A1 (en) * | 2011-09-26 | 2013-03-28 | Knoa Software, Inc. | Method, system and program product for allocation and/or prioritization of electronic resources |
US20130132561A1 (en) * | 2011-11-17 | 2013-05-23 | Infosys Limited | Systems and methods for monitoring and controlling a service level agreement |
WO2013072232A1 (en) * | 2011-11-15 | 2013-05-23 | Telefonica, S.A. | Method to manage performance in multi-tier applications |
US20130174149A1 (en) * | 2011-12-30 | 2013-07-04 | International Business Machines Corporation | Dynamically scaling multi-tier applications in a cloud environment |
US20130205020A1 (en) * | 2010-07-19 | 2013-08-08 | SOAST A, Inc. | Real-time analytics of web performance using actual user measurements |
-
2014
- 2014-04-25 WO PCT/US2014/035498 patent/WO2015163915A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130205020A1 (en) * | 2010-07-19 | 2013-08-08 | SOAST A, Inc. | Real-time analytics of web performance using actual user measurements |
US20130080641A1 (en) * | 2011-09-26 | 2013-03-28 | Knoa Software, Inc. | Method, system and program product for allocation and/or prioritization of electronic resources |
WO2013072232A1 (en) * | 2011-11-15 | 2013-05-23 | Telefonica, S.A. | Method to manage performance in multi-tier applications |
US20130132561A1 (en) * | 2011-11-17 | 2013-05-23 | Infosys Limited | Systems and methods for monitoring and controlling a service level agreement |
US20130174149A1 (en) * | 2011-12-30 | 2013-07-04 | International Business Machines Corporation | Dynamically scaling multi-tier applications in a cloud environment |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11962455B2 (en) | 2021-11-29 | 2024-04-16 | T-Mobile Usa, Inc. | Prioritizing multiple issues associated with a wireless telecommunication network |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11290360B2 (en) | Analyzing resource placement fragmentation for capacity planning | |
US11582130B2 (en) | Performance monitoring in a distributed storage system | |
US20180060132A1 (en) | Stateful resource pool management for job execution | |
US7673189B2 (en) | Technique for mapping goal violations to anamolies within a system | |
US8949558B2 (en) | Cost-aware replication of intermediate data in dataflows | |
US20170269983A1 (en) | Method and apparatus for managing device failure | |
US10432551B1 (en) | Network request throttling | |
US20160062880A1 (en) | Methods and Systems for the Use of Synthetic Users To Performance Test Cloud Applications | |
US8296418B2 (en) | Optimized modification of a clustered computer system | |
US10303678B2 (en) | Application resiliency management using a database driver | |
US11182386B2 (en) | Offloading statistics collection | |
US9772947B2 (en) | Client voting-inclusive in-memory data grid (IMDG) cache management | |
US10552282B2 (en) | On demand monitoring mechanism to identify root cause of operation problems | |
US11683391B2 (en) | Predicting microservices required for incoming requests | |
US10778785B2 (en) | Cognitive method for detecting service availability in a cloud environment | |
US9021499B2 (en) | Moving a logical device between processor modules in response to identifying a varying load pattern | |
US10929263B2 (en) | Identifying a delay associated with an input/output interrupt | |
WO2015163915A1 (en) | Optimizing scaling based on real user experience | |
JP2017102922A (en) | Method, program and processing system for selective retention of data | |
US11243857B2 (en) | Executing test scripts with respect to a server stack | |
CN107276853B (en) | Flow processing method, electronic device and computer system | |
US20190384503A1 (en) | Volatile account identification and isolation and resource management in distributed data storage systems | |
Gregg | Thinking Methodically about Performance: The USE method addresses shortcomings in other commonly used methodologies. | |
CN114546786A (en) | Anomaly monitoring method based on multi-level cache | |
KR101630088B1 (en) | Method and apparatus for monitoring life-cycle of virtual machine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14889937 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 14889937 Country of ref document: EP Kind code of ref document: A1 |