Skip to main content

CI/CD Architecture

Project Management​

Projects facilitate Member, Group, and Role management for multi-cluster permission control. They also support Application and Deployment Group management for structuring application builds and deployment pipelines.

Project Management Logical Architecture

Within a project, multiple applications and deployment groups can be managed, and their relationships are structured in an M:N format. For instance, an application for both development and production environments can be deployed as part of a Deployment Group.

The relationship between the Deployment Group and the Data Plane Cluster can be logically organized as M: N. You can register multiple Data Plane Clusters in one Deployment Group to deploy applications in a GitOps fashion.

Application Build Management​

ZCP streamlines application builds by retrieving source code from development teams and generating Docker images ready for deployment on Kubernetes. This process enables pipeline configuration through a user-friendly UI without requiring scripting. Additionally, the platform integrates essential tools such as Gitea for source control, Nexus for library management, and Harbor for image storage.

  • Gitea (Source Management): Handles code repository management.
  • Nexus (Binary Management): Stores and manages essential libraries and dependencies.
  • Harbor (Image Registry): Manages and stores built container images.

The build process follows these steps:

  1. Developers upload source code and libraries to Gitea and Nexus.
  2. The Tekton build pipeline compiles the build using the uploaded resources.
  3. Upon completion, the resulting container image is uploaded to the Harbor Image Registry.

The entire process is managed through the user console, with the CICD Backend automating the build pipeline and image uploads.

Application Build & Deployment Architecture

Application Deployment Management​

A Deployment Group consists of target environments for application deployment. These environments correspond to Kubernetes clusters and are compatible with various Kubernetes services, including AKS, EKS, IKS, and Native Kubernetes. Each Deployment Group allows the selection of multiple Kubernetes clusters and a designated Namespace. When a deployment is triggered within a Deployment Group, the application is deployed to the specified Namespace across all selected clusters.

Key features of deployment management include:

  • Deploying multiple Applications within a Deployment Group.
  • Defining deployment types (e.g., Kubernetes Deployment) for each Application.
  • Automatically generating Kubernetes Deployment Manifests (YAML) upon deployment.
  • Saving YAML manifests to a Git server and applying them via ArgoCD.

GitOps-Based Deployment​

Deployment through the Cloud ZCP console utilizes the GitOps methodology, where Git serves as the Single Source of Truth (SSoT) for managing deployed resources. The CI/CD backend generates Kubernetes manifests from application configurations and commits them to a GitOps repository. ArgoCD, serving as the GitOps controller, continuously monitors and applies changes to the specified Namespace in the Data Plane.