Tech Insights (Redirect – Do NOT remove)
November 29, 2023How Terraform Empowers Infrastructure as Code: Exploring Pre-Commit Hooks and Workflow Efficiency
January 8, 2024Two primary models for infrastructure state management, push and pull, are introduced. The push model involves the cloud team triggering the CI/CD pipeline, while the pull model has the IaC system monitoring the Git repository for changes, implementing them automatically. The Cloud Native Cloud Foundation (CNCF) ecosystem provides tools supporting the pull model.
Kubernetes, at the core of the CNCF landscape, is positioned as the “brain” of cloud infrastructure, managing application components’ availability. Crossplane, an IaC add-on, extends Kubernetes for creating external assets. The author refers to Crossplane as the cerebral cortex and highlights the need for additional add-ons like ArgoCD and HELM for scalability.
The end goal is to create a cloud service platform includes:
- Manual creation of two GitHub repositories – one for the platform portal configuration and the other defining infrastructure.
- Infrastructure expressed in HashiCorp Configuration Language (HCL) for Terraform’s “push” CI/CD pipeline.
- Self-service portal based on Backstage, serving as the menu for engineers to define cloud resources.
- Users can select base templates for different application types and submit applications through the self-service portal.
- ArgoCD monitors the self-service repository for changes, deploying them through Crossplane and Kubernetes.
- The self-service portal provides instructions for accessing two repositories – one for application code and the other for infrastructure as code.
- Application owners have control over the application code repository, but modifications to infrastructure templates require approval from a cloud DevOps engineer.
- ArgoCD deploys HELM templates to Crossplane based on application owner specifications.
- Crossplane communicates with Kubernetes to create, modify, or terminate infrastructure based on owner specifications.
- The application’s Kubernetes cluster is federated for consistency in governance policies, and ArgoCD deploys application artifacts.
We hope this provides a detailed overview of the envisioned cloud service platform, emphasizing an application-centric mindset, automation, and collaboration between application teams and DevOps engineers.