Method for overload protection in container virtualization computing devices
By introducing load-protected containers into container virtualization computing devices, checking and forwarding requests based on load limits, and employing measures such as challenge response and attack pattern analysis, the problem of request processing under overload is solved, thereby improving service quality and processing capacity.
Patent Information
- Application Number
- CN202080065180.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-09-17
- Filing Date
- 2020-08-31
- Publication Date
- 2026-01-23
- Estimated Expiration
- 2040-08-31
AI Technical Summary
In containerized computing devices, existing technologies struggle to effectively handle request messages under overload conditions, leading to the rejection of authorized users' requests and impacting service quality.
By introducing a load protection container, the current utilization is checked based on the load limit, and request messages are forwarded to the load protection container for modification processing, including challenge response methods, static content provision, and attack pattern analysis, thereby reducing the load to handle more requests.
In overload conditions, reduce the rejection of authorization requests, improve service quality, handle more request messages, and avoid direct impact on the application.
Smart Images

Figure CN114365089B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to a method for overload protection in a container virtualization computing device, the method providing a computer-implemented application through at least one working container, and to a corresponding computing device and a corresponding computer program product. Background Technology
[0002] The computer-implemented services, also referred to below as applications, are often provided by server systems. Service users request services from the server system via communication networks, such as the Internet. In this case, the application often runs on the server system in an execution environment called a virtual container. Container virtualization is a method for running multiple instances of an operating system in isolation from each other on a so-called host system. Compared to virtualization using a hypervisor, containers share a common operating system, but only specific portions of the operating system are copied and provided separately to each container. Therefore, container virtualization is considered particularly resource-efficient. Containers ensure the separate management of resources allocated by the host system. A container that provides a specific application contains all the resources required to execute the application and can be easily transferred and installed as files. Resources include, for example, program code, runtime modules, system tools, and system libraries. Containers, in the following text, provide a specific application. Therefore, the application is encapsulated within a container.
[0003] Applications are often served by container pools comprising multiple containers. The number of containers used for an application is typically highly scalable, allowing new containers to be dynamically activated to provide the requested service or application while existing containers are already highly utilized. Application requests, such as HTTP (Hypertext Transfer Protocol) requests, are distributed across the ever-growing number of containers via a load balancer. In this case, a maximum number of containers is usually specified to cover the cost of serving the application and to prevent damage to computing devices or the underlying system.
[0004] If the maximum number of containers is reached and the number of request messages per unit time continues to rise, or exceeds the maximum number of open connections that can be processed in parallel, the request messages are typically not processed and an error message is returned to the user as a response to the request. Overload of computing devices caused by multiple application requests (also known as a Denial-of-Service (DoS) attack) is often intentionally created by malicious third parties or so-called bots. Authorized users are then no longer able to access the application.
[0005] Citrix Systems Inc.: “NetScaler 12.0 Release Notes Documentation”, April 12, 2018 (2018-04-12), pages 1-3919, URL: https: / / doc.citrix.com / en-us / netscaler / downloads / citrix-netscaler-12-0.pdf describes a load balancer that ensures application responsiveness in the event of an overload of available application servers by, for example, displaying alternative web pages from other servers.
[0006] US 8,935,399 B2 describes a method in which load balancing is performed using a network tracker (cookie). In this case, the network tracker is dispatched by an intermediate connection device to a communication session, which is rejected by one of a plurality of data processors. Each other data processor can then identify the network tracker and accept the communication session based on the content of the network tracker.
[0007] ABDELZAHER TF et al.: “Web content adaptation to improve server overload behavior”, COMPUTER NETWORKS, ELSEVIER, AMSTERDAM, NL, Vol. 31, Nos. 11-16, May 17, 1999 (1999-05-17), pp. 1563-1577, XP004304574, ISSN: 1389-1286, DOI: 10.1016 / S1389-1286(99)00031-6. This paper describes a method in which the content of one of the web pages is automatically adapted in the event of a web server overload.
[0008] When applications are served by container virtualization systems, the same measures are taken under overload conditions as in cases served by conventional systems, with a focus on container scalability. In this case, a scalability representation is utilized, which generates additional containers serving the same application as the load increases, and requests for that application are distributed to one or more of these additional containers for processing. Other measures under overload conditions include so-called overprovisioning, i.e., preparing more containers than are needed to handle the usual number of request messages. These containers can handle request messages in the event of abnormal load. Another measure is automatic scaling of resources with very high limits, merging container pools with other pools, or rebooting them, particularly to clusters in cloud environments. Furthermore, measures are known that attempt to identify attacks, particularly those involving multiple requests and the resulting rejection of requests, and to not process or reboot request messages classified as defective. Additionally, a portion of a request message may be discarded and not processed without further indication. Summary of the Invention
[0009] The objective of this invention is to provide improvements for overload conditions in containerized computing devices, under which fewer authorization request messages for applications are rejected and thus the quality of service is improved.
[0010] This task is accomplished by the measures described in the independent claims. Advantageous improvements of the invention are presented in the dependent claims.
[0011] According to a first aspect, the present invention relates to a method for overload protection in a container virtualization computing device, the container virtualization computing device providing computer-implemented applications through at least one working container, the method comprising the following steps:
[0012] - Receive the request message used to invoke the application.
[0013] - Check the current utilization of the computing device relative to a pre-defined load limit, and
[0014] - If the current utilization is above the load limit, the request message is forwarded to the load protection container, which provides at least one form of application processing that is modified relative to the working container, particularly reducing the load.
[0015] The checks can be performed in a load distribution device, which is implemented via software, or the checks can be performed in a working container.
[0016] Advantageously, in cases of computing device overload, request messages are not dropped but forwarded to specific load-protected containers. This enables resource-efficient processing of the requests, where the overload condition is pre-defined by a load limit value. Therefore, application delivery requires fewer resources than processing via regular working containers, and thus more new request messages can be processed even under overload conditions, and the application can be delivered at least in a modified form. If the load limit is not reached, the request is forwarded to the working container unchanged.
[0017] In this context, a working container refers to a container within a container virtualization computing appliance that provides an unmodified, normal form of processing—that is, a processing form in normal operation. In contrast, a load-protecting container provides the application in a modified form and includes features to reduce the number of request messages or the resources used to provide the application. Such features include, for example, checking whether a request was sent by an authorized user and forwarding only request messages from authorized users.
[0018] In one advantageous implementation, the load distribution device forwards the request message to the working container or the load protection container based on the inspection results.
[0019] Such load balancing devices can be, for example, load balancers provided by software used to build containers. Load balancing devices work very efficiently and can therefore inspect and forward large numbers of request messages in a short period of time.
[0020] In one advantageous implementation, forwarding is performed within the working container.
[0021] This has the following advantages: the existing load balancing mechanism remains unchanged, and only the processes in the working containers need to be supplemented with inspection and forwarding functions.
[0022] Therefore, the checking and assignment rules can be executed differently in different work containers and are easily implemented.
[0023] In one advantageous implementation, the inspection and forwarding are performed in representative units arranged in the working container.
[0024] Therefore, inspection and forwarding are provided separately from the actual application within the container, avoiding direct impact on the application itself. Thus, the working container can be easily supplemented with inspection and forwarding functionality.
[0025] In an advantageous implementation, the forwarding of request messages to the load protection container is performed in a state-oriented manner, particularly through state-oriented packet inspection.
[0026] Typically, request messages are distributed statelessly (also known as stateless) to any of the existing work containers in a pool of work containers. If an overload condition is identified, that is, exceeding a pre-defined load limit, the request message and all other messages used to serve the application are forwarded in a stateful manner, for example, through stateful grouping checks, to an existing load protection container or a load protection container pool containing multiple load protection containers. This is applied either through a load distribution mechanism or through forwarding functionality in a representative unit within or within a work container. This ensures that the modified processing form of the application provided by the load protection container is correctly executed at all steps by the same load protection container.
[0027] In one advantageous implementation, the load limit values have different load type-specific limit values, which depend on the type of utilization currently present at the computing device.
[0028] Therefore, different measures can be used to respond to different types of loads. Different types of overload include reaching the maximum number of working containers, sudden overload due to a large number of request messages per unit time, or too many applications running in parallel. Different types of overload can also be defined by evaluating the error logs of applications running in containers. Load type-specific limits can also be predefined by a pre-defined maximum response time to arriving request messages. Thus, there is flexibility in responding to different types of overload and the associated disruptions to computing devices.
[0029] In one advantageous implementation, request messages are forwarded to different load protection containers based on the type of utilization currently present. These load protection containers provide different modified, load-reducing processing methods for the application.
[0030] Advantageously, load-protection containers can therefore be optimally customized or configured according to the load type. In cases where there are a large number of request messages per unit time (which, for example, indicate automatically generated request messages), checks can be performed, for example, by a pre-challenge response method, such as by sending a CAPTCHA, which typically requires human user input. If the CAPTCHA query is not answered correctly, the request is considered malicious and is not processed further. Alternatively, in cases of overload due to exceeding the maximum number of connections per second, load-protection containers with processing variants that reduce load can be used, such as by discarding dynamically generated web page content that places a high load on the computing device. For example, a response message is sent, which, for example, uses static content to display the wait time. In cases of too many concurrent requests that have not yet concluded, the overload container can operate with a shorter timeout.
[0031] In one advantageous implementation, forwarding is additionally performed based on at least one of the following criteria: the type of the requested application, the identifier of the sender of the request message, or the role of the user requesting the message.
[0032] Therefore, forwarding, especially for load protection containers, can be performed dynamically and according to the stated criteria. Thus, different load protection containers with specific load protection features can be created and used based on the checked criteria. The only disadvantage is the need for further checks to allocate request messages, and therefore the forwarding process takes longer.
[0033] In one advantageous implementation, within the load protection container, a request message is checked relative to the load distribution rule, and at least one modified processing form of the application, pre-given by the load distribution rule, is executed based on the check result.
[0034] This has the following advantages: different modified processing forms of the application can be executed within a single load protection container, and the processing form can be selected by examining the request message relative to the load distribution rules. This also has the following advantages: the general distribution of request messages to specific work containers can be performed without additional examination of the request message itself, and therefore time-efficiently. The examination of request messages in the load protection container is only performed if an overload has been identified. This is only a portion of the request messages received in the computing device.
[0035] In one advantageous implementation, within the load protection container, the attack pattern is queried, particularly at an attack database, relative to the attack pattern analysis request message. Furthermore, through data exchange with IT security service providers, attack patterns can be updated and responses to attacks occurring globally can be rapid (considering the Global Threat Landscape).
[0036] In another advantageous implementation, within the load protection container, request messages are analyzed relative to a probing method determined beforehand through system calibration, in addition to attack patterns. This probing method describes the requester's habitual behavior, such as making significantly fewer requests outside of business hours.
[0037] Therefore, in a load protection container, commonly identified and continuously updated attack signatures, provided via an attack database, can be used to analyze request messages and identify attack patterns. If a corresponding attack pattern is identified, the request message can be marked as malicious and protective measures can be taken, such as not processing the request and / or reporting the request to a higher-level unit.
[0038] All the indicators described for DoS attacks can be used by the container to calculate the DoS risk score (DoS-Risk-Score) of the request. The DoS risk score can be provided to other services and applications that process or transmit the request via an interface.
[0039] In one advantageous implementation, one or more load protection containers are provided, depending on the utilization of the computing device, particularly in addition to or as a replacement for existing working containers.
[0040] By dynamically enabling load-protected containers based on computing device utilization, a larger number of request messages can be processed without simply rejecting or ignoring them, and at least a reduced form of application processing can be provided to the user. Requested applications can be served to the user more frequently, thus improving the quality of service for the user.
[0041] A second aspect of the invention relates to a computing device for providing a computer-implemented application in a container virtualization manner via at least one working container, the computing device comprising: a receiving means configured to receive a request message for invoking the application; a checking unit configured to check the current utilization of the computing device relative to a pre-given load limit; and a forwarding unit configured to forward the request message to a load protection container when the current utilization is higher than the load limit, the load protection container providing at least one modified, particularly load-reducing, processing form of the application relative to the working container, wherein the checking is performed in a load distribution means (23) implemented via software, or the checking is performed in a working container (24).
[0042] The computing device according to the invention provides applications with improved quality of service compared to conventional computing devices using the same resources, because it processes more request messages and discards fewer request messages from authorized users.
[0043] In one advantageous embodiment, the control unit is configured in the load distribution device, and the load distribution device forwards the request message to the working container or the load protection container based on the check result.
[0044] In an advantageous embodiment, the control unit is configured, in particular, in the form of a representative unit within the working container.
[0045] In this configuration, the control unit can be configured within each of the effective work containers. Therefore, the load distribution mechanism can remain constant and thus be maintained in a time-optimized manner. The control unit within each work container can be flexibly adapted to the application.
[0046] A third aspect of the invention relates to a computer program product comprising a computer-readable medium that can be directly loaded into the memory of a digital computer, the computer-readable medium including a program code portion suitable for performing the steps of the method according to any one of claims 1 to 11.
[0047] Unless otherwise stated in the following description, the terms “receive,” “check,” “forward,” etc., preferably refer to actions and / or processes and / or steps (also: communication protocols) that alter and / or generate data and / or transform said data into other data, wherein said data may in particular be presented or exist as a physical variable, for example as an electrical pulse. The expression “computing device” refers to an electronic device with data processing capabilities and may, for example, be one or more servers, particularly those shared by multiple cloud users and referred to as cloud systems, which can process data in a computer-aided manner and include at least one processor for data processing.
[0048] In connection with this invention, a "computer-implemented application" can be understood, for example, as an implementation of an application, wherein, in particular, a processor executes at least one method step of the application. The corresponding "unit" or "device," such as a receiving or controlling unit or a load-distributing device, can be implemented in a hardware manner and / or in a software manner. In the case of implementation in a hardware manner, the corresponding unit can be configured as a device or part of a device, for example, configured as a microprocessor. In the case of implementation in a software manner, the corresponding unit can be configured as part of a computer program product, function, routine, program code, or executable object.
[0049] Computer program products, such as computer program devices, may be provided or supplied, for example, as storage media or as files downloadable from a server on a network. Attached Figure Description
[0050] The method according to the invention and embodiments of the computing device according to the invention are exemplarily presented in the accompanying drawings and explained in more detail by means of the following description.
[0051] Figure 1 A flowchart illustrates a first embodiment of the method according to the present invention;
[0052] Figure 2 A second embodiment of the method according to the invention, which includes an inspection in a load distribution device, is illustrated schematically.
[0053] Figure 3 A third embodiment of the method according to the invention, including inspection in a working container, is illustrated schematically.
[0054] Figure 4 A first embodiment of the computing device according to the present invention is illustrated in block diagram; and
[0055] Figure 5 A second embodiment of the computing device according to the present invention is illustrated in block diagram.
[0056] Corresponding parts are equipped with the same reference numerals in all figures. Detailed Implementation
[0057] Computer-implemented applications are provided by computing devices that have one or more computing units, such as processors or server units. These computing devices operate in a container virtualization manner. In this case, the application is encapsulated in a container and implemented as a closed system, which includes, in addition to the programs used to process the application, operating system resources, runtime management, modules, or software libraries necessary to provide the application.
[0058] Worker containers typically execute multiple instances of an application in a "normal" processing manner. If a new request message can no longer be processed by a single worker container, a new worker container is usually activated and provided to handle these additional request messages. This additional load-based activation of containers is also known as autoscaling. If the maximum number of worker containers is reached, additional request messages are typically rejected and the sender is replied to, for example, with an error message. To reduce this rejection of allowed request messages, methods such as... Figure 1 The methods presented in the document.
[0059] In step S1, a request message REQ is received for invoking or starting a computer-implemented application in the computing device. Then, in method step S2, the current utilization L of the computing device is checked relative to a pre-given load limit value maxL. If, during this check, it is determined that the current utilization L is higher than the load limit value maxL, the request message REQ is forwarded to the load protection container LC, which provides at least one load-reducing processing form of the application relative to the working container WC, see S3. If the utilization L is less than or equal to the load limit value maxL, the request message REQ is forwarded to the working container WC, see step S4, and is provided by the application's normal processing form.
[0060] Load Protection Container (LC) responds to request messages by implementing additional measures at the application layer to prevent multiple request attacks (also known as (D)DoS attacks). Such measures are functions for identifying allowed request messages or rejecting request messages identified as disallowed. These measures, for example, are executed before the actual application execution and, together with the application itself, constitute a modified, load-reducing form of the application's processing. Such measures are, for example, pre-execution of a question-and-answer method (also known as a challenge-and-response method) before the actual execution of the application. In this case, the computing device sends a query to the requesting device or user, which responds to the query, and the computing device examines the query. This could be, for example, an encrypted challenge-and-response method, in which the query is modified by encryption in the device and returned to the computing device for comparison with the expected result. The question-and-answer method can also be application-oriented, causing the application to modify the query in a pre-given manner and return it to the application in the computing device. This could be, for example, solving a mathematical problem using the query as an input parameter. The question-and-answer method can be transparent to the user of the application or may require user input. This is the case, for example, in the case of CAPTCHAs, where the number of specific objects on an image sent to the user is determined by the user's response.
[0061] Furthermore, in modified load-reducing processing forms of the application, for example instead of dynamically generated page content that constitutes a particularly high load on the computing device, only static, pre-defined page content can be transmitted. In another variation, information is used to respond to the request message only if that specific information already exists in the computing device's memory, for example, due to a previous request. As another modified load-reducing processing form, page content with a lower resolution for rendering can be returned based on the request message.
[0062] Another modified form of load-reducing processing provided by the working container for the application is achieved, for example, by at least partially evaluating request messages. In this case, for example, the sender's IP address, the user's role, or priority identifier is determined, and only request messages from authorized senders or roles or priority services pre-given, for example, through a positive list, are further processed. All other request messages are either not processed or rejected. For example, user roles can be pre-given through different priority user categories, such as "preferred user," "advanced user," etc. However, a user's role could also be "administrator," "service provider," etc. Preferred processing of request messages can also be based on geographic region, allowing request messages from spatially locatable attackers to be selectively dropped or not processed.
[0063] In another variation, request messages are analyzed relative to attack patterns within the load protection container, thus identifying manipulated request messages before further processing. In cases where a message is identified as manipulated, a warning signal may be generated and / or the request message may not be processed further. In yet another variation, request messages are analyzed within the load protection container relative to a probing method, i.e., unusual behavior patterns in the case of a request. Therefore, manipulated request messages are identified and classified as manipulated with a high probability before further processing. In cases where a message is classified as manipulated, a warning signal may be generated and / or the request message may not be processed further.
[0064] The load limit value `maxL` can have different load type-specific limits depending on the type of utilization currently present on the computing device. Load type-specific limits can be, for example, the maximum number of worker containers configured for a service, the number of requests per second, the number of concurrent open connection requests or applications running in parallel, or the maximum number of error logs. Error logs are determined by evaluating errors in applications running within worker containers and are stored as error logs within those containers.
[0065] Depending on the type of overload, appropriate measures can be taken to address the situation. For example, if the number of requests per second is too high, a question-and-answer approach is suitable for reducing that number. This can, for example, identify and prevent the mechanical issuance of request messages by so-called bots. If the number of concurrently open request messages exceeds a load-type-specific limit for the application, creating a solution on the computing device side that limits backend requests—that is, utilizing static content rather than dynamic and resource-intensive content to avoid asymmetric resource consumption—and sending it to the sender might be a viable option. This assessment can also be performed using AI-based security algorithms.
[0066] In one variant, the load container (LC) provides all described, modified, load-reducing implementations of the application. However, a load protection container can also be provided, comprising a unique set or subset of the possible, modified, load-reducing processing forms of the application. Accordingly, request messages can be used based on the type of utilization currently present on each specific load protection container, which provides processing forms optimized for that load type.
[0067] Furthermore, forwarding can be performed additionally based on at least one other criterion. For this purpose, the request message is analyzed at least partially during utilization checks or during forwarding. In particular, the description in the header of the request message, which contains information about the sender and the requested application, is evaluated, and forwarding to different load protection containers is performed, for example, based on the requested application or based on the sender's identifier, such as the sender's IP address, or based on the user's role in the request message. Request messages can also be forwarded based on a session identifier (also known as a session cookie), which is also included in the header of the request message.
[0068] One or more load protection containers (LCs) can be provided based on the utilization of the computing device or one or more existing active working containers (WCs). In this case, load protection containers can be provided in addition to existing working containers, or as a replacement for existing working containers.
[0069] Figure 2 One embodiment of the method is illustrated, in which request messages 20, 21, and 22 are inspected by a load distribution device 23 and forwarded to a working container 24 or a load protection container 25 based on the inspection result. In this case, the working container 24 provides the application in an unmodified processing form 28. Multiple working containers 24 in a pool of working containers 26 are provided depending on the number of request messages or the load of the application. The load protection container 25 provides the application in a modified load-reducing processing form 29. In this case, one or more load protection containers 25, 25.1, and 25.2 in a pool of load protection containers 27 can also be provided. In this case, load protection containers 25, 25.1, and 25.2 can exist in different forms. The presented load protection containers 25.1 and 25.2, for example, provide different modified processing forms for the application. Load protection container 25, for example, can include a variety of different modified processing forms. Load protection containers 25, 25.1, and 25.2 can accordingly include different load distribution rules.
[0070] The distribution of request messages is achieved through a load distribution device 23, typically implemented using so-called Kubernetes. In the presented implementation, the load distribution device 23 is aware of the computing device's utilization with respect to the application. The load distribution device 23 performs a utilization check and forwards the request messages based on the check's result. The Kubernetes software must identify overload conditions and redirect request messages to containers with built-in load protection features, i.e., load-reducing processing form 29 of the application's modifications. Load protection containers 25, 25.1, and 25.2 are also Kubernetes-configured to scale according to load. If load protection container 25 is started, for example, worker container 24 is terminated to prevent resource shortages. Alternatively, specific resources can be maintained for load protection container 25.
[0071] Figure 3 One embodiment of the method is shown, in which the checking and forwarding of request messages 20, 21, and 22 are not performed in the load distribution device 33, but in each of the load protection containers 34 of the load protection container pool 36. For this purpose, a representative unit 31 is provided, for example, in each working container 34.
[0072] Instead of having overload conditions centrally identified by the programming software in the load distribution device 33, the representative unit 31 upstream of the unmodified processing form 28 can locally initiate forwarding on the corresponding working container 34 by checking its local utilization. Alternatively, the existing utilization L can be provided to the representative unit 31 by the programming software, i.e., particularly by the load distribution device 33. The provided existing utilization is used to check request messages 20, 21, and 22.
[0073] In order to enable the forwarding of request messages 20, 21, and 22 to the load balancer container, forwarding must be performed through stateful packet inspection. Packets are data packets, such as those defined in the Internet Protocol. Figure 2 The system presents request messages 20 and 21 for executing the application and subsequent connections. These request messages 20 and 21 are forwarded statelessly by the load distribution device 23 to any working container 24. State-oriented packet checking is implemented, such that only the request messages 20 and 21 forwarded to the working container 24 are distinguished from the request message 22 and subsequent messages directed to the load protection containers 25, 25.1, and 25.2. State-oriented packet checking is not required for each working or load protection container 24, 25 within the working container pool 26 or the load protection container pool 27. Therefore, switching between containers within the pool is possible.
[0074] exist Figure 3In this process, the load distribution device 33 distributes request messages 20, 21, and 22 in a stateless manner and therefore arbitrarily to work containers 34 within the work container pool 36. Within the work container pool 36, representative units 31 are installed in each container 34, determining whether request messages 20, 21, and 22 should be forwarded to the unmodified processing form 28 of the application or to the load protection container 25. The appropriate target for forwarding—either the unmodified processing form 28 in the work container 34 or the modified processing form 29 in the load protection container 25—must be communicated to each representative unit 31, whereby the request message should be forwarded to either the unmodified processing form 28 or the modified processing form 29. The forwarding of request message 22 to the load protection container 25 is performed in the representative unit 31 using state-oriented group checking.
[0075] It must be ensured that the load protection container 25 can be permanently maintained or activated by programming software in the representative unit 31 or load distribution device 23.
[0076] Figure 4 A computing device 40 providing applications via container virtualization is now shown. In this case, one or more working containers 44 from a working container pool 46 and one or more load-protected containers 45 from a load-protected container pool 47 access a common operating system 48 provided by the computing device. The computing device 40 further includes a receiving unit 41 and a load-sharing device 43. The load-sharing device 43 includes a control unit 42 configured to perform checks and forwarding according to the method of the invention. The load-sharing device 43 is implemented, in particular, via software. The control unit 42 includes a checking unit and a forwarding unit, which are implemented either in an integrated manner or as two separate parts, as presented. The control unit 42 can be implemented in a software manner, for example, as part of software, or in a hardware manner, for example, on one or more processors.
[0077] Figure 5 Another embodiment of computing device 50 is shown, which implements a computer-implemented application in a container virtualization manner via a working container 54 or a load container 55 from a working container pool 56 or a load-protected container pool 57. The working container pool 56 and the load-protected container pool 57 access a common operating system 58. Computing device 50 further includes a receiving unit 51 and a load-sharing device 53. In this case, the load-sharing device 53 forwards all received request messages from the receiving unit 51 to the working container pool 56. In this case, each request message is forwarded to a representative unit 52 upstream of the working container 54. In the event of overload, the representative unit 52 forwards the request message to the load-protected container 55 in the load-protected container pool 57.
[0078] Therefore, by adding a load protection container, load protection can begin early when the load increases, thus protecting the load before the computing device or working container reaches overload.
[0079] All described and / or depicted features can be advantageously combined with each other within the scope of the invention. The invention is not limited to the described embodiments.
Claims
1. A method for overload protection in a container-virtualized computing device, the computing device providing a computer-implemented application through at least one working container, wherein the container contains all resources required to execute the application and can be transferred and installed as a file, the method comprising the following steps: - Receive a request message for invoking the application. - Check the current utilization of the computing device relative to a pre-defined load limit value, and - If the current utilization is higher than the load limit, the request message is forwarded to a load protection container that provides at least one modified, load-reducing form of the application relative to the working container, wherein the check is performed in a load distribution device implemented via software, or The checks are performed within the working container.
2. The method according to claim 1, wherein the load distribution device forwards the request message to the working container or the load protection container based on the inspection result.
3. The method of claim 1, wherein the forwarding is performed in a working container.
4. The method of claim 3, wherein the checking and forwarding are performed in a representative unit arranged in the working container.
5. The method according to any one of the preceding claims, wherein the forwarding of the request message to the load protection container is performed by means of state-oriented packet inspection.
6. The method according to any one of claims 1 to 4, wherein the load limit values have different limit values, the limit values being specific to the load type and depending on the type of utilization currently present on the computing device.
7. The method according to any one of claims 1 to 4, wherein the request message is forwarded to a different load protection container according to the type of current utilization, the load protection container providing different modified, load-reducing processing forms for the application.
8. The method according to any one of claims 1 to 4, wherein the forwarding is additionally performed according to at least one of the following criteria: - The type of application requested. - The identifier of the sender of the request message, - The role of the user who sent the request message.
9. The method according to any one of claims 1 to 4, wherein in the load protection container, the request message is analyzed relative to unusual behavior patterns determined in advance by calibration of the computing device in the event of a request.
10. The method according to any one of claims 1 to 4, wherein in the load protection container, the request message is analyzed relative to an attack pattern queried at an attack database.
11. The method according to any one of claims 1 to 4, wherein one or more load protection containers are provided, in addition to existing working containers or as a replacement for existing working containers, depending on the utilization rate of the computing device.
12. A computing device for providing a computer-implemented application via at least one working container in a container virtualization manner, wherein the container contains all resources required for executing the application and can be transferred and installed as a file, the computing device having: - A receiving unit configured to receive a request message for invoking the application. - A control unit configured to check the current utilization of the computing device relative to a pre-given load limit, and if the current utilization is higher than the load limit, forward the request message to a load protection container, the load protection container providing at least one load-reducing form of the application relative to the working container, wherein the check is performed in a load distribution device implemented via software, or the check is performed in the working container.
13. The computing device of claim 12, wherein the control unit is configured in the load distribution device, and the load distribution device forwards the request message to the working container or the load protection container based on the check result.
14. The computing device of claim 12, wherein the control unit is configured in the working container.
15. The computing device of claim 14, wherein the control unit is configured in the form of a representative unit.
16. A computer program product comprising a computer-readable medium capable of being directly loaded into the memory of a digital computer, the computer-readable medium including a program code portion adapted to perform the steps of the method according to any one of claims 1 to 11.
Citation Information
Patent Citations
Systems and methods for managing preferred client connectivity to servers via multi-core system
US8935399B2