In this article, we explore the challenges faced by the TaskDash DevOps team and how adopting GitOps practices can streamline their processes and enhance security within their infrastructure management. Dasher is a software vendor offering a platform that connects data, applications, and devices across on-premises environments. Recently, their R&D team began investigating cloud migration to leverage container technologies.Documentation Index
Fetch the complete documentation index at: https://notes.kodekloud.com/llms.txt
Use this file to discover all available pages before exploring further.
The DevOps Journey at TaskDash
The TaskDash DevOps team is building their project from the ground up by following industry best practices. Their multi-cloud infrastructure employs Docker for containerization and Kubernetes for orchestrating containerized applications. The first step in their approach is Infrastructure as Code (IaC), which automates the provisioning and management of infrastructure using code instead of manual processes. In addition to IaC, they implement several “X as Code” strategies, including:- Policy as Code
- Configuration as Code
- Network as Code
Manual execution of configuration changes without code reviews or automated tests can lead to discrepancies and potential security vulnerabilities.
The CI/CD Workflow and Challenges
Due to the lack of automation for updating the infrastructure, team members often resort to manually executing commands to apply modifications. This practice makes it difficult to track changes and identify who performed specific modifications. To mitigate these challenges, the team has established a CI/CD pipeline:- The Continuous Integration (CI) pipeline automates building, testing, and containerizing the applications.
- The Continuous Deployment (CD) pipeline deploys these applications to the Kubernetes cluster using a push-based model:
- Exposed credentials outside the cluster, increasing the risk of security breaches.
- A higher likelihood of configuration drift, whereby the deployed state diverges from what is defined in Git.
Manual CLI alterations are generally discouraged due to potential security risks and the possibility of configuration inconsistencies.