研发管理知识库(12)阿里“云效”使用方案简介
1.概述
阿里云的核心DevOps服务是 「云效」---Alibaba Cloud DevOps。它是一款一站式、覆盖软件研发全生命周期的DevOps平台,旨在帮助企业提升研发效能,实现敏捷开发与持续交付。
为了让你快速了解其全貌,下面这个表格汇总了云效平台的核心产品组件及其主要功能。
产品组件 | 核心功能简介 |
项目协作 (Projex) | 提供敏捷项目管理、需求管理、迭代规划、工时统计等功能,支持Scrum、LeSS等多种研发模式。 |
代码管理 (Codeup) | 企业级代码托管平台,支持代码评审、代码扫描、质量检测,保障代码资产安全。 |
流水线 (Flow) | 自动化持续集成/持续交付(CI/CD)流水线,支持可视化编排、多环境部署、灰度发布。 |
制品仓库 (Packages) | 统一管理各种语言构建产生的依赖包和二进制制品,衔接CI和CD过程。 |
测试管理 (Testhub) | 管理测试计划、用例设计与执行,并与需求、缺陷关联,实现高效协同。 |
应用交付 (Appstack) | 以应用为核心的云原生应用交付平台,支持应用编排、环境管理和部署运维。 |
效能洞察 (Insight) | 提供专业的研发效能度量分析,从流动效率、资源效率、质量等维度评估并指导改进。 |
2.为什么云效是阿里云DevOps的核心
- 全链路数字化协同:云效真正实现了从“需求->开发->测试->发布->运维->运营”的端到端协同和工具支撑。这意味着产品经理、开发、测试、运维等不同角色可以在同一个平台上协作,信息流无缝衔接,显著减少了上下文切换和协作摩擦。
- 源自阿里巴巴最佳实践:云效凝聚了阿里巴巴自身在超大规模业务场景下(如支撑双十一)近二十年的DevOps实践经验。企业可以直接借鉴这些经过验证的先进研发模式和方法论,避免重复造轮子。
- 深度集成阿里云生态:云效与阿里云的容器服务、中间件、计算、存储等产品深度集成。这使得构建、部署、监控等环节可以无缝对接,轻松利用云的弹性优势,实现高效的云原生DevOps。
- 企业级安全与合规:平台通过了公安部网络安全等级保护2.0三级认证、ISO 27001等多项安全认证,提供企业间数据隔离、精细的权限管控和完善的审计日志,满足企业对于代码安全和合规性的高要求。
3.主要应用场景与价值
云效不仅是一套工具,更是一种研发效能的解决方案。它特别适用于以下场景,并已帮助众多企业取得实效:
- 数字化转型与企业敏捷:帮助像南京银行、上汽通用这样的传统企业进行研发流程的数字化转型,实现业务敏捷。
- 互联网企业快速迭代:支撑如鲜丰水果、百草味等企业,实现85%的需求在两周内发布上线,显著提升交付速度。
- 云原生应用高效交付:通过与应用交付平台Appstack等组件的结合,为采用云原生架构的团队提供高效、可靠的一站式交付体验。
4.如何开始使用
如果你希望引入阿里的DevOps服务,主要有两种方式:
- 直接使用公共云服务:访问阿里云官网,开通并使用云效的公有云服务,这是最快速、便捷的方式。
- 专业实施服务:对于有特定需求或需要专有云部署的大型企业,阿里云也提供专业的DevOps实施服务。这项服务由阿里云的专家团队提供,起售价约为40万元,内容包括平台实施、应用改造和专项培训,帮助企业基于阿里云产品特性和最佳实践,顺利完成DevOps平台的建设和迁移。
5.云效与阿里云其他服务的协同
阿里云效与阿里云其他服务的关系,可以理解为 “云原生时代研发交响乐的指挥家”。它作为一站式BizDevOps平台,深度集成并编排了阿里云庞大的技术产品体系,将分散的云资源(如计算、网络、存储、监控等)融合成一条自动化、高效率的端到端研发交付流水线。
服务类别 | 核心阿里云服务 | 与云效的协同关系与价值 |
计算与容器服务 | ACK, ECS, SAE, FC, ECI | 云效流水线将代码构建为容器镜像后,自动部署到这些计算平台,实现应用的发布与运行。 |
基础资源与中间件 | SLB, VPC, ACR, MSE | 云效在部署过程中自动配置这些底层资源,如负载均衡、网络、镜像仓库和微服务治理,对开发者透明化管理。 |
可观测性服务 | 云监控, ARMS, SLS | 云效与这些服务集成,在应用部署后提供监控、告警和日志分析能力,实现从发布到运维的闭环。 |
(1)核心协同模式
云效与阿里云服务的协同主要体现在以下三个层面,这使其超越了单一工具的角色,成为一个强大的研发协同平台:
- 统一的“应用”核心与自动化接口:云效引入了“应用”这个核心概念,作为贯穿研发运维生命周期的统一抽象模型。当你在云效中创建一个应用后,无需再手动、重复地在云监控、日志服务、SLB等控制台进行繁琐的机器分组和配置。云效通过阿里云OpenAPI,在应用创建或环境变更时自动完成这些关联服务的配置,极大提升了效率并降低了出错概率。
- 深度成的CI/CD流水线:这是协同关系最直接的体现。云效流水线(Flow)作为自动化引擎,与多种阿里云服务无缝衔接。例如,流水线可以从代码库(Codeup)获取代码,利用ACR构建和存储镜像,最终一键部署到ACK集群或SAE平台,并自动调用ARMS、SLS等工具进行部署后监控,形成完全自动化的交付闭环。
- 企业级实践与能力下沉:云效将阿里巴巴内部沉淀的大规模研发最佳实践(如蓝绿发布、灰度发布、权限管控)模板化、产品化。这些复杂流程依赖于底层阿里云基础设施(如ACK的Ingress控制器、MSE的微服务治理能力)的强有力支持,但云效对其进行了封装,让开发者和运维人员能够通过简洁的界面即可使用,降低了使用高级特性的技术门槛。
(2)典型应用场景
通过云效的串联,可以轻松实现以下高效研发场景:
- 云原生应用的持续交付:这是最经典的场景。开发者提交代码到云效代码库(Codeup),即可自动触发一条预置的流水线:代码扫描 -> 构建镜像并推送至ACR -> 部署到ACK测试环境 -> 运行自动化测试 -> 人工审核后自动发布到生产环境。整个过程无需人工干预,高效且可靠。
- 安全的权限与协作管理:在大型团队中,云效可以与阿里云访问控制(RAM)和钉钉深度集成。运维工程师可以集中管理资源和审批流程,而开发人员无需底层云资源权限,即可在受控的安全规范内进行日常的构建、部署和问题排查工作,完美践行了最小权限原则和职责分离。
- 成本优化与弹性伸缩:云效可以结合弹性容器实例(ECI)或ACK的弹性伸缩功能。在流水线中设置策略,在测试任务完成后自动释放资源;或在发布新版本时,自动创建临期的ECI实例进行蓝绿发布,发布成功后即回收旧有资源,从而实现高效的资源利用和成本控制。
总而言之,阿里云效扮演着研发流程整合者、自动化引擎和最佳实践承载者的角色。它并非替代其他计算、存储或网络服务,而是将这些服务的能力以研发人员更易理解和操作的方式组织和呈现出来,最终帮助企业提升研发效能,实现真正的DevOps。
6.如何使用云效进行私有云管理
如果您希望团队使用云效进行高效的 DevOps 管理,同时将开发的产品私有化部署到自己的服务器或内网环境,完全可以实现。
云效提供了灵活的方式来支持这种“公有管理 + 私有部署”的模式。其核心在于,利用云效在公网上的平台进行项目管理、代码托管、流水线编排等 DevOps 流程管理,然后通过特定的代理机制,安全地将构建产物和部署指令下发到您内部的私有化环境中。
下表梳理了核心操作环节:
核心环节 | 关键操作与说明 |
1. 创建私有构建集群 | 在云效中创建一个私有构建集群,并将您内网的物理机或虚拟机作为构建节点接入。该节点上的 Runner 程序负责与云效服务端通信并执行构建任务。 |
2. 配置内网服务连接 | 如果代码库在内网,需在云效中创建 通用 Git 服务连接,并配置访问内网代码库(如 GitLab)的凭证信息,使云效流水线能通过此连接拉取代码。 |
3. 编排私有部署流水线 | 在云效流水线中,构建任务应指定在您的私有构建集群上运行。部署任务则通过主机组将应用发布到最终的目标私有服务器。 |
4. 制品与环境隔离 | 构建产物可上传至云效的制品库或您内网的存储服务。通过流水线中的不同阶段(如测试、生产)和审批卡点,严格管理向私有化环境的部署过程。 |
(1) 打通网络与认证
这是实现混合模式的基础。您需要确保云效平台能够安全地与您的内网资源进行交互。
接入私有构建集群:这是关键一步。您需要在内部网络的一台或多台机器上安装云效的 Runner 程序。这个程序会主动与云效的公共服务建立安全连接,等待任务分发。这样,所有的代码拉取、编译、打包等构建任务都会在您的内网环境中完成,代码不会外泄。
配置内网代码库访问:如果您的代码托管在内网的 GitLab 或其他 Git 服务上,需要在云效的“服务连接”中配置访问信息。通常需要提供内网代码库的地址、访问账号和令牌(Token),云效流水线才能通过这个凭证拉取代码。
(2)设计流水线流程
一个典型的面向私有化部署的流水线可以包含以下阶段:
- 代码扫描与质量门禁:在构建前或构建后,集成代码扫描、安全漏洞扫描等任务,确保代码质量。
- 构建与打包:此阶段在您的私有构建集群上执行。例如,对于 Java 项目,运行 mvn clean package命令,生成最终的部署包(如 JAR/WAR 文件或 Docker 镜像)。
- 部署到私有环境:这是将应用真正部署到最终运行环境的一步。您需要在云效中创建主机组,并将内部的目标服务器添加到该组中。在部署任务中,云效的 Agent 会通过之前建立的代理连接,将构建产物推送到目标服务器,并执行您预设的部署脚本(如重启服务)。
(3)保障部署安全与规范
权限精细化控制:利用云效的权限管理功能,为不同角色的成员(开发、测试、运维)设置不同的操作权限。例如,可以设置只有运维人员才有权限触发生产环境的部署流程。
设立审批流程:在流水线的关键节点(如部署到生产环境之前)设置人工审批环节,由技术负责人或项目经理审核通过后,部署才能继续,增加安全卡点。
使用部署策略:云效支持分批发布和灰度发布。例如,可以先部署一小部分服务器进行验证,成功后再全量部署,最大限度降低发布风险。
总而言之,通过云效的私有构建集群、主机组以及灵活的服务连接功能,您可以很好地实现“研发流程在云效,产品部署在私有环境”的混合模式。这种方式既享用了云效强大的 DevOps 协同和自动化能力,又满足了数据保存在本地的安全合规要求。
在具体实施时,建议采用“试点先行,逐步推广”的策略。先选择一个相对简单的项目进行全链路验证,待流程跑通并优化后,再逐步推广到其他项目团队。
