-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create a common strategy for deployments #3
Comments
📂 Proposed Repository StructureProposalGlobally, the following strategy has been proposed for file management: Deployment Options
Architecture
🚀 Proposed CI/CD Github@startuml
title CI/CD Deployment Process
actor Developer
participant "Individual Code Repository" as Repo
participant "DockerHub" as DH
participant "Deployment Repository" as DeployRepo
participant "Jenkins (Blue-Green)" as Jenkins
participant "Kubernetes Cluster" as K8S
== Scenario common: Push to Individual Repo ==
Developer -> Repo : Push Code
Repo -> DH : Build & Push Docker Image
DH -> Developer : Image Published
== Scenario 1: Direct Publication ==
Developer -> DeployRepo : Push Deployment Config
DeployRepo -> Developer : Publication Completed
alt Publication Fails
DeployRepo -> Developer : GitHub Pipeline Fails
end
== Scenario 2: Deployment with Blue-Green (Jenkins) ==
Developer -> DeployRepo : Push Deployment Config
DeployRepo -> Jenkins : Trigger Blue-Green Deployment
Jenkins -> DH : Fetch Docker Image
Jenkins -> K8S : Deploy to Blue Environment
Jenkins -> K8S : Run Health Check
alt Health Check Fails
Jenkins -> Developer : Rollback Deployment
else Health Check Passes
Jenkins -> K8S : Switch Traffic to Blue
Jenkins -> K8S : Remove Green Environment
end
Jenkins -> Developer : Deployment Completed
@enduml 🖼️ Proposed CI/CD Github - IMG |
At the moment, we are managing deployments in separate GitLab repositories per module and environment, which is cumbersome and very hard to maintain.
We need to migrate these to GitHub and define a common structure and/or guidelines to make it easier to understand and as error prone as it can be.
For example, I think that we can do an approach like the one in Verana, where a number of modules are grouped together and different GitHub actions are used to update each. In 2060 I can identify at least three potential repositories:
It would be good to start with UnicID deployment, since it is not already created and it could be a good example to experiment with.
The text was updated successfully, but these errors were encountered: