- Overall Architecture
- MCM (Multi-Cluster Management) Architecture
- CI/CD Architecture
- Centralized Monitoring Architecture
- Centralized Logging Architecture
- Application & Deployment Group - Logical Architecture
Overall Architecture
The architecture of the Modernization Platform is largely composed of two types of clusters as follows.
Control Plane Cluster
This is a cluster where all add-on services of the Modernization Platform are built and operated, and provides functions such as status monitoring of the Data Plane Cluster, agent installation, application deployment, and monitoring through various functions provided by the Console.Data Plane Cluster
This is the cluster where actual business applications are deployed and operated. Agents for cluster and application status monitoring and log collection are installed and managed through the Cluster management function of the Console, and applications can also be quickly deployed and operated in a multi-cluster environment through the Application and Deployment Group (CI/CD) management function provided by the Console.
Note)
As you can see in the architecture configuration, the Control Plane Cluster and Data Plane Cluster are physically separated. Therefore, even if a failure occurs in the Control Plane Cluster, the business applications running in the Data Plane Cluster will not be affected. However, metrics and logs for monitoring/logging will not be collected, and new deployment of applications through the Console will not be possible.
Monitoring and Logging nodes can be scaled out according to the volume of the number of Data Plane Clusters, the number of nodes, and the number of applications.
MCM (Multi-Cluster Management) Architecture
MCM Backend and MCM Provisioning components are installed in the Control Plane Cluster.
When a new creation or registration request for a Data Plane Cluster is received through the Console, it provides the ability to create or register a Managed Kubernetes Cluster such as AWS EKS or Azure AKS provided by a CSP (Cloud Service Provider) through Ansible or Terraform. (Currently not supported for new creation)
In addition, it provides an agent installation and management function that centrally collects metrics and logs for monitoring registered clusters.
CI/CD Architecture
The CICD Backend component in the Control Plane Cluster uses Kubernetes' CRD to build and deploy Business Applications, creates Applications and Deployment Groups provided by the Console as Kubernetes resources, and then manages the lifecycle.
Using Tekton, which is optimized for the Kubernetes environment, the build pipeline is configured and executed, and the library dependency management service (Nexus) and container image management service (Harbor) required for pipeline execution are linked.
After the Business Application container image build is completed, the Deployment, Service, and Ingress configuration files of Kubernetes are dynamically created through the Console's Application and Deployment Group UI/UX, stored in the configuration management service (Gitea), and the Application is quickly deployed to the Multi-Cluster through the GitOps service, ArgoCD.
Centralized Monitoring Architecture
Control Plane Cluster Open source in Cortex all metrics collected through the Prometheus Agent installed in the Data Plane Cluster are stored in the Cortex storage by tenant, and Kibana creates an Organization by tenant to provide a visualization service.
The Monitoring Backend component manages the creation/deletion/authorization of Organization, DataSource, Dashboard, etc. in Kibana according to the lifecycle events of the project (tenant).
Centralized Logging Architecture
The service is installed as an EFK (Elasticsearch, FluentD, Kibana) stack on the Control Plane Cluster, and all logs collected from the FluentBit Agent installed on the Data Plane Cluster are stored on the Elasticsearch Data Node.
All logs stored on the Elasticsearch Data Node are managed with access rights through Open Distro Kibana.
Application & Deployment Group - Logical Architecture
Provides application and deployment group management functions for application build and deployment in Console UI/UX.
In fact, each micro service in MSA (Micro Service Architecture) can be managed as an application. One application can be built with multiple pipelines as needed.
Deployment Group is a function that deploys the results registered in the Container Image Registry after the build is completed in the application to the multi-cluster environment by defining the target environment and Kubernetes configuration files (Deployment, Service, ConfigMap, Secret, PVC, Ingress, etc.) required for deployment.
Online consultation
Contact us