US20230135884A1 - Propagating application properties to multiple instances - Google Patents
Propagating application properties to multiple instances Download PDFInfo
- Publication number
- US20230135884A1 US20230135884A1 US17/517,413 US202117517413A US2023135884A1 US 20230135884 A1 US20230135884 A1 US 20230135884A1 US 202117517413 A US202117517413 A US 202117517413A US 2023135884 A1 US2023135884 A1 US 2023135884A1
- Authority
- US
- United States
- Prior art keywords
- application
- property
- database
- property value
- multiple instances
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000001902 propagating effect Effects 0.000 title claims description 10
- 238000000034 method Methods 0.000 claims abstract description 29
- 230000000644 propagated effect Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 230000000875 corresponding effect Effects 0.000 claims description 4
- 230000015654 memory Effects 0.000 description 7
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 2
- 244000046052 Phaseolus vulgaris Species 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
Definitions
- a distributed cloud environment may include multi-cloud deployment and geographically dispersed computing resources. This distributed cloud environment type is dynamically scalable and offers on-demand access to configurable computing resources.
- FIG. 1 illustrates a distributed cloud environment to dynamically update properties across all application instances according to examples of the present disclosure.
- FIG. 2 is a sequence diagram illustrating propagating of application properties to running instances of the application according to an example of the present disclosure.
- FIG. 3 illustrates a method for updating an application that has multiple instances running in a distributed cloud environment of FIG. 1 according to examples of the present disclosure.
- FIG. 4 A illustrates example instructions stored on an example non-transitory computer-readable storage medium to update an application that has multiple instances running in the distributed cloud environment of FIG. 1 according to examples of the present disclosure.
- FIG. 4 B illustrates an example computing device 410 according to examples of the present disclosure.
- Distributed cloud environment scalability can enable provisioning of multiple instances of an application.
- application properties are pushed to multiple instances, known endpoints are needed to push the application properties to an exposed REST (representational state transfer) service.
- REST representational state transfer
- the present disclosure addresses the foregoing by providing a method, system and computer program product for updating an application that has multiple instances running in a distributed cloud environment.
- the method generates a dynamic property bus interface.
- the method may write an application property value through the dynamic property bus interface to a database (such as CassandraTM) for storage.
- the method then propagates the property value to the multiple instances of the application in the distributed cloud environment.
- property values may be propagated by executing a scheduler on each instance of the application after startup of the instance and by reading the application property value from the database.
- the present disclosure accounts for all provisioned instances to propagate the application properties to all such instances in the distributed cloud environment.
- Application properties can be pushed in real time with dynamic updates, without recycling applications and thus avoiding outages.
- the update process is fast, efficient and requires less developer intervention.
- FIG. 1 illustrates a distributed cloud environment 100 to dynamically update application properties across all running instances of an application according to examples of the present disclosure.
- distributed cloud environment 100 includes three public cloud services 102 , 104 and 106 that are communicably coupled to a private cloud 108 via a gateway 110 .
- distributed cloud environment 100 may include additional or fewer public and private clouds, and the arrangement and components of such a distributed cloud environment may vary.
- private cloud 108 may be a corporate enterprise data network secured by a firewall (not shown). This secure private cloud may then be coupled via gateway 110 to the public cloud services 102 , 104 , 106 .
- Public cloud services 102 , 104 , 106 may be from any one or more public cloud service providers such as Amazon AWS, Microsoft Azure, Oracle Cloud, etc.
- each cloud service is dynamically scalable and may facilitate the execution of multiple instances of any application.
- private cloud 108 is running an application with multiple instances AI 1 through AI J .
- public cloud service 102 has multiple instances AI K through AI N of the same application.
- Public cloud service 106 also has multiple application instances AI P through AI Z .
- the application instances can vary depending upon demand.
- the cloud platform includes an autoscaling feature (not shown) that can increase or decrease capacity as necessitated by demand.
- distributed cloud environment 100 further includes a portal/SMT UI 109 , a database 112 and a dynamic property bus 114 interface.
- Portal/SMT UI may be employed by a system administrator 111 to access and manage the distributed cloud environment 100 .
- system administrator 111 may access and manage the distributed cloud environment 100 .
- management may include use of an SMT (server management tool) to manage applications, monitor server performance, and manually provision and decommission instances.
- SMT server management tool
- database 112 may be any database to store application property values.
- An application property value is a value of an environment-specific variable that can enable, disable or limit a specific functionality such as an arbitrary decision inside the application.
- an application property value may be employed to set a timeout.
- an application property value may be to pass a list of users through the application.
- the database 112 may be implemented in CassandraTM. In another example, the database 112 may be a NoSQL database although other database types may be employed.
- the database 112 may have a distributed architecture that spans multiple clusters. Thus, although not shown, database 112 may be deployed across a large number of nodes spanning private cloud 108 and public cloud services 102 , 104 and 106 . As shown, in one example, database 112 is to interface with the dynamic property bus 114 .
- the dynamic property bus 114 is an interface to which any database, data storage device or other real-time data stream can be connected. In other words, dynamic property bus 114 provides interaction with an arbitrary data store. Methods to read and write from the data store are implemented. An example, implementation is provided in the Appendix below.
- Distributed cloud environment 100 further includes a property register 116 , a dynamic property manager 118 and a property manager API (Application Programming Interface) 120 .
- the property manager API 120 may interface with the dynamic property bus 114 .
- Property manager API 120 may be a module, program or software instructions to receive/respond to calls and facilitate data exchange between the http client (e.g., on portal/SMT UI 109 ) and the dynamic property manager 118 /database 112 .
- the dynamic property manager 118 is a module, software or program for housing for the property register(s) 116 . As implied by its name, the dynamic property manager 118 is to dynamically manage the retrieving and setting of application property values from/to the property register(s) 116 .
- the dynamic property manager 118 may receive instructions from property manager API 120 to invoke the getter (not shown).
- the getter may return an application property value while facilitating the protection of such data.
- the property register(s) 116 may be a computer storage medium, memory and the like for temporary storage of each application property that is propagated.
- the scheduler 122 is a module, program or software instructions to schedule, based on a timer, interaction with database 112 to update application properties.
- system administrator 111 through the portal/SMT UI 109 initiates a post operation with a key/value pair, where the key is the property and the corresponding value is to be injected into an application instance.
- Property manager API 120 via dynamic property manager 118 receives the data and creates an entry in property register(s) 116 .
- the property manager API 120 via the dynamic property bus 114 interface then inserts the property into a table in the database 112 .
- the scheduler 122 periodically fetches and updates properties from the database 112 cache; if the key value is in the database 112 cache, the key value is applied to the applicable application instance.
- each instance of the application is reading from the property cache and using the key to read the appropriate string converters (like parsing String to Double/Int/Boolean) and setters to inject the value into the corresponding beans without restarts.
- FIG. 2 is a sequence diagram 200 for propagating application properties according to an example of the present disclosure.
- the process begins at t 1 wherein administrator 111 can use the portal/SMT UI 109 to initiate a POST operation 202 against a REST service that resides within the distributed cloud environment 100 ( FIG. 1 ).
- this REST payload takes a key/value pair, where the value is the property value to be injected into an instance.
- property manager API 120 is invoked by POST operation 202 .
- the property manager API 120 invokes the getValue method 204 to write to the dynamic property manager 118 .
- the dynamic property manager 118 may be housing for a plurality of property register(s) 116 . As noted above, for each application property that is propagated, a corresponding property register 116 is created.
- dynamic property manager 118 invokes invokeGetter method 206 to retrieve the application value.
- each property register 116 three different items may be set. The first is a string converter that pulls in values as a string from the POST request. In this manner, the values can be turned into a double float or other specific enumeration for conversion.
- the second of the three items may be a setter to set the application value. Specifically, a method that can inject the property value into the location of the application is registered. In this manner, setting the value is decoupled from the bean, or class is calling the method. The method itself is simply registered. The third item to be registered is a getter to retrieve the application value as noted above.
- the property value is returned to the dynamic property manager 118 and sent to property manager API 120 at t 5 .
- t 2 through t 5 is all about fetching the current value, validate existence and that this current value is being propagated out to all the instances. If there is no currents value, attempts to send to all instances are discontinued.
- property manager API 120 invokes the writeToBus method 208 to write to the dynamic property bus 114 , which in turn at t 7 , invokes the database layer to insert the property value into the table at DB 112 .
- scheduler 122 invokes a cron action and interfaces with dynamic property bus 114 to fetch and update properties from the database 112 cache.
- a cron action is a periodic event, here, to fetch and update properties at designated periodic intervals that are configurable. Note that scheduler 122 is executed for all instances that are launched and provisioned. In this manner, irrespective of autoscaling, the application values are propagated to all instances.
- dynamic property bus 114 reads the bus (DB 112 ) to fetch any properties from the table and to determine if any updates to the table can be made. Specifically, at t 9 the DynamicPropertyBus method to readFromBus (appId) is invoked to read a list of properties from the DB 112 (t 10 ) pulling the set into the application. At t 11 , dynamic property bus 114 returns the set of properties to scheduler 122 , which then invokes the DynamicPropertyManager's updateProperties( )method (of dynamic property manager 118 ) with the list provided from the dynamic property bus 114 . At t 13 , dynamic property manager 118 iterates over that list and for each item in the list converts the value from string to the desired type, and then applies the setter to the value to inject it into place.
- the present disclosure can propagate the application properties to all application instances in real time with dynamic updates and without outages.
- the application propagation operation is seamless, efficient and requires less developer intervention.
- FIG. 3 illustrates a method 300 for updating an application that has multiple instances AI 1 . . . AI J , AI K . . . AI N , AI O . . . AI R , and AI P . . . AI Z ( FIG. 1 ) running in a distributed cloud environment 100 ( FIG. 1 ) according to examples of the present disclosure.
- method 300 includes generating a dynamic property bus 114 ( FIG. 1 ) interface.
- method 300 includes writing an application property value through the dynamic property bus 114 interface to database 112 ( FIG. 1 ) for storage.
- method 300 propagates the property value to the multiple instances AI 1 . . . AI J , AI K . . . AI N , AI O . . . AI R , and AI P . . . AI Z of the application in the distributed cloud environment 100 .
- propagating the property value to the multiple instances (AI 1 . . . AI J , AI K . . . AI N , AI O . . . AI R , and AI P . . . AI Z ) of the application in the distributed cloud environment may be effectuated by via scheduler 122 .
- Scheduler 122 may be executed on each instance (AI 1 . . . AI J , AI K . . . AI N , AI O . . . AI R , and AI P . . . AI Z ) of the application after startup of the instance and reading the application property value from the database 112 .
- FIG. 4 A illustrates example instructions stored on an example non-transitory computer-readable storage medium 400 to update an application that has multiple instances (AI 1 . . . AI J , AI K . . . AI N , AI O . . . AI R , and AI P . . . AI Z ) ( FIG. 1 ) running in a distributed cloud environment 100 ( FIG. 1 ) according to examples of the present disclosure.
- AI 1 . . . AI J AI K . . . AI N , AI O . . . AI R , and AI P . . . AI Z
- the non-transitory computer-readable storage medium 400 includes instruction 402 that may cause a processor 412 ( FIG. 4 B ) to perform the operation of generating a dynamic property bus 114 ( FIG. 1 ) interface.
- Instruction 404 may cause processor 412 to perform the operation of writing an application property value through the dynamic property bus 114 interface to database 112 ( FIG. 1 ) for storage.
- Instruction 406 may cause processor 412 to perform the operation of propagating the property value to the multiple instances AI 1 . . . AI J , AI K . . . AI N , AI O . . . AI R , and AI P . . . AI Z of the application in the distributed cloud environment 100 .
- propagating the property value to the multiple instances AI 1 . . . AI J , AI K . . . AI N , AI O . . . AI R , and AI P . . . AI Z of the application in the distributed cloud environment 100 may be effectuated by causing processor 412 to execute scheduler 122 on each instance AI 1 . . . AI J , AI K . . . AI N , AI O . . . AI R , and AI P . . . AI Z of the application after startup of the instance and by reading the application property value from the database 112 .
- the non-transitory computer-readable storage medium 400 may be any electronic, magnetic, optical, or other physical storage device that stores executable instructions.
- the non-transitory computer-readable storage medium 400 may be random access memory (RAM), an electrically-erasable programmable read-only memory (EEPROM), a storage drive, an optical disc, or the like.
- RAM random access memory
- EEPROM electrically-erasable programmable read-only memory
- the non-transitory computer-readable storage medium 400 can be encoded to store executable instructions that cause a processor to perform operations according to examples of the disclosure.
- the present disclosure may employ a software stack to enlist the underlying tools, frameworks, and libraries used to build and run example applications of the present disclosure.
- a software stack may include PHP, React, Cassandra, Hadoop, Swift, etc.
- the software stack may include both frontend and backend technologies including programming languages, web frameworks servers, and operating systems.
- the frontend may include JavaScript, HTML, CSS, and UI frameworks and libraries.
- a MEAN (MongoDB, Express.js, Angular JS, and Node.js) stack may be employed.
- a LAMP Linux (Linux, Apache, MySQL, and PHP) stack may be utilized.
- routines of particular examples including Java, Python, JavaScript, C, C++, assembly language, etc.
- Different programming techniques can be employed such as procedural or object oriented.
- the routines may execute on specialized processors.
- the specialized processor may include memory to store a set of instructions.
- the instructions may be either permanently or temporarily stored in the memory or memories of the processing machine.
- the processor executes the instructions that are stored in the memory or memories in order to process data.
- the set of instructions may include various instructions that perform a particular task or tasks, such as those tasks described above. Such a set of instructions for performing a particular task may be characterized as a software program.
- DynamicPropertyManager public void updateProperties(List ⁇ DynamicPropertyCacheModel> model); public String getPropertiesValue(String propertyKey); Collection ⁇ String> getKeys( ); Collection ⁇ Property> getProperties( ); ⁇
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
Description
- A distributed cloud environment may include multi-cloud deployment and geographically dispersed computing resources. This distributed cloud environment type is dynamically scalable and offers on-demand access to configurable computing resources.
- The drawings illustrate only particular examples of the disclosure and therefore are not to be considered to be limiting of their scope. The principles here are described and explained with additional specificity and detail through the use of the accompanying drawings.
-
FIG. 1 illustrates a distributed cloud environment to dynamically update properties across all application instances according to examples of the present disclosure. -
FIG. 2 is a sequence diagram illustrating propagating of application properties to running instances of the application according to an example of the present disclosure. -
FIG. 3 illustrates a method for updating an application that has multiple instances running in a distributed cloud environment ofFIG. 1 according to examples of the present disclosure. -
FIG. 4A illustrates example instructions stored on an example non-transitory computer-readable storage medium to update an application that has multiple instances running in the distributed cloud environment ofFIG. 1 according to examples of the present disclosure. -
FIG. 4B illustrates anexample computing device 410 according to examples of the present disclosure. - Distributed cloud environment scalability can enable provisioning of multiple instances of an application. When application properties are pushed to multiple instances, known endpoints are needed to push the application properties to an exposed REST (representational state transfer) service.
- However, with autoscaling (varying application instances based on demand), if a pool endpoint is hit, all instances in the pool are not being reached. The number of instances at any given moment is also unknown, and as such, it is difficult to propagate application properties to an unknown number of instances.
- The present disclosure addresses the foregoing by providing a method, system and computer program product for updating an application that has multiple instances running in a distributed cloud environment. For some examples, the method generates a dynamic property bus interface. The method may write an application property value through the dynamic property bus interface to a database (such as Cassandra™) for storage.
- The method then propagates the property value to the multiple instances of the application in the distributed cloud environment. In one example, property values may be propagated by executing a scheduler on each instance of the application after startup of the instance and by reading the application property value from the database.
- In this manner, when a REST service is used to push application properties, and the number of instances is unknown due to autoscaling, the present disclosure accounts for all provisioned instances to propagate the application properties to all such instances in the distributed cloud environment. Application properties can be pushed in real time with dynamic updates, without recycling applications and thus avoiding outages. The update process is fast, efficient and requires less developer intervention.
-
FIG. 1 illustrates adistributed cloud environment 100 to dynamically update application properties across all running instances of an application according to examples of the present disclosure. - In the example of
FIG. 1 ,distributed cloud environment 100 includes threepublic cloud services private cloud 108 via agateway 110. Although not shown,distributed cloud environment 100 may include additional or fewer public and private clouds, and the arrangement and components of such a distributed cloud environment may vary. - In
FIG. 1 ,private cloud 108 may be a corporate enterprise data network secured by a firewall (not shown). This secure private cloud may then be coupled viagateway 110 to thepublic cloud services Public cloud services - Irrespective of the cloud service type, each cloud service is dynamically scalable and may facilitate the execution of multiple instances of any application. Here,
private cloud 108 is running an application with multiple instances AI1 through AIJ. Similarly,public cloud service 102 has multiple instances AIK through AIN of the same application. -
Public cloud service 106 also has multiple application instances AIP through AIZ. The application instances can vary depending upon demand. In particular, the cloud platform includes an autoscaling feature (not shown) that can increase or decrease capacity as necessitated by demand. - When demand increases, additional instances are automatically launched and provisioned. When demand reduces, instances are automatically deregistered and decommissioned commensurate with the reduced demand.
- However, as previously noted, with autoscaling to increase/decrease the number of instances, it can be difficult to track the number of application instances on the platform. Consequently, application properties cannot be easily propagated to all running instances of the application. The present disclosure addresses the foregoing by providing systems, methods and computer products for updating an application that has multiple instances running in a distributed cloud environment as further described below.
- In
FIG. 1 ,distributed cloud environment 100 further includes a portal/SMT UI 109, adatabase 112 and adynamic property bus 114 interface. Portal/SMT UI may be employed by asystem administrator 111 to access and manage thedistributed cloud environment 100. For example, such management may include use of an SMT (server management tool) to manage applications, monitor server performance, and manually provision and decommission instances. - In
FIG. 1 ,database 112 may be any database to store application property values. An application property value is a value of an environment-specific variable that can enable, disable or limit a specific functionality such as an arbitrary decision inside the application. As an example, an application property value may be employed to set a timeout. As another example, an application property value may be to pass a list of users through the application. - The
database 112 may be implemented in Cassandra™. In another example, thedatabase 112 may be a NoSQL database although other database types may be employed. - The
database 112 may have a distributed architecture that spans multiple clusters. Thus, although not shown,database 112 may be deployed across a large number of nodes spanningprivate cloud 108 andpublic cloud services database 112 is to interface with thedynamic property bus 114. Thedynamic property bus 114 is an interface to which any database, data storage device or other real-time data stream can be connected. In other words,dynamic property bus 114 provides interaction with an arbitrary data store. Methods to read and write from the data store are implemented. An example, implementation is provided in the Appendix below. - Distributed
cloud environment 100 further includes aproperty register 116, adynamic property manager 118 and a property manager API (Application Programming Interface) 120. As shown, theproperty manager API 120 may interface with thedynamic property bus 114.Property manager API 120 may be a module, program or software instructions to receive/respond to calls and facilitate data exchange between the http client (e.g., on portal/SMT UI 109) and thedynamic property manager 118/database 112. - Here, the
dynamic property manager 118 is a module, software or program for housing for the property register(s) 116. As implied by its name, thedynamic property manager 118 is to dynamically manage the retrieving and setting of application property values from/to the property register(s) 116. - In one example, the
dynamic property manager 118 may receive instructions fromproperty manager API 120 to invoke the getter (not shown). Here, the getter may return an application property value while facilitating the protection of such data. - The property register(s) 116 may be a computer storage medium, memory and the like for temporary storage of each application property that is propagated. As implied by its name, the
scheduler 122 is a module, program or software instructions to schedule, based on a timer, interaction withdatabase 112 to update application properties. - In operation, briefly,
system administrator 111 through the portal/SMT UI 109 initiates a post operation with a key/value pair, where the key is the property and the corresponding value is to be injected into an application instance.Property manager API 120 viadynamic property manager 118 receives the data and creates an entry in property register(s) 116. - The
property manager API 120 via thedynamic property bus 114 interface then inserts the property into a table in thedatabase 112. Thescheduler 122 periodically fetches and updates properties from thedatabase 112 cache; if the key value is in thedatabase 112 cache, the key value is applied to the applicable application instance. - In short, based on the
scheduler 122 timing, each instance of the application is reading from the property cache and using the key to read the appropriate string converters (like parsing String to Double/Int/Boolean) and setters to inject the value into the corresponding beans without restarts. -
FIG. 2 is a sequence diagram 200 for propagating application properties according to an example of the present disclosure. - In
FIG. 2 , the process begins at t1 whereinadministrator 111 can use the portal/SMT UI 109 to initiate aPOST operation 202 against a REST service that resides within the distributed cloud environment 100 (FIG. 1 ). As noted, this REST payload takes a key/value pair, where the value is the property value to be injected into an instance. - At t2,
property manager API 120 is invoked byPOST operation 202. In turn, theproperty manager API 120 invokes thegetValue method 204 to write to thedynamic property manager 118. In one example, thedynamic property manager 118 may be housing for a plurality of property register(s) 116. As noted above, for each application property that is propagated, a correspondingproperty register 116 is created. - Thus, at t3,
dynamic property manager 118 invokesinvokeGetter method 206 to retrieve the application value. For some examples, in eachproperty register 116, three different items may be set. The first is a string converter that pulls in values as a string from the POST request. In this manner, the values can be turned into a double float or other specific enumeration for conversion. - The second of the three items may be a setter to set the application value. Specifically, a method that can inject the property value into the location of the application is registered. In this manner, setting the value is decoupled from the bean, or class is calling the method. The method itself is simply registered. The third item to be registered is a getter to retrieve the application value as noted above.
- At t4, the property value is returned to the
dynamic property manager 118 and sent toproperty manager API 120 at t5. Generally, t2 through t5 is all about fetching the current value, validate existence and that this current value is being propagated out to all the instances. If there is no currents value, attempts to send to all instances are discontinued. - At t6,
property manager API 120 invokes thewriteToBus method 208 to write to thedynamic property bus 114, which in turn at t7, invokes the database layer to insert the property value into the table atDB 112. - At t8, the scheduled task fetch and update properties is initiated. Specifically,
scheduler 122 invokes a cron action and interfaces withdynamic property bus 114 to fetch and update properties from thedatabase 112 cache. A cron action is a periodic event, here, to fetch and update properties at designated periodic intervals that are configurable. Note thatscheduler 122 is executed for all instances that are launched and provisioned. In this manner, irrespective of autoscaling, the application values are propagated to all instances. - At t9
dynamic property bus 114 reads the bus (DB 112) to fetch any properties from the table and to determine if any updates to the table can be made. Specifically, at t9 the DynamicPropertyBus method to readFromBus (appId) is invoked to read a list of properties from the DB 112 (t10) pulling the set into the application. At t11,dynamic property bus 114 returns the set of properties toscheduler 122, which then invokes the DynamicPropertyManager's updateProperties( )method (of dynamic property manager 118) with the list provided from thedynamic property bus 114. At t13,dynamic property manager 118 iterates over that list and for each item in the list converts the value from string to the desired type, and then applies the setter to the value to inject it into place. - In this manner, notwithstanding autoscaling, the present disclosure can propagate the application properties to all application instances in real time with dynamic updates and without outages. The application propagation operation is seamless, efficient and requires less developer intervention.
-
FIG. 3 illustrates amethod 300 for updating an application that has multiple instances AI1 . . . AIJ, AIK . . . AIN, AIO . . . AIR, and AIP . . . AIZ (FIG. 1 ) running in a distributed cloud environment 100 (FIG. 1 ) according to examples of the present disclosure. - In
FIG. 3 , atblock 302,method 300 includes generating a dynamic property bus 114 (FIG. 1 ) interface. Atblock 304,method 300 includes writing an application property value through thedynamic property bus 114 interface to database 112 (FIG. 1 ) for storage. Atblock 306,method 300 propagates the property value to the multiple instances AI1 . . . AIJ, AIK . . . AIN, AIO . . . AIR, and AIP . . . AIZ of the application in the distributedcloud environment 100. - For some examples, propagating the property value to the multiple instances (AI1 . . . AIJ, AIK . . . AIN, AIO . . . AIR, and AIP . . . AIZ) of the application in the distributed cloud environment may be effectuated by via
scheduler 122.Scheduler 122 may be executed on each instance (AI1 . . . AIJ, AIK . . . AIN, AIO . . . AIR, and AIP . . . AIZ) of the application after startup of the instance and reading the application property value from thedatabase 112. -
FIG. 4A illustrates example instructions stored on an example non-transitory computer-readable storage medium 400 to update an application that has multiple instances (AI1 . . . AIJ, AIK . . . AIN, AIO . . . AIR, and AIP . . . AIZ) (FIG. 1 ) running in a distributed cloud environment 100 (FIG. 1 ) according to examples of the present disclosure. - As shown in
FIG. 4A , the non-transitory computer-readable storage medium 400 includesinstruction 402 that may cause a processor 412 (FIG. 4B ) to perform the operation of generating a dynamic property bus 114 (FIG. 1 ) interface.Instruction 404 may causeprocessor 412 to perform the operation of writing an application property value through thedynamic property bus 114 interface to database 112 (FIG. 1 ) for storage. -
Instruction 406 may causeprocessor 412 to perform the operation of propagating the property value to the multiple instances AI1 . . . AIJ, AIK . . . AIN, AIO . . . AIR, and AIP . . . AIZ of the application in the distributedcloud environment 100. - For some examples, propagating the property value to the multiple instances AI1 . . . AIJ, AIK . . . AIN, AIO . . . AIR, and AIP . . . AIZ of the application in the distributed
cloud environment 100 may be effectuated by causingprocessor 412 to executescheduler 122 on each instance AI1 . . . AIJ, AIK . . . AIN, AIO . . . AIR, and AIP . . . AIZ of the application after startup of the instance and by reading the application property value from thedatabase 112. - The non-transitory computer-
readable storage medium 400 may be any electronic, magnetic, optical, or other physical storage device that stores executable instructions. For example, the non-transitory computer-readable storage medium 400 may be random access memory (RAM), an electrically-erasable programmable read-only memory (EEPROM), a storage drive, an optical disc, or the like. The non-transitory computer-readable storage medium 400 can be encoded to store executable instructions that cause a processor to perform operations according to examples of the disclosure. - The present disclosure may employ a software stack to enlist the underlying tools, frameworks, and libraries used to build and run example applications of the present disclosure. Such a software stack may include PHP, React, Cassandra, Hadoop, Swift, etc. The software stack may include both frontend and backend technologies including programming languages, web frameworks servers, and operating systems. The frontend may include JavaScript, HTML, CSS, and UI frameworks and libraries. In one example, a MEAN (MongoDB, Express.js, Angular JS, and Node.js) stack may be employed. In another example, a LAMP (Linux, Apache, MySQL, and PHP) stack may be utilized.
- Any suitable programming language can be used to implement the routines of particular examples including Java, Python, JavaScript, C, C++, assembly language, etc. Different programming techniques can be employed such as procedural or object oriented. The routines may execute on specialized processors.
- The specialized processor may include memory to store a set of instructions. The instructions may be either permanently or temporarily stored in the memory or memories of the processing machine. The processor executes the instructions that are stored in the memory or memories in order to process data. The set of instructions may include various instructions that perform a particular task or tasks, such as those tasks described above. Such a set of instructions for performing a particular task may be characterized as a software program.
- As used in the description herein and throughout the claims that follow, “a”, “an”, and “the” include plural references unless the context clearly dictates otherwise. Also, as used in the description herein and throughout the claims that follow, the meaning of “in” includes “in” and “on” unless the context clearly dictates otherwise. While the above is a complete description of specific examples of the disclosure, additional examples are also possible. Thus, the above description should not be taken as limiting the scope of the disclosure which is defined by the appended claims along with their full scope of equivalents.
-
-
public class DatabasePropertyBus implements DynamicPropertyBus{ private final DynamicPropCacheRepo; public DatabasePropertyBus(DynamicPropCacheRepo dynamicPropCacheRepo){ this.dynamicPropCacheRepo=dynamicPropCacheRepo; } @Override public void writeToBus(DynamicPropertyCacheModel input){ dynamicPropCacheRepo.insertProperty(input); } @Override public List<DynamicPropertyCacheModel> readFromBus(String appId) { DynamicPropertyCacheModel readRequest = new DynamicPropertyCacheModel( ); readRequest.setAppId(appId); return dynamicPropCacheRepo.readProperty(readRequest); } } -
-
Interface for the manager... public interface DynamicPropertyManager { public void updateProperties(List<DynamicPropertyCacheModel> model); public String getPropertiesValue(String propertyKey); Collection<String> getKeys( ); Collection<Property> getProperties( ); }
Claims (13)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/517,413 US11886861B2 (en) | 2021-11-02 | 2021-11-02 | Propagating application properties to multiple instances |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/517,413 US11886861B2 (en) | 2021-11-02 | 2021-11-02 | Propagating application properties to multiple instances |
Publications (2)
Publication Number | Publication Date |
---|---|
US20230135884A1 true US20230135884A1 (en) | 2023-05-04 |
US11886861B2 US11886861B2 (en) | 2024-01-30 |
Family
ID=86146830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/517,413 Active 2042-09-02 US11886861B2 (en) | 2021-11-02 | 2021-11-02 | Propagating application properties to multiple instances |
Country Status (1)
Country | Link |
---|---|
US (1) | US11886861B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11836481B1 (en) * | 2022-06-03 | 2023-12-05 | Dell Products L.P. | Method and system for executing an application upgrade based on real-time monitoring |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140075427A1 (en) * | 2012-09-07 | 2014-03-13 | Oracle International Corporation | System and method for patching java cloud services for use with a cloud computing environment |
US20140337064A1 (en) * | 2013-05-08 | 2014-11-13 | Duetto Research, Inc. | Nosql online analytical processing architecture |
US20170244598A1 (en) * | 2016-02-23 | 2017-08-24 | Salesforce.Com, Inc. | System and method for providing configuration settings to services in a cloud infrastructure |
US20190036766A1 (en) * | 2017-07-31 | 2019-01-31 | Vmware, Inc. | Methods and systems that synchronize configuration of a clustered application |
US10521196B1 (en) * | 2018-10-04 | 2019-12-31 | Sap Se | Distributed ledger-based rapid application development |
US20210026613A1 (en) * | 2018-10-26 | 2021-01-28 | Salesforce.Com, Inc. | Data model api for live applications in a cloud collaboration platform |
US20220075546A1 (en) * | 2020-09-04 | 2022-03-10 | Pure Storage, Inc. | Intelligent application placement in a hybrid infrastructure |
-
2021
- 2021-11-02 US US17/517,413 patent/US11886861B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140075427A1 (en) * | 2012-09-07 | 2014-03-13 | Oracle International Corporation | System and method for patching java cloud services for use with a cloud computing environment |
US20140337064A1 (en) * | 2013-05-08 | 2014-11-13 | Duetto Research, Inc. | Nosql online analytical processing architecture |
US20170244598A1 (en) * | 2016-02-23 | 2017-08-24 | Salesforce.Com, Inc. | System and method for providing configuration settings to services in a cloud infrastructure |
US20190036766A1 (en) * | 2017-07-31 | 2019-01-31 | Vmware, Inc. | Methods and systems that synchronize configuration of a clustered application |
US10521196B1 (en) * | 2018-10-04 | 2019-12-31 | Sap Se | Distributed ledger-based rapid application development |
US20210026613A1 (en) * | 2018-10-26 | 2021-01-28 | Salesforce.Com, Inc. | Data model api for live applications in a cloud collaboration platform |
US20220075546A1 (en) * | 2020-09-04 | 2022-03-10 | Pure Storage, Inc. | Intelligent application placement in a hybrid infrastructure |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11836481B1 (en) * | 2022-06-03 | 2023-12-05 | Dell Products L.P. | Method and system for executing an application upgrade based on real-time monitoring |
US20230393834A1 (en) * | 2022-06-03 | 2023-12-07 | Dell Products L.P. | Method and system for executing an application upgrade based on real-time monitoring |
Also Published As
Publication number | Publication date |
---|---|
US11886861B2 (en) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11941425B2 (en) | Systems and methods for tuning containers in a high availability environment | |
US20190377604A1 (en) | Scalable function as a service platform | |
US11656852B2 (en) | System and method for autowiring of a microservice architecture | |
CN109032706B (en) | Intelligent contract execution method, device, equipment and storage medium | |
US9880826B2 (en) | Installing of application resources in a multi-tenant platform-as-a-service (PaS) system | |
US8862933B2 (en) | Apparatus, systems and methods for deployment and management of distributed computing systems and applications | |
US10310903B2 (en) | Resilient scheduling of broker jobs for asynchronous tasks in a multi-tenant platform-as-a-service (PaaS) system | |
US9904585B1 (en) | Error handling in executing workflow state machines | |
US9245111B2 (en) | Owner command execution in a multi-tenant cloud hosting environment | |
US9766927B1 (en) | Data flow management in processing workflows | |
US10291706B1 (en) | Container image distribution acceleration | |
US20130047165A1 (en) | Context-Aware Request Dispatching in Clustered Environments | |
US11423343B2 (en) | Dynamic construction of cloud services | |
US10103959B2 (en) | Scalable software monitoring infrastructure, using parallel task queuing, to operate in elastic cloud environments | |
US10037196B2 (en) | Source to image framework for a platform-as-a-service system | |
US20160092208A1 (en) | Managing access to resource versions in shared computing environments | |
US10942762B2 (en) | Launch web browser applications in microservice-based containers | |
US9141363B2 (en) | Application construction for execution on diverse computing infrastructures | |
US20160094409A1 (en) | Composite service pre-provisioning | |
US20180314548A1 (en) | Work item management in content management systems | |
US11886861B2 (en) | Propagating application properties to multiple instances | |
US10379916B2 (en) | Integrating transaction processing system interfaces with event-driven polyglot runtime modules | |
US9893936B2 (en) | Dynamic management of restful endpoints | |
Ivanović et al. | A scalable distributed architecture for client and server-side software agents | |
US20200349061A1 (en) | Detecting and handling discrepancies between external circuit breakers and internal circuit breakers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:EVERS, MAXWELL;MESHRAM, AMIT;RAVI, PRAKASH;AND OTHERS;SIGNING DATES FROM 20211117 TO 20211208;REEL/FRAME:058401/0151 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |