intermediate 2 min answer

A platform adopts a declarative, git-driven deployment model. What does it improve, and what does it not solve?

gitopsdeclarativedriftreconciliationgrabtrade-off
Show the full answer Hide the answer

What it improves

1. The desired state is versioned and reviewable. Every change to what should be running goes through the same review as code, with history and attribution.

2. Drift is detected and reconciled continuously. A controller compares actual against declared and corrects, which means manual changes do not persist silently — the failure where the next unrelated apply quietly reverts an incident fix is eliminated because reconciliation is constant rather than occasional.

3. Rollback is a revert. Restoring a previous state is a git operation, which makes it fast and predictable.

4. Access is reduced. The deployment system applies changes; humans do not need production write access for routine work, which is a meaningful security improvement.

5. Environments are reproducible, since the declared state is the whole definition.

What it does not solve

1. Schema and data migrations, which are not declarative. A database's state cannot be reconciled toward a desired shape without a migration path, so migrations remain an imperative process requiring expand-and-contract discipline.

2. Ordering and dependencies. Declarative reconciliation is eventually consistent; if component A must be ready before B, that ordering must be expressed explicitly or the reconciliation will churn.

3. Progressive delivery. Reconciling to a desired state applies it; canarying, health-gating and automatic rollback are separate mechanisms layered on top.

4. Secrets, which cannot live in the repository. They need a separate mechanism, and the interaction with a declarative model is a common source of complexity.

5. Emergency changes. During an incident, waiting for a commit, a review and a reconciliation cycle may be too slow. A break-glass path must exist as a designed capability — time-limited, loudly logged — with reconciliation of the manual change as a step in closing the incident.

The failure mode to design against

Reconciliation fighting an operator during an incident. An engineer makes an emergency change; the controller reverts it seconds later. The break-glass path must include suspending reconciliation for the affected component, or the tool becomes an obstacle at the worst moment.