组队
cloud-native-ci
2025

云原生构建

我打企鹅,真的假的

云原生容器化

在进行本题的操作前,建议先了解 Docker/Podman 的基本使用方式

腾讯云推出了产品云原生构建,但对比 GitHub Actions 等竞品,我们可以发现,CNB 的功能上实际是相对简单的,在实现上也是相对容易的,以至于我们甚至可以自己实现一个简化版的构建系统

我们知道,CI/CD 系统都是通过一个配置文件来描述整个工作流。我们也可以定义一个简单的工作流:

yaml
name: Cargo Build
use: docker.io/ubuntu:latest # 使用 docker.io 上的 ubuntu:latest 镜像
 
steps: # 定义了工作流中按顺序执行的每一步
  - name: Update Env
    run: apt-get update && apt-get upgrade
  - name: Install Rust Toolchain
    run: apt-get install rustup && rustup default stable
  - name: Checkout
    run: apt-get install git && git clone https://git.ltkk.run/koitococo/repo # fake repo url, should be replaced by any vaild value
  - name: Build
    run: cargo build --release

我们发现,如果不考虑分布式,仅考虑在单个节点上,要实现这样一个简易的构建系统,我们只需要:

  • 拉取镜像
  • 创建容器,并在容器中启动我们的 daemon
  • daemon 按工作流定义,按顺序运行命令

本题的任务:

  • 构思一个设计方案,能实现上文所述的构建系统工作流,方案中适当包括一些技术细节
  • 实现部分核心功能(如拉取镜像、创建容器等)

推荐使用 Go/Rust 完成本题

如果在设计或实现上遇到困难,可以与出题人联系

2025.09.28 Updates

这一题给的场景相对非常明确,而且是一个有很多实践的领域,所以我们希望看到的是:

  • 超出上述基本功能的部分(如使用 Kubernetes 进行分布式构建、多租户场景下的资源分配和安全加固功能),这将会作为一个很大的加分项(不是必须)
  • 你对这种 DevOps 模式的个人理解
  • 你在构建这样一个自己的 DevOps 系统的过程中,如何优化 UX/DX,使其变的比现有的系统(在你看来)更好
  • 在这种较大项目的开发过程中,体现出来的你的工程能力~~(也可以是提示词工程能力)~~

2025.10.13 Updates

考虑到工作量,本题在单人完成时无需使用 Kubernetes

出题人:可可