Microservice Deployment With Separate Source And Deployment Repositories
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software development processes for microservices face challenges with cyclic dependencies between source and deployment repositories, leading to complex continuous deployment via CI/CD pipelines, requiring extra business logic and manual regression tests, and lack true continuous delivery.
Innovation Solution
A method is implemented to control the execution of separate processes for deployment configuration and application logic changes using distinct repositories, eliminating the need for an intermediate staging branch and manual regression tests, and ensuring continuous deployment by identifying and sequencing changes as independent or dependent types.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If separate source and deployment repositories are used for microservices, then deployment flexibility and independence are improved, but cyclic dependencies between repositories increase complexity
Solution Approach 1:
The patent segments the monolithic repository into two independent repositories: a source repository for application code and a deployment repository for configuration and deployment logic. This segmentation allows independent management of each repository, eliminating cyclic dependencies while maintaining deployment flexibility. The source repository contains only application source code, while the deployment repository contains deployment manifests, Helm charts, and configuration files, allowing them to be developed and updated independently.
Solution Approach 2:
The patent extracts the deployment logic and configuration files from the source repository and places them in a separate deployment repository. This extraction removes the cyclic dependency relationship where source code changes required deployment configuration changes and vice versa. The deployment repository can now be updated independently based on deployment requirements without being tied to source code changes.
2Reliability
If traditional CI/CD pipelines are used with staging branches, then code review and testing are improved, but deployment time and manual intervention requirements increase
Solution Approach 1:
The patent implements preliminary action by executing deployment validation and testing procedures automatically during the deployment process without requiring manual regression tests. The system pre-validates deployment configurations, performs automated testing, and only proceeds with deployment when validation succeeds. This eliminates the need for manual regression testing while maintaining deployment reliability.
Solution Approach 2:
The patent enables continuous deployment by eliminating intermediate staging branches and manual approval steps. The CI/CD pipeline flows directly from source repository commits to production deployment through automated validation and testing. This continuous action eliminates downtime and manual intervention, allowing deployments to proceed continuously as long as automated validation passes.
3Reliability
If manual regression tests and extra business logic are required for deployment, then deployment safety is improved, but deployment process complexity and time consumption increase
Solution Approach 1:
The patent implements self-service by enabling the deployment system to automatically validate configurations, perform testing, and determine deployment readiness without requiring manual regression tests or extra business logic. The system self-validates deployment manifests, self-tests deployment configurations, and self-determines when deployment is safe to proceed. This automated self-service maintains deployment safety while eliminating manual intervention and reducing process complexity.
4Reliability
If intermediate staging branches are used for deployment, then change validation is improved, but deployment speed and continuous delivery capability are reduced
Solution Approach 1:
The patent removes intermediate staging branches and implements a continuous deployment pipeline that flows directly from source repository commits to production. Automated validation and testing occur inline during the deployment process, maintaining change validation quality while eliminating the discontinuities and delays introduced by staging branches. This enables true continuous delivery where validated changes are deployed immediately without waiting for manual staging branch approvals.
Data Source
AI summary
A method in one embodiment comprises implementing a first process for carrying out an application deployment configuration change using a deployment repository, and implementing a second process for carrying out an application logic change using a source repository, the second process being different than the first process. The method further comprises identifying a particular type of change to be made to at least one application, and controlling execution of a particular sequence of one or more instances of at least one of the first process and the second process responsive to identification of the particular type of change to be made to the at least one application. The deployment repository and the source repository are illustratively part of a continuous integration/continuous deployment (CI/CD) system. The CI/CD system controls software code for applications executed by host devices of a host platform coupled to the CI/CD system over at least one network.


