-
Notifications
You must be signed in to change notification settings - Fork 5
ADR14: ArgoCD as Candidate for a Continous Deployment System #1889
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
Open
tarrow
wants to merge
1
commit into
main
Choose a base branch
from
argocdadr
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,61 @@ | ||
| # 14) ArgoCD as Candidate for a Continous Deployment System {#adr_0014} | ||
| Date: 2024-12-05 | ||
|
|
||
| ## Status | ||
| accepted | ||
|
|
||
| ## Context | ||
| Our infrastructure was using a helmfile based system for managing deployments in our local development, staging and production environments. | ||
|
|
||
| We have migrated the Platform UI, Platform API and redis clusters to an argocd based workflow to evaluate it as a future technological choice. We have also deployed our first new service `redis-2`. | ||
|
|
||
| This evaluation was undertaken to address the following key concerns and target these objectives: | ||
| - Need for consistent and reproducible deployment processes | ||
| - A desire to more comprehensively implement GitOps principles | ||
| - Challenges with the helmfile workflow including | ||
| - Uncertainly about the quality of the helmfile software and development direction | ||
| - Issues with each engineer maintaining a suitable deployment envionment on their development laptop | ||
| - A secure deployment system less reliant on many engineers and services with high level access to the cluster | ||
| - A desire for easy observability of if the cluster is in sync with the state defined in git | ||
| - A need for a quicker and lower friction deployment process to minimise context switching of developers | ||
|
|
||
| Currently: | ||
| - Three services have been migrated to argo | ||
| - One new service never deployed using helmfile has been deployed to argo | ||
| - All remaining services are using helmfile | ||
|
|
||
| We have experienced: | ||
| - Deploying new images of existing services has worked smoothly and been relatively transparent to engineers | ||
| - A sustained low cycle time and increased number of deployments for the migrated services | ||
| - Checking the status of deployed services using the argo dashboard is convenient | ||
| - Local development and testing of ArgoCD deployed services is less trivial than with helmfile | ||
| - Releasing and using new helm charts for services we manage has caused engineers higher friction than helmfile | ||
| - Deploying new services required some onboarding even for senior engineers | ||
| - Generation of values files for the migrated redis service was confusing to engineers who didn't build this system | ||
|
Comment on lines
+31
to
+34
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. These should be included in the negative consequences section. |
||
|
|
||
|
|
||
| ## Decision | ||
| We will maintain the current hybrid state for the immediate future. | ||
| Pause further service migration while we iterate on the working mode of the existing ArgoCD deployed services to make it efficient | ||
| We remain open to proposed alternative directions for continuous deployment strategies | ||
|
|
||
| ## Consequences | ||
| ### Positive | ||
| - Better visibility into deployment states | ||
| - Better alignment with GitOps principles | ||
| - Reduced manual actions and their associated variability | ||
|
|
||
| ### Negative | ||
| - Increased complexity while we iterate on an efficient working mode | ||
| - Temporary mainentance of two parallel deployment systems | ||
| - Increased training required for team members | ||
|
|
||
| ## Potential Risks | ||
| - Inconsistency of managing multiple deployment systems for an extended time | ||
| - Learning curve may prove frustrating to the engineering team | ||
| - Potential drift patterns for configuring different environments | ||
|
|
||
| ## Mitigation | ||
| - Continued written documentation efforts | ||
| - Encourage all team-members to ask for help early if they encounter issues | ||
| - All team members to take part in the iterative improvement of the ArgoCD system | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe this was more correlation than causation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We had an increase in UI deployments because we had a bunch of smaller UI tasks.