Dynamic workloads
This scenario assumes that a workload is represented by an Availability Resource that itself contains a variable number of active Availability Resources as members. The processing capacity of the outer Availability Resource is the aggregate of the active inner Availability Resources, the members. For clarity, the outer Availability Resource is referred to as a redundancy group.
When demand for more processing capacity is required, for example, because at early Saturday evening, when many people get to the ATM to withdraw cash, a consumer can increase the processing capacity by adjusting an availability target accordingly. The provider on the other side will select one or more inactive members and activates them. Similarly, the consumer can also adjust the availability target into the lower direction which causes the provider to select one or more active members and deactivates them.
This scenario actually builds on the scenario Obtain redundancy information for a workload.
As a pre-requisite, the consumer has obtained a list of all Availability Resources from the service provider, so that he understands the workloads that can be automated and which of them provide redundancy because they represent groups containing other Availability Resources as a member. See also scenarios Obtain list of workloads and Obtain redundancy information for a workload
Generic Flow
- The consumer is given the service provider to use.
- The consumer knows that the Redundancy Group provides variable (=zero or more active members) redundancy
- The consumer requests a list of Availability Resources, that are members of this Redundancy Group with their status and their role as seen by the service provider. An overall redundancy status is provided as well.
- The consumer requests from the service provider, that for the given Redundancy Group, the number of active Availability Resources needs to be adjusted. For a negative adjustment, active Availability Resources are turned inactive, otherwise vice versa.
Specific flow using Automation 2.1
- The consumer is given the service provider to use.
- The consumer knows that the Redundancy Group provides variable redundancy.
- The consumer requests a list of Availability Resources for such a Redundancy Group with their status and their role as seen by the service provider. An overall redundancy status is provided as well.
- The consumer requests an Automation Plan for this Redundancy Group (see Note 1).
- The consumer makes an adjustment of the current number of active members and creates an Automation Request for the Automation Plan requested before. The adjusted member value is provided as the Automation Request’s input parameter.
- Once created, the Automation Request is executed asynchronously by the service provider. The service provider has created an Automation Result and returned that to the consumer.
- The consumer periodically polls the Automation Result until the request has been fulfilled.
- The consumer queries the observed (= current) status of the Redundancy Group from the service provider.
- Within the Redundancy Group, the number of active Availability Resources corresponds to the adjusted availability target set by the consumer before. The Redundancy Group’s observed status is available.
Notes:
1. An Automation Plan as opposed to a specific service provided by an Availability Service provider is chosen because a dynamic adjustment means changing Availability Resources’ desired status. And since this can be a long-running process, depending on the complexity of the involved Availability Resources, this process is very similar to just starting or stopping an Availability Resource using an Automation Request.
Variations
- The service provider was not able to reach the new availability target set by the consumer.
- The consumer periodically polls the Automation Result until the request has been fulfilled.
- The consumer queries the observed (= current) status of the Availability Resource from the service provider.
- The status of that Availability Resource is now in a ‘degraded’ status meaning that the availability target has not been achieved.
Example
Special Sale
A company sets up a special sales program for a very popular electronic article. Shortly after the sales program went alive, the orders of this article started to grow. The orders are processed by a transaction monitor that has a variable number of servers doing the actual work. These servers (=Availability Resources) are grouped under an Availability Resource with variable redundancy.
When the consumer is triggered by an alert coming from a monitor that observes the rate of orders and how fast they can be processed, it can request an Automation Plan to specify the new availability target of the Availability Resource representing the transaction monitor. The consumer then creates an Automation Request to execute that Automation Plan. After successful completion of the Automation Request, the number of active servers processing the transaction monitor’s work matches the availability target set by the consumer.