How GitOps Powers Automated Deployments: Push vs Pull Strategies Explained
GitOps, introduced by WeaveWorks in 2017, treats application configurations as code stored in Git, enabling versioned, automated, and standardized deployments, with two main strategies—Push and Pull—each offering distinct advantages, and Zadig’s implementation showcases practical automation for code, environment, and service changes.
GitOps, a concept proposed by WeaveWorks in 2017, organizes application service configurations, databases, and orchestration settings as code in a Git repository, enabling versioned, automated, and standardized deployment processes.
Two GitOps Deployment Modes
Push-based mode
Pull-based mode
Push mode acts from a god‑view to update environments, while Pull mode leverages permission checks for security and compliance.
Push triggers updates after code changes, which can diverge from manual cluster edits; Pull continuously compares cluster state with the Git repo and triggers updates when mismatches are detected, keeping configurations in sync.
Zadig’s Thoughts on GitOps
Zadig is an open‑source continuous delivery product aimed at empowering engineers as the core engine of enterprise innovation.
By fully embracing GitOps, Zadig combines both Pull and Push approaches to help engineers work efficiently:
Engineers can focus on delivering business value while automated webhooks and full‑pipeline delivery make code changes instantly visible in environments.
Engineers’ mental load for service and environment management is reduced: service configurations are stored as code, automatically synchronized from the Git repo to Zadig, and environment configurations are updated in real time.
GitOps Practice in Zadig
Code Changes
After configuring a workflow and adding a trigger in Zadig, the system creates a webhook in the corresponding Git repository. When the specified event occurs, the workflow is automatically executed, deploying the latest code to the environment.
For different environments, multiple webhook triggers can be configured in the workflow to achieve multi‑environment GitOps.
Environment Configuration Changes
Importing environment configurations (Ingress/ConfigMap/Secret/PVC) from a Git repository with automatic sync enabled.
When the configuration in the Git repository changes, Zadig automatically updates the corresponding environment configuration.
Service Configuration Changes
Importing service configurations from a Git repository to create services.
When the service configuration in the code repository changes, the service auto‑update switch in the service policy synchronizes the changes to Zadig and automatically updates the corresponding services in the environment.
Animated demonstration:
Summary
Webhook‑driven automated continuous deployment simplifies intermediate steps and boosts deployment efficiency; timely synchronization of service configurations ensures orderly scaling; automatic environment updates enhance developer experience. Overall, Zadig’s GitOps practice enables teams to iterate quickly, shorten code‑to‑delivery cycles, and validate value faster.
Ops Development Stories
Maintained by a like‑minded team, covering both operations and development. Topics span Linux ops, DevOps toolchain, Kubernetes containerization, monitoring, log collection, network security, and Python or Go development. Team members: Qiao Ke, wanger, Dong Ge, Su Xin, Hua Zai, Zheng Ge, Teacher Xia.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.