AltSchool Of Engineering Tinyuka’24 第11月 第1周

发布: (2025年12月27日 GMT+8 01:03)
6 分钟阅读
原文: Dev.to

Source: Dev.to

如果你错过了我们之前的课程,可以在这里补看。本周我们探讨了 持续集成 (CI)变更管理左移安全 如何结合,构成现代且安全的软件开发生命周期(SDLC)。

现代软件交付不再仅仅是编写代码——更在于代码以多快、 多安全、 多可靠的方式交付给用户。随着系统日益复杂、 安全威胁不断增加,组织必须重新思考如何集成代码、管理变更,并从第一天起就保障应用的安全。

持续集成 (CI)

持续集成是一种 DevOps 实践,开发者频繁地将代码更改合并到共享仓库中,触发自动化构建和测试。它避免了等待数周或数月才进行代码集成,确保:

  • 代码提前得到验证
  • 快速发现错误
  • 减少集成问题
  • 团队能够更快且更有信心地工作

简单示例

  1. 开发者将代码推送到 GitHub。
  2. 运行测试。
  3. 构建代码。
  4. 执行安全检查。
  5. 在几分钟内返回反馈。

如果出现故障,团队会立即知晓。

CI 平台

平台亮点
GitHub ActionsGitHub 仓库的原生 CI/CD,基于 YAML 的工作流,紧密集成 GitHub。
GitLab CI/CD内置 CI/CD,强大的安全扫描,支持端到端 DevSecOps。
Jenkins开源、高度可定制,拥有庞大的插件生态系统,企业中广泛使用。
CircleCI云原生,速度优化,深受初创公司和 SaaS 团队欢迎。
Azure DevOps Pipelines与 Microsoft 生态系统深度集成,支持混合和云工作负载。

为什么 CI 在现代软件交付中至关重要

CI 帮助团队:

  • 及早发现错误
  • 保持代码质量
  • 防止构建失败
  • 提高部署频率
  • 增强开发者信心

没有 CI,变更管理将变得风险高且容易出错。

变更管理

传统变更管理

  • 手动批准
  • 长发布周期
  • 大量文档
  • 风险规避的流程

这种模式在现代 DevOps 环境中无法扩展。

现代变更管理(DevOps 驱动)

现代团队使用以下方式管理变更:

  • 版本控制(Git)
  • 自动化测试
  • 基础设施即代码(IaC)
  • CI/CD 流水线
  • 可观测性与监控

示例(Terraform)

  1. 通过拉取请求(pull request)进行配置更改。
  2. CI 验证更改。
  3. 更改自动应用。
  4. 如有需要,回滚很容易。

变更变得可控、可审计且安全。

左移安全

左移意味着将安全性提前到软件开发生命周期(SDLC)的早期,而不是把它当作最后的检查点。

安全 SDLC 阶段

规划与设计

  • 威胁建模
  • 安全架构评审
  • 风险评估

开发

  • 安全编码实践
  • 密钥管理
  • 依赖扫描

CI/CD 流水线

  • 静态应用安全测试(SAST)
  • 软件组成分析(SCA)
  • 密钥扫描

测试

  • 动态应用安全测试(DAST)
  • API 安全测试
  • 渗透测试

部署与监控

  • 运行时安全
  • 日志记录与告警
  • 漏洞管理

支持左移安全的工具

  • Snyk – 依赖扫描
  • SonarQube – 代码质量与安全
  • Trivy – 容器与基础设施即代码(IaC)扫描
  • OWASP ZAP – 动态安全测试
  • Checkov – Terraform 与 IaC 安全
  • GitHub Advanced Security

这些工具直接集成到 CI 流水线中。

实际工作流

  1. 开发者提交代码。
  2. CI 流水线运行测试。
  3. 安全扫描执行。
  4. 变更已审查。
  5. 基础设施安全部署。
  6. 监控确保稳定。

这种方法降低风险、提升速度,并建立信任。

对公司的好处

  • 更快发布
  • 减少安全事件
  • 提升系统稳定性
  • 降低运营风险
  • 构建弹性软件

现代组织更倾向于 DevSecOps 而非传统模型,因为 CI、现代变更管理和左移安全是构建可靠、安全、可扩展软件的基础。

结论

通过提前集成安全、自动化变更并验证每一次提交,团队可以在不牺牲安全的前提下快速前进。这是软件交付的未来,也是高绩效工程团队的标准。

Back to Blog

相关文章

阅读更多 »