In this blog post, we’ll share our story with GitOps and ArgoCD. We use ArgoCD in all our projects to manage how we update our software and systems. We’ll talk about why we picked ArgoCD and how it helps us and our clients. We’ll also share some of the challenges we faced when we started using it and how we solved them. We hope our story will show you how GitOps and ArgoCD can make software development better.
“Tool of Choice” is a series of blogpost that describe battle-tested, enterprise-grade tools and processes that we offer to all our customers – providing installation, configuration, support, and enablement for.
What is GitOps?
GitOps, a term coined by Weaveworks, is a way of implementing Continuous Deployment for cloud-native applications. It leverages Git as a single source of truth for both infrastructure and application code. This approach allows developers to use the same tools for infrastructure management that they use for application development, bringing a level of simplicity and consistency that was previously unattainable. At our company, we’ve adopted GitOps across all our projects, making it our tool of choice for managing deployments and infrastructure. This has not only streamlined our workflows but also improved the reliability, traceability (to comply with ISO and other standards) and speed of our deployments.
Why ArgoCD?
When it comes to managing deployments and infrastructure, ArgoCD, a project under the Cloud Native Computing Foundation (CNCF), has become our go-to tool in every project. But why ArgoCD? The answer lies in its powerful features and alignment with GitOps principles.
ArgoCD is a declarative, GitOps continuous delivery tool for Kubernetes. It follows the “GitOps” principle of using Git as a ‘single source of truth’ for declarative infrastructure and
applications. With ArgoCD, application definitions, configurations, and environments can be specified in a Git repository. This means that you can manage your applications directly from Git, using the same version control tools you use for your codebase.
One of the key reasons we chose ArgoCD is its seamless integration with Kubernetes. It provides a graphical interface that gives us a real-time view of our application topology, allowing us to easily track the health of our applications and their synchronization status with Git.
ArgoCD also supports automated deployment, ensuring that the live application state matches the desired state in Git. This automation reduces human error and increases efficiency in our deployment process and enables self-healing on configuration drifts.
Moreover, ArgoCD’s multi-cluster management capabilities make it an excellent choice for organizations like ours that work with complex, distributed systems. It allows us to manage deployments across multiple clusters, ensuring consistency and reducing overhead.
In conclusion, ArgoCD, with its robust GitOps capabilities, integration with Kubernetes, automated deployment, and multi-cluster management, has proven to be an invaluable tool in our software development process.
Our Journey with ArgoCD
Many years ago, we were looking for the current and upcoming promising GitOps tools. Around 5 years ago when v1.3.5 version was released we opted to try out ArgoCD. It had all our feature requirements, two of them being user-friendly UI and simplicity, not forgetting the size of the community and that it had to be open source.
Since then, we have investigated other options but none of them had that thing that would make us abandon our current choice.
It transformed our ways of working and developing on Kubernetes based platforms, mainly Red Hat OpenShift.
Since we are a service-oriented company, our primary goal is to support our clients’ in achieving their business goals. Risking the loss of configurations and deployment information that were before GitOps managed manually (or with pipelines) had the potential to affect our delivery dates and, in the end, turn into customer dissatisfaction.
In that manner we’ve successfully established our disaster recovery (DR) procedures that brought us complete assurance and confidence in our GitOps platform – that we are backed up with Git and that at any moment we can recover or even relocate our entire cluster to another on-prem or cloud instance.
DR procedures were prerequisites to gain flexibility, visibility, and speed in experimenting with many different cloud-native Kubernetes based platforms, eq. replicating customers environment on our infrastructure down to an exact instance version.
Case Studies: A Success Stories with ArgoCD
Until now, we’ve successfully setup internal developer platforms using ArgoCD as GitOps tool for more than 20 customers, enabling them to have robust and flexible software delivery life cycle.
To all of you out there, thank you for trusting us your most critical part of business.
Conclusion
Our journey with ArgoCD has been transformative. It has not only met our initial requirements but also exceeded our expectations in terms of reliability, user-friendliness, and simplicity. The open-source nature and the supportive community have been added bonuses. Our disaster recovery procedures, backed by Git, have given us the confidence to experiment and innovate without the fear of losing work. This has significantly improved our service delivery, customer satisfaction, and ultimately, our bottom line.
With over 20 successful implementations under our belt, we can confidently say that ArgoCD is our “Tool of Choice” for setting up internal developer platforms.
Tool of Choice: Category Continuous Deployment
We look forward to continuing our journey with ArgoCD and exploring new frontiers in the world of GitOps.