Microservice Configuration via Distributed Deployment Service
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Configuring microservice-based applications is challenging due to dependencies between microservices, where changes in one microservice's configuration parameters may require corresponding changes in others, leading to inconsistencies and potential application crashes if not managed properly.
Innovation Solution
A distributed configuration deployment service (DCDS) and configuration APIs are used to generate and enforce application configuration parameter values and constraints, ensuring consistency across microservices by synthesizing service command models and checking configuration parameter values against live working data before deployment.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If microservices are individually updated without centralized configuration management, then update flexibility and independence are improved, but configuration consistency and system reliability deteriorate
Solution Approach 1:
A centralized configuration management system acts as an intermediary between microservices and configuration parameters. This mediator collects configuration requests from individual microservices, validates them against dependency constraints, and coordinates updates across the system, thereby maintaining consistency while preserving individual service update capability
Solution Approach 2:
The configuration management system implements feedback mechanisms by monitoring configuration states across all microservices, detecting inconsistencies, and triggering corrective actions. This feedback loop ensures that configuration changes propagate correctly and dependencies are maintained throughout the distributed system
2Ease of operation
If configuration parameters are changed in one microservice, then service functionality is improved, but system stability deteriorates due to potential inconsistencies in dependent microservices
Solution Approach 1:
Before applying configuration changes to microservices, the system performs preliminary validation by checking dependency constraints and predicting the impact of changes on dependent services. This preliminary action prevents unstable configurations from being deployed, maintaining system stability while allowing functional improvements
Solution Approach 2:
The configuration management system applies preliminary anti-action by preemptively preventing configuration changes that would create inconsistencies or violate dependencies. This protective measure blocks potentially harmful changes before they can destabilize the system, while still permitting valid functional improvements
3Reliability
If centralized configuration management is implemented across all microservices, then configuration consistency is improved, but system complexity and deployment time worsen
Solution Approach 1:
The configuration management system is segmented into modular components that handle different aspects of configuration management independently. This segmentation allows the system to manage complexity through modular architecture while maintaining centralized coordination and configuration consistency across distributed microservices
4Reliability
If configuration changes are propagated to all microservices, then system-wide consistency is improved, but deployment time and productivity worsen
Solution Approach 1:
The system applies local quality by propagating configuration changes selectively to only those microservices that are affected by the changes or have dependencies on the modified parameters. This targeted approach maintains system-wide consistency where needed while avoiding unnecessary propagation to unaffected services, thereby reducing deployment time
Data Source
AI summary
Various examples are directed to systems and methods for configuring an application that uses a plurality of microservices. A distributed configuration deploy service (DCDS) may generate a first set of microservice configuration parameter values for a first microservice of the plurality of microservices based at least in part on a first microservice configuration model for the first microservice and at least in part on a second configuration model for a second microservice of the plurality of microservices. A configuration application programming interface (API) may determine that the first set of microservice configuration parameter values do not conflict with first live data at the first microservice. The configuration API may also lock the first microservice; apply the first set of microservice configuration parameter values to the first microservice; and release the locking of the first microservice.


