GitOps 101 - Introduction
Before we get into GitOps, we need to explain what DevOps is and why we need DevOps.

What is DevOps?
DevOps is simply the cultural philosophy that automates software development lifecycle processes among IT teams when developing software products. DevOps ensures healthy communication and collaboration among the IT team in an organization. Adopting this cultural philosophy, DevOps does not hesitate to take advantage of 3rd party products (GitLab, GitHub, Jenkins, Terraform, etc.). DevOps approach can be used in on-premises and cloud environments (such as AWS, Azure, and GCP).

So why should we use DevOps?
With the increasing number of products in recent years, the concepts that are priorities in many companies have started to come to the fore as stability, continuity, and speed. With this situation, an ideal environment for DevOps has been created in companies. According to data from Google, 77% of organizations adopt the DevOps approach for their deployment processes or plan to use it soon. DevOps approach appears to be a game-changer for companies at this point.
What is GitOps? What is the difference between DevOps?
After the DevOps approach was adopted so quickly, new concepts began to emerge within DevOps. Like DevSecOps when security is involved, and MLOps when machine learning is involved. One of these concepts is GitOps. GitOps is a DevOps approach used for application development such as version control, collaboration, compliance, and CI/CD tooling, and applies them to infrastructure automation. This approach is based on the idea that all process management can be controlled by Git. This allows for better collaboration and faster coordination between teams and results in fewer errors and problems.

Although GitOps provides the entire workload datum using Git, 3rd party tools are used for deployment processes. Two of the most heard from these 3rd party tools are ArgoCD and FluxCD. Being an application distribution tool based on Git, these applications automatically deploy and control the application resources available in their corresponding Git repositories. In this way, when application developers change their code, these products automatically detect these changes and distribute the updated applications. Applications such as ArgoCD and FluxCD make it easy to deploy Kubernetes-based applications.

After making a brief introduction to GitOps, one of the DevOps approaches, we will continue by creating an end-to-end GitOps process in our next article. Thanks for reading.