
文章目录一. 开发模式演进从传统到敏捷1. 传统开发流程2. 敏捷开发体系二. 持续集成CI代码质量审核1. GitLab CI 流程三. 持续交付CD随时可发布的状态1. GitLab CD 流程四. 持续部署全自动化的终极形态五. 核心概念对比CI、CD 与持续部署六. DevOps 体系与技能全景1. 核心支柱2. 无限循环生命周期3. DevOps 相关技能示例七. DevOps 中的左移与右移一. 开发模式演进从传统到敏捷1. 传统开发流程模式特征采用线性瀑布模式依次经历分析Analysis、需求Requirements、设计Design、编码Coding、测试Testing和交付End Game六个阶段。痛点 各阶段割裂依赖接力棒式的任务传递缺乏实时反馈导致交付周期长且风险后置。2. 敏捷开发体系核心理念围绕“价值流Value Stream”构建端到端流程强调业务、开发、测试、运维角色的紧密协作。一句话理解价值就是客户想要的结果。以这个结果为导向在明确目标后业务方与开发、测试、运维团队紧密对齐通过敏捷迭代的方式进行阶段性开发、测试与部署。这种模式打破了传统瀑布流的僵化壁垒实现了更灵活、高效的端到端价值交付。架构支撑以敏捷为基础通过持续集成CI支撑 DevOps最终实现持续交付Continuous Delivery利用自动化齿轮工具链加速商业价值变现。二. 持续集成CI代码质量审核1. 核心定义与运作机制持续集成是一种 DevOps 软件开发实践。在这种模式下开发人员会定期将代码变更合并到中央存储库中随后系统会自动触发构建和测试操作。2. 组成部分持续集成不仅是一个技术流程通常对应软件发布流程的构建或集成阶段它还包含两个关键组成部分自动化组件如 CI 服务或构建服务。文化组件要求团队养成频繁集成的习惯与文化。3. 核心目标与价值更快地发现并解决软件缺陷。提升整体软件质量。缩短验证和发布新软件更新所需的周期时间。持续集成是一种 DevOps 软件开发实践。采用持续集成时开发人员会定期将代码变更合并到一个中央存储库中之后系统会自动运行构建和测试操作。持续集成通常是指软件发布流程的构建或集成阶段需要用到自动化组件例如 CI 或构建服务和文化组件例如学习频繁地集成。持续集成的主要目标是更快发现并解决缺陷提高软件质量并减少验证和发布新软件更新所需的时间。定义开发人员定期将代码变更合并到中央仓库系统自动触发构建和测试。目标快速发现并修复缺陷提高软件质量缩短验证时间。1. GitLab CI 流程开发侧流程创建分支 - 推送代码变更Push - 触发自动化构建与测试。自动化测试持续集成Jenkins代码检查 - 自动构建 - 自动测试单元/集成 - 结果反馈Result反馈机制若测试失败立即通知开发者修复若通过则生成可部署构件。三. 持续交付CD随时可发布的状态核心定义与目标持续交付是一种现代软件开发实践旨在通过自动化流程使系统始终处于“随时可发布到生产环境”的状态。它是对持续集成CI的扩展在代码构建后自动将其部署到测试或生产环境中。核心机制与状态在正确实施持续交付的情况下开发团队始终掌握着“部署就绪”的构建构件。这些构件已经通过了标准化的测试流程具备了直接面向客户发布的条件。多维度自动化验证持续交付打破了仅依赖单元测试的局限引入了更广泛的自动化测试体系。在代码最终部署到客户环境前系统会自动执行包括 UI 测试、负载测试、集成测试以及 API 可靠性测试等在内的多种验证。核心价值通过这种全方位、多维度的自动化验证开发人员能够更全面地评估应用程序更新的质量从而抢先发现并解决潜在问题降低发布风险。1. GitLab CD 流程多环境流转代码通过 CI 后依次自动部署至测试环境Test - 预发布环境Staging。人工卡点在生产环境Production部署前设置“人工审批”节点确认无误后手动发布。反馈回路各环境Test/Staging/Production的执行结果均反馈给开发者形成多层级质量门禁。四. 持续部署全自动化的终极形态通过持续部署可自动完成从代码提交到生产的全过程。开发与交付阶段之间的触发器是自动的因此在代码更改获得验证并通过所有测试后就会立即发布。这意味着在改进功能可用后客户便可立即获得这些功能。定义与特征定义代码通过所有验证后自动发布到生产环境无需人工干预。核心价值功能改进完成后客户可立即获得实现极致的交付速度。持续集成与持续交付持续交付流水线持续集成、持续交付、持续部署五. 核心概念对比CI、CD 与持续部署维度持续集成 (CI)持续交付 (CD)持续部署 (Continuous Deployment)核心范围代码合并、构建、单元测试CI 自动部署到预发布环境CD 自动部署到生产环境人工干预无生产环境需人工审批无发布频率频繁集成按需发布实时发布风险控制快速发现代码缺陷人工卡点控制发布风险依赖自动化测试覆盖率六. DevOps 体系与技能全景1. 核心支柱持续集成/交付自动化流水线基础。微服务架构解耦独立部署。基础设施即代码IaC环境标准化。监控与日志全链路可观测性。沟通协作打破部门沟通壁垒。2. 无限循环生命周期左侧Dev计划Plan - 编码Code - 构建Build - 测试Test。右侧Ops发布Release - 部署Deploy - 运维Operate - 监控Monitor。核心枢纽持续反馈Continuous Feedback连接开发与运维驱动持续改进。3. DevOps 相关技能示例计划/编码JIRA、Confluence、Git。构建/测试Maven、Sbt、Selenium、JUnit、Jenkins。部署/运维Docker、Kubernetes、AWS、Ansible、Chef。监控Nagios、Splunk、Datadog。七. DevOps 中的左移与右移左移Shift Left定义在开发早期计划、编码、构建阶段引入测试与质量验证。目的确保软件符合设计尽早发现缺陷降低修复成本。右移Shift Right定义将监控、性能测试、可靠性验证延伸至生产环境运维阶段。目的确保系统在实际运行中的性能、弹性与可靠性通过真实用户反馈优化产品。