XenonStack Recommends

Service Design

Cloud Native Continuous Integration (CI) by CNCF and Dashboard

Navdeep Singh Gill | 25 June 2024

Cloud Native Integration

Introduction to Cloud Native Computing Foundation

The Cloud Native Computing Foundation (CNCF) is a dynamic and rapidly growing organization that encompasses a diverse range of projects within the cloud-native technology landscape. As the CNCF continues to expand, it becomes increasingly important to establish a framework for these projects to interact and function seamlessly together. This is where CNCF-CI comes into play.

  1. CNCF-CI is a continuous integration system that integrates, tests, and deploys projects within the CNCF ecosystem.
  2. CNCF-CI is designed to ensure interoperability between cloud-native projects.
An approach in which developers merge their code into a shared repository several times a day. Click to explore about our, Continuous Integration and Continuous Delivery

Why do we need Cloud-Native CNCF-CI?

Cloud Native Integration is Integrating, testing, and deploying projects within the CNCF ecosystem and a Dashboard to display results at CNCF-CI will do.

It is growing continuously, and to make it faster, work smoothly, fix bugs fast make the release quicker, and be more agile there was a need for something which can communicate and function with all the Cloud Native projects, - CNCF would like to ensure cross-project interoperability of all cloud-native technologies and show the daily status of builds, deployments, and end-to-end tests on a status dashboard.

What are the Key Features of Cloud Native CNCF-CI?

The CNCF CI system follows a project-centric approach, prioritizing and validating its hosted graduated and incubating projects. By focusing on the specific needs and requirements of each project, this approach enhances the efficiency and effectiveness of testing and deployment processes.

Enhanced Collaboration

The CNCF CI system integrates with external CI systems, enabling it to retrieve build status and container artifacts from other CI systems. This seamless integration fosters a collaborative environment where developers can easily share and access important information, promoting effective teamwork.

Platform-Agnostic Testing

The CNCF CI system supports testing on various platforms and architectures, including Bare Metal testing based on Kubernetes release and x86 and Arm architectures. This flexibility ensures thorough testing and compatibility of cloud-native technologies within the CNCF ecosystem across different environments.

Overall, the project-centric approach, increased collaboration, and platform-agnostic testing capabilities of CNCF CI v2 demonstrate the Cloud Native Computing Foundation's commitment to driving the growth and success of cloud-native projects. With these key features in place, CNCF CI v2 plays a vital role in ensuring the interoperability and reliability of cloud-native technologies within the CNCF ecosystem.

Cloud Native Architecture of CNCF-CI

The CNCF-CI architecture primarily comprises three essential components:

1.Dashboard

This component provides an overview of the continuous integration process, displaying the status of builds, deployments, and end-to-end tests. It serves as a central hub for monitoring and managing the cloud-native projects within the CNCF ecosystem.

2. Status Repository Server

The status repository server collects and stores the results generated by the testing system. It acts as a central repository for accessing and retrieving the latest build and deployment statuses.

3. Testing System

This critical component validates the compatibility and interoperability of all CNCF projects. It performs comprehensive tests, including build and deployment validations, on both Arm and x86 architectures on bare metal servers. The testing system plays a crucial role in ensuring the smooth functioning and reliability of the cloud-native technologies within the CNCF ecosystem.

This project has three sections a dashboard, a status repository server, and a testing system all together make the Cloud Native Computing Foundation ci process. The testing system is used to validate the build and deployments whenever there will be a commit on stable and HEAD to Arm or x86 architecture on bare metal servers. Continuous Integration validates interoperability between each CNCF project. The status repository server fetches the results generated by the test system, and the dashboard displays them.ble production environment to deploy Magento projects on AWS. Click to explore about our, AWS Jenkins Pipeline Continuous Integration with Magento

Continuous Integration Dashboard

The below image is the CI dashboard overview, and the highlighted section shows the provisioning of the test environment for the Kubernetes release with selected architecture for the projects. Here we can see the test environment having Kubernetes release v1.13.0 for projects CoreDNS is a success, and we can adjust the Kubernetes version through the drop down and see project CoreDNS success too for different Kube versions. The build and deploy section for every project is interactive we can check the build details and deploy by clicking on it, and it will show the build and deploy job running on GitLab. You can find the dashboard for CNCF-CI here.

cn-cf-ci-dashboard

Tech Flow Overview

The tech flow of CNCF-CI is a streamlined and efficient process that ensures seamless integration, testing, and deployment of cloud-native projects within the CNCF ecosystem. Let's dive deeper into each stage of the CI testing system.

Stage -1: Kubernetes Test Environment Provisioning

In this stage, the CI/CD process leverages Terraform and cloud-init for provisioning the test environment. It collects the necessary Kubernetes artifacts and proceeds to provision the packet server, which acts as the foundation for bootstrapping the Kubernetes infrastructure. Once the environment is set up, the results are updated on the dashboard, providing a status badge for easy monitoring.

Stage -2: Build Pipeline per Project

The build pipeline focuses on each individual project within the CNCF ecosystem. It begins with compiling or retrieving the necessary binaries and executing end-to-end tests to ensure the reliability and functionality of the project. Once the build is complete, the artifacts are packaged into containers and pushed to the GitLab Docker registry. Finally, the build status badge on the CI dashboard is updated, providing real-time information on the project's progress.

Stage -3: E2E Testing Stage per Project

This stage focuses on executing end-to-end tests for each project. By thoroughly testing the functionality and compatibility of the project, any potential issues or bugs can be identified and addressed before deployment. This ensures that the project is reliable and performs as expected within the CNCF ecosystem.

Stage -4: Deployment Pipeline per Plans

The deployment pipeline is responsible for deploying the projects within the CNCF ecosystem. It begins by gathering all the project artifacts from the previous build stage. These artifacts are then deployed using Helm, a popular package manager for Kubernetes, ensuring smooth and efficient deployment across different environments. Finally, the deploy status badge on the CI dashboard is updated, providing visibility into the deployment progress of each project.

By following this comprehensive tech flow, CNCF-CI ensures that cloud-native projects within the CNCF ecosystem are thoroughly tested, seamlessly integrated, and reliably deployed.

The use of GitLab, Terraform, cloud-init, Helm, and Git+yaml files enables automation and simplification of the build and deployment processes. This, in turn, promotes collaboration, agility, and interoperability among different projects, ultimately driving the growth and success of cloud-native computing within the industry.

Cloud Native Application Development Services
Empowering enterprises with Cloud Native Solutions to Build, Run and Operate applications faster Cloud Native Development Services

A Comprehensive Strategy

Cloud Native Computing Approach and Development Principles help Enterprises to move away from legacy mindset and adapt Next Gen IT. To learn more about Cloud Native Computing we recommend taking the following steps-