Controlling interaction with scalable applications using metadata-driven shared configuration
Concepts for controlling interaction with scalable applications are presented. One example comprises associating metadata with an application interface specification of an application. Based on the metadata associated with the application interface specification of the application, configuration of shards for managing traffic of the interaction and/or integration with the application interface is controlled. Traffic is then routed to configured shards.
1 . A computer-implemented method for controlling interaction with scalable applications, the computer-implemented method comprising:
associating metadata with an application interface specification of an application, wherein the application interface specification comprises instructions relating to an interaction with an application interface associated with the application;
creating an auto-scaling group shard with an attached load balancer at an application-level;
determining whether a service level objective (SLO) is valid and exceeds a service level threshold;
generating replicas associated with the auto-scaling group shard to serve traffic when the SLO is valid and exceeds the service level threshold;
based on the metadata associated with the application interface specification of the application, controlling a configuration of the auto-scaling group shard for managing the traffic of the interaction with the application interface by monitoring and claiming the replicas; and
routing the traffic to the configured auto-scaling group shard.
2 . The computer-implemented method of claim 1 , further comprising:
registering the metadata with a platform configured to create logical or physical load balancing shards and auto-scaling group shards.
3 . The computer-implemented method of claim 1 , wherein the metadata describes at least one of a service agreement and a service objective for the interaction with the application interface of the application.
4 . The computer-implemented method of claim 1 , wherein the associating metadata with the application interface specification of the application comprises:
creating the metadata;
associating the created metadata with the application interface specification; and
registering the application interface specification to the application.
5 . The computer-implemented method of claim 1 , wherein the routing the traffic to the configured auto-scaling group shard comprises:
analyzing the traffic to identify a target interaction with a target application interface;
identifying the metadata associated with a target application interface specification of the application; and
routing the traffic to the configured auto-scaling group shard for managing the traffic of the target interaction with the application interface, based on the identified metadata associated with the target application interface specification of the application.
6 . The computer-implemented method of claim 1 , wherein the controlling the configuration of the auto-scaling group shard comprises:
monitoring a performance indicator of at least one of: the application interface and the application;
analyzing the performance indicator and the metadata associated with the application interface specification of the application; and
based on a result of the analysis, creating, repurposing, initiating, decommissioning or launching a shard for managing the traffic of the interaction with the application interface.
7 . The computer-implemented method of claim 1 , wherein the traffic comprises a command to be performed by an instance of the application.
8 . The computer-implemented method of claim 1 , wherein the application is located in a scalable cloud environment.
9 . A computer program product for pre controlling interaction with scalable applications, the computer program product comprising:
one or more computer readable storage media; and
program instructions stored on the one or more computer readable storage media, the program instructions comprising:
associating metadata with an application interface specification of an application, wherein the application interface specification comprises instructions relating to an interaction with an application interface associated with the application;
creating an auto-scaling group shard with an attached load balancer at an application-level;
determining whether a service level objective (SLO) is valid and exceeds a service level threshold;
generating replicas associated with the auto-scaling group shard to serve traffic when the SLO is valid and exceeds the service level threshold;
based on the metadata associated with the application interface specification of the application, controlling a configuration of the auto-scaling group shard for managing the traffic of the interaction with the application interface by monitoring and claiming the replicas; and
routing the traffic to the configured auto-scaling group shard.
10 . The computer program product of claim 9 , the program instructions, stored on the one or more computer readable storage media, further comprising:
registering the metadata with a platform configured to create logical or physical load balancing shards and auto-scaling group shards.
11 . The computer program product of claim 9 , wherein the metadata describes at least one of a service agreement and a service objective for the interaction with the application interface of the application.
12 . The computer program product of claim 9 , wherein the program instructions to associate the metadata with the application interface specification to the application comprises:
creating the metadata;
associating the created metadata with the application interface specification; and
registering the application interface specification to the application.
13 . The computer program product of claim 9 , wherein the program instructions to route the traffic to the configured auto-scaling group shard comprises:
analyzing the traffic to identify a target interaction with a target application interface;
identifying the metadata associated with a target application interface specification of the application; and
routing the traffic to the configured auto-scaling group shard for managing the traffic of the target interaction with the application interface, based on the identified metadata associated with the target application interface specification of the application.
14 . The computer program product of claim 9 , wherein program instructions to control the configuration of the auto-scaling group shard comprises:
monitoring a performance indicator of at least one of: the application interface and the application;
analyzing the performance indicator and the metadata associated with the application interface specification of the application; and
based on a result of the analysis, creating, repurpose, initiate, decommission or launch a shard for managing the traffic of the interaction with the application interface.
15 . The computer program product of claim 9 , wherein the traffic comprises a command to be performed by an instance of the application.
16 . The computer program product of claim 9 , wherein the application is located in a scalable cloud environment.
17 . A computer system for pre controlling interaction with scalable applications, comprising:
one or more computer processors;
one or more computer readable storage media; and
program instructions stored on the one or more computer readable storage media for execution by at least one of the one or more computer processors, the program instructions comprising:
associating metadata with an application interface specification of an application, wherein the application interface specification comprises instructions relating to an interaction with an application interface associated with the application;
creating an auto-scaling group shard with an attached load balancer at an application-level;
determining whether a service level objective (SLO) is valid and exceeds a service level threshold;
generating replicas associated with the auto-scaling group shard to serve traffic when the SLO is valid and exceeds the service level threshold;
based on the metadata associated with the application interface specification of the application, controlling a configuration of auto-scaling group shard for managing the traffic of the interaction with the application interface by monitoring and claiming the replicas; and
routing the traffic to the configured auto-scaling group shard.
18 . The computer system of claim 17 , wherein the program instructions, stored on the one or more computer readable storage media, further comprise:
registering the metadata with a platform configured to create logical or physical load balancing shards and auto-scaling group shards.
19 . The computer-implemented method of claim 1 , further comprising:
determining that aggregated service level indicators do not meet a defined service level objective for an Application Programming Interface (API) facet; and
scaling out, by the auto-scaling group shard based on the determination, the replicas.
20 . The computer-implemented method of claim 1 , further comprising:
determining that the service level objective has been sufficiently met, indicated by annotation metadata;
removing, by the auto-scaling group shard based on the determining, replicas from the auto-scaling group shard and marking the removed replicas as available to other shards for a period of time; and
claiming, by one or more other auto-scaling group shards, available replicas to fulfil other service level objectives.