Bridging ClickOps and GitOps
The contemporary software development landscape is being continuously reshaped by various paradigms, two of which are ClickOps and GitOps. While they may seem polar opposites, a well-calibrated blend of the two can yield fruitful results, as has been demonstrated in various organizations.
Romaric PhilogèneJuly 29, 2023 · 3 min read
ClickOps, typically seen as the more user-friendly approach, employs graphical user interfaces (GUIs) to manage and configure software. It revolves around clicking through menus and filling out forms to set up environments, deploy applications, and manage infrastructure. The method is less code-intensive and therefore more accessible to users who are not necessarily experts in infrastructure provisioning or application deployments.
Contrastingly, GitOps, a subset of the broader DevOps, is an operations model that applies the version control system and pull request mechanisms of Git to infrastructure and application deployments. In GitOps, all changes to systems are made in version-controlled repositories, providing an auditable trail of modifications and mitigating the risk of configuration drift.
From the perspective of seasoned DevOps practitioners, ClickOps has some shortcomings. A major one is the lack of a concrete record of changes. When modifications are made via a GUI, it's hard to maintain a solid audit trail of who did what and when. This lack of transparency can lead to confusion and complications, especially when troubleshooting. Moreover, ClickOps falls short when it comes to facilitating collaboration. While it might be simpler for a single user, the lack of code-based configuration management makes it difficult to share, review, or discuss changes among a team.
Despite its drawbacks, ClickOps has distinct advantages that make it attractive for a wide array of users. Its inherent intuitiveness makes it an approachable route, particularly for software engineers who may not be experienced in infrastructure provisioning or application deployments. ClickOps can act as a stepping stone, easing the path towards understanding more intricate DevOps processes.
Consider the example of a rapidly growing company with a larger ratio of software engineers to DevOps engineers. The high demand for infrastructure setup and application deployment from the burgeoning engineering team often surpasses what the relatively smaller DevOps team can supply.
In this scenario, the company strategically uses ClickOps during the initial stages of the development process. The software engineers, without deep expertise in infrastructure management, use a straightforward, visual interface to provision and configure new projects. This strategy frees the DevOps team from routine setup tasks and enables the software engineers to contribute more effectively to the project setup.
However, as projects move from development to production, the company wisely shifts its focus from ClickOps to GitOps. The configurations initially set up via the GUI are transposed into a code-based format, specifically, a Terraform manifest.
This coded configuration is then integrated into the company's version control system, aligning with the principles of GitOps. It becomes a part of their Continuous Integration (CI) pipeline, transitioning from the simplicity of ClickOps to the auditable, transparent environment of GitOps.
Through this approach, the company manages to maintain the speed and simplicity of ClickOps in the early stages while ensuring the auditability and transparency of GitOps as projects mature. The result is an efficient process where ease-of-use and rigorous change management coexist harmoniously.
The integration of ClickOps and GitOps can greatly enhance both transparency and collaboration while striking a balance between intuitive ease of use and stringent change management. The outlined approach, as demonstrated in the example above, allows for streamlined processes that can significantly boost the productivity of software development teams, even in environments where the DevOps team might be outpaced by the demands of a larger engineering team.
This balanced use of ClickOps and GitOps, harnessing the strengths of each approach, could serve as a valuable model for similar organizations as they navigate the challenges of growing engineering demand in a fast-paced technological landscape.
If you want to bridge the gap between ClickOps and GitOps - Give a try to Qovery - a platform for modern engineering and DevOps teams.