Release Orchestration for Cloud Services via App-Aware Proxy
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current software updating methods in cloud services face challenges such as unsatisfactory service experiences, service degradation, and disruption of in-flight customer activities during releases, especially when using monolithic applications or container orchestration systems that lack built-in traffic directors and validation mechanisms.
Innovation Solution
A release orchestration mechanism and reusable deployment pipeline that validate updates before switching production traffic, allowing for seamless transitions and minimizing downtime by using a container orchestration system to manage and route traffic effectively, including pre-release database preparation and post-release activities.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional software updating methods are used in cloud services, then updates can be deployed, but service degradation and disruption of in-flight customer activities occur during releases
Solution Approach 1:
The system performs preliminary validation of the updated version by routing a portion of production traffic to it before full deployment. This allows testing the update in a controlled manner while maintaining the ability to rollback if issues arise, thus preventing service degradation and protecting in-flight customer activities
Solution Approach 2:
The traffic routing is segmented into multiple paths: validation traffic to the updated version and primary production traffic to the current version. This segmentation allows gradual introduction of updates while isolating potential failures from the main service flow, ensuring continuity of customer activities
2Device complexity
If monolithic applications or container orchestration systems without built-in traffic directors are used, then deployment is simpler, but validation mechanisms are lacking and service experience deteriorates
Solution Approach 1:
The system introduces an intermediary traffic director component that sits between the load balancer and application instances. This intermediary manages traffic routing to validation and production instances separately, providing the needed validation mechanism without requiring complete redesign of the monolithic application structure
Solution Approach 2:
The traffic director component serves multiple functions: it routes validation traffic, routes production traffic, monitors service health, and enables rollback capabilities. This multi-functional approach provides comprehensive validation mechanisms while adding minimal structural complexity to the existing system
3Productivity
If updates are deployed without pre-validation, then deployment speed is faster, but service degradation occurs during releases
Solution Approach 1:
The system performs preliminary validation by routing validation traffic to the updated version before full production deployment. This quick validation process confirms service quality without significantly delaying deployment, as it occurs in parallel with final deployment preparations
Solution Approach 2:
The validation process occurs continuously during the deployment sequence, with traffic being routed to validation instances while deployment preparations are completed. This continuous validation ensures service quality is maintained throughout the deployment process without interrupting the overall deployment flow
Data Source
AI summary
A release orchestration mechanism for cloud services. According to some implementations, while an app aware proxy routes production traffic to a first application (app) version that runs in a plurality of container orchestration system (COS) pods having first app version containers, configuration information is received. When a threshold number of the COS pods having the second app version containers are live, a validation of the second app version is caused. Then a transition to sending production traffic to the second app version containers is performed. After causing the transition, timers are started based on a time period indicated in the configuration information and the first app version containers are instructed to gracefully shut down. Based on expiration of the timers, any of the COS pods having the first app version containers that are not yet shut down are forced to shut down.


