DevOps
分阶段构建如何缓存第三方依赖
· ☕ 5 分钟
非分阶段构建场景下,使用容器进行构建时,我们可以将容器中的缓存目录挂载到构建主机上,执行构建任务;然后将产物拷贝到运行镜像,制作应用镜像。但是在分阶段构建时,构建镜像和运行镜像在同一个 Dockerfile 中,这给优化第三方依赖的缓存带来了难度。 1. 创建一个 Vue 实

Jenkins为什么一直调度到同一个节点
· ☕ 3 分钟
1. 问题背景 在 Jenkins 中添加了很多个构建节点使用同一个 Label 以供流水线使用,但是 Jenkins 却每次都倾向于在同一个节点进行构建。 这导致了并发问题,单个节点的压力过大,而其他节点空闲,负载极其不均衡。 2. 业务流水线的设计 上述问题的产生和业务流水线的设计有一定的关系。

基于 Tekton 的 CICD 平台
· ☕ 6 分钟
1.背景 1.1 目前使用 Jenkins 遇到的问题 编排引擎不稳定 Jenkins 是由 Java 编写的编排引擎,在 Full GC 时会 Stop The World(STW)。在大规模构建时,STW 可能会导致 Jenkins 无法处理新的请求。 大量构建卡顿 Jenkins 使用磁盘文件存储数据,每条流水线、每次构建都会占用一个文件目录,产生大

如何远程触发 GitHub Action
· ☕ 2 分钟
通常,我们需要在 GitHub 上进行一些操作,才能触发 GitHub Action。本篇将介绍一种通过 API 远程调用触发 GitHub Action 的方法。 1. 常见的几种触发 GitHub Action 的方式 下面是一个 GitHub Action 的示例: 1 2 3 4 5 6 7 name: GitHub Actions Demo on: [push, pull_request] jobs: Explore-GitHub-Actions: runs-on: ubuntu-latest steps: - run: echo "Hello World!" 在 on 关键字下,定义的就是触发 Workflow 执行的事件。

在 Tekton 中如何实现审批功能
· ☕ 5 分钟
1. CICD 平台的基本功能 常见的 CICD 引擎并不适合直接提供给业务方使用。主要原因在于用户学习成本高、缺乏必要的鉴权、维护升级难度大。 我们通常会基于流程引擎,针对业务进行适配提高易用性,针对场景进行封装收敛复杂度,那么一个 CICD 平台需要具备哪些基本的功能呢?