Let's Deploy with ayedo, Part 2: ArgoCD GitOps, Monitoring, Observability
TL;DR GitOps with ArgoCD anchors the desired state of your applications and infrastructure in Git, …
Diese Serie erklärt systematisch, wie moderne Software compliant entwickelt und betrieben wird – von EU-Regulierungen bis zur technischen Umsetzung.
At its core, GitOps means: Everything that should run in the cluster is described as a declarative state in Git – not just application manifests, but ideally also platform components, policies, and configurations.
Key principles:
Declarative over imperative
You describe what should run (e.g., a web application with defined resources, replicas, ingress), not how exactly it is deployed. This abstraction creates stability and room for automation.
Versioned and traceable
Every state change occurs via commit or merge request. This not only fulfills good engineering practice but directly addresses requirements from Compliance, NIS-2, and DORA: Changes are traceable, auditable, and reproducible.
Clearly defined responsibilities
Changes are made where they originate: the app team changes application Helm charts, the platform team the cluster base. Responsibility shifts from “who executed which kubectl command when” to well-reviewed merge requests.
ArgoCD implements the GitOps concept through continuous reconciliation:
This creates a “controller for your desired state.” This Automated Reconciliation Loop is the foundation for stable multi-environment scenarios and consistent auditability across all stages.
An ArgoCD Application describes:
Typical practice in a multi-environment setup:
my-app-dev, my-app-staging, my-app-prod.ApplicationSets extend this concept by generating entire groups of Applications based on a template. A classic pattern:
Advantage for multi-environment deployments:
Especially in regulated environments, this reduces error susceptibility: Changes to deployment logic or policies are maintained centrally in the template and apply uniformly across all stages.
ArgoCD offers two basic patterns:
Automatic Synchronization (Auto-Sync)
As soon as a new state is present in Git, it is implemented in the cluster. Optionally with:
Manual Synchronization (Manual Sync)
ArgoCD displays deviations but changes nothing until a person actively synchronizes. This allows controlled releases, for example, after additional qualification or business decisions.
ArgoCD evaluates resources not just binary, but with a health status (e.g., Healthy, Degraded, Progressing). This allows:
In the development environment, the goal is to make changes visible quickly:
Activate Auto-Sync
Dev Applications synchronize after every merge into the corresponding branch. This shortens feedback loops and relieves the team from manual deployments.
Looser Policies, but Clear Guardrails
Even in dev, minimum standards should apply: no production secrets, logging active, basic security scans in CI beforehand.
Transparency in the Team
ArgoCD serves as a central dashboard where the team can see which commits have already arrived in the dev cluster and what the health status is.
Staging is typically the last stop before production:
Manual Sync for Controlled Deployments
Changes are automatically detected, but a sync only occurs after explicit approval – ideally by a defined release or on-call team.
Clear Promotion Model
Common approach:
Enhanced Monitoring and Logging Requirements
Here, metrics, traces, and logs should be as close to prod standards as possible to detect risks early – a building block for organizational resilience in the sense of NIS-2.
In production, stability takes precedence over speed:
Manual Syncs, Closely Tied to Change Processes
A productive ArgoCD deployment integrates into established change management processes. Deployment windows, approvals, and possibly a four-eye principle can be combined via merge requests and manual syncs.
Avoid Configuration Drift
Manual sync does not mean “free hand” in the cluster – manual changes should be consistently avoided. ArgoCD serves as the gatekeeper of the productive configuration.
Prefer Roll-Forward, Clearly Regulated Rollback
Even in prod, a failed release should ideally be corrected by a subsequent corrective release. Rollbacks require a clear protocol that all involved are trained on.
The most important principle: Rollbacks happen in Git, not in the cluster.
A typical process:
This keeps the audit trail complete: Even the rollback is a verifiable, documented change – a clear plus in the context of DORA and internal audit requirements.
ArgoCD maintains an internal history of synchronized revisions. This history:
In the worst case – such as a complete cluster loss – the strength of the GitOps approach becomes evident:
The prerequisite is, of course, that all critical components (images in Harbor, secrets in Vault, etc., external dependencies) are also reproducibly available. Combined with solid backups and a clear onboarding process for new clusters, a robust foundation for disaster recovery plans is created.
The revised Network and Information Security Directive NIS-2 came into force on January 16, 2023; EU member states must transpose it into national law by October 17, 2024. The DORA regulation applies to financial companies and will be bindingly applicable in the EU from January 17, 2025.
Both regimes require:
GitOps with ArgoCD supports these requirements by:
The Cyber Resilience Act will likely become applicable with transition periods of several years after its formal adoption. A core point is security throughout the entire lifecycle of digital products.
GitOps contributes by:
Combined with security scans in the CI pipeline and a structured vulnerability management, a supply chain emerges that aligns verifiably with CRA requirements.
TL;DR GitOps with ArgoCD anchors the desired state of your applications and infrastructure in Git, …
TL;DR Delivery Operations describe the journey from code in your version control to running …
TL;DR ArgoCD has established itself as the industry standard for Continuous Delivery in Kubernetes. …