原文
DevOps 已成为软件开发的中心舞台,企业希望借自动化在竞争中取胜。
DevOps 是一套实践、
工具,更是一种理念,强调自动化并整合开 发与运维,使团队协同顺畅交付软件。 DevOps 追求团队赋能、跨
团队协作与技术自动化。简而言之,「Dev」与「Ops」融合为单一持续流程。 DevOps 如何运作?Dev
Ops 团队由开发与运维人员组成,贯穿产品生命周期,提高部 署速度与质量。 开发提交代码至仓库,触发 CI
构建,经 Dev/QA/Staging 等环境测试后,在评审与审批通过后发布生产。在 DevOps 模型
中,开发与运维作为一体,工程师具备跨开发、测试、部署、运营的多学科能力,并使用工具链实现 CI/CD、自动
化与协作,保持高可用。 安全嵌入全生命周期即 DevSecOps。DevOps 的连续性常以无穷符号表示各阶
段相 互关联,强调贯穿 SDLC 的协作与迭代改进。 生命周期包含六个阶段,各阶段团队保持对齐、速度与质量。
图片来源:Atlassian
DevOps 生命周期的六个阶段如下:
Plan
规划阶段确定预期功能与交付节奏。团队常采用敏捷方法提升速度与质量,将工作拆分为可增量交付的小块。
Code and Build
在 CI/CD 之前合并分支与代码。常用 Git 进行版本控制,支持分支、合并与历史重写,支撑创新工作流。
Continuous integration and deployment
CI/CD 使团队能够通过自动化工作流从仓库频繁发布高质量功能与软件。
团队在此阶段的主要工作包括:
Monitor and alert
识别并解决影响可用性、速度与功能的问题。监控工具可在统一视图中提供实时分析;出现异常时通过 Slack、邮件等 ChatOps 告警通知团队。
Operate
实现面向客户的端到端 IT 服务交付,涵盖设计、实施、配置、部署与维护支撑服务的全部基础设施,是系统的完整运营阶段。
Continuous feedback
团队应审视每次发布并形成报告,以改进规划中的功能与版本,并收集持续反馈优化流程、纳入客户意见。
面向 DevOps 的主流云厂商
本节介绍云原生领域三大云厂商:Amazon Web Services、Google Cloud 与 Microsoft Azure。
AWS (Amazon Web Services)
AWS 是备受信赖的云厂商,提供丰富的云产品与能力,帮助企业快速扩展并降低基础设施成本。产品涵盖开发工具、算力、数据库、AI/IoT/ML、存储、分析、网络、托管服务、安全应用等。
Google Cloud
Google Cloud Platform 以高效著称,提供开发工具、网络、大数据、机器学习、IoT 等大量服务(逾 90 项),此处仅概述核心产品。
Azure Microsoft
Microsoft Azure 为现代企业提供算力、网络、存储、分析与大数据等灵活工具集,众多财富 500 强将重载工作负载运行在 Azure 上。订阅后即可在 Azure 门户使用各类服务。
如何选择云厂商?
没有唯一答案。AWS、Google Cloud 与 Azure 均适合 DevOps,最佳选择取决于市场、待解决问题与成本可行性。
云工程师与 DevOps 工程师的差异
云工程师与 DevOps 工程师都是云环境的关键角色,但职责范围不同:云工程师侧重构建与运营基础设施,DevOps 工程师侧重开发、测试与流程/工具自动化。
云工程师为企业构建云系统;DevOps 工程师精简软件产品与云服务的发布流程,并常参与在线应用与可下载软件。
云工程师判断采用哪些服务并建立工程、DevOps 与 SRE 最佳实践;DevOps 工程师推动变更,云工程师侧重公有云的管理与运营。
市场对 DevOps/SRE 的需求增速超过供给,使这类人才在择业上更具优势。
DevOps Engineer
云工程师创建并维护面向个人或企业的云基础设施与平台。 DevOps 工程师的核心任务是通过 DevOps 实践加
速软件开发。 云工程师职责包括:设计云方案、管理云端机密数据、保障跨平台兼容、实施监控策 略、管理基础设施、衡量
性能、提出创新云方案。 DevOps 工程师职责包括:识别自动化新方法、使用自动化配置工具、维护 Web 应用、
部署 Web 应用、参与开发/集成/测试、提升自动化成效。 云工程师常见角色:Cloud Security En
gineer、Cloud Developer、Cloud Network Engineer、Cloud Arch
i tect。 DevOps 工程师常见角色:Softw are Engineer、Software Teste
r、Software Developer、Securit y Engineer、Quality Assuranc
e、Automation Expert。 云工程师聚焦云 基础设施与运营;DevOps 聚焦开发、运营与质量保证(
QA)。 通常将云工程师视为 DevOps 工程师的子集,DevOps 工程师视为云工程师的超集。 当今企业近乎皆
为软件公司,采纳云以高速、高质量、可靠地交付产品服务已成必需。无论选择 AWS、Azure 或 GCP,开发者除编
程技能外,还需掌握 Docker、Kubernetes、Terraform、Helm 等云原生工具以拓展职业路径。
