在实际工作中,很多开发团队都在用阿里云做 DevOps 实践。比如你负责一个电商后台系统,每次发版都要手动上传代码、重启服务,不仅慢还容易出错。这时候,把阿里云和 DevOps 流程结合起来,就能实现代码一提交,测试、打包、部署全自动走完。
开通相关服务并创建项目
登录阿里云控制台后,先开通几个关键服务:云效(Codeup + Flow)、容器服务 ACK、对象存储 OSS 和访问控制 RAM。云效是阿里云的 DevOps 平台,可以管理代码仓库和流水线。新建一个 Codeup 仓库,把你的应用代码推上去,比如一个基于 Node.js 的订单服务。
配置 CI/CD 流水线
进入云效 Flow,新建一条流水线。源码来源选刚才创建的 Codeup 仓库,触发方式设为“主分支推送自动触发”。接下来添加构建步骤,使用内置的构建模板,或者自定义 shell 命令:
npm install
npm run build
npm test
如果测试通过,就进入部署阶段。你可以选择部署到 ECS 实例,也可以推送到容器镜像服务 ACR,再更新 ACK 集群中的 Deployment。比如在流水线中添加“部署到 Kubernetes”动作,填写集群 ID、命名空间和工作负载名称。
结合路由设置实现灰度发布
在实际上线时,不可能一下子把所有流量切过去。比如你想先让 10% 的用户访问新版本,这就需要配合路由规则。阿里云的 ASM(应用服务网格)或 SLB(负载均衡)都支持基于权重或请求头的流量分发。
假设你有两个版本的服务 running-v1 和 running-v2,在 Kubernetes 中定义 Istio VirtualService:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: order-service-route
spec:
hosts:
- order.example.com
http:
- route:
- destination:
host: order-service
subset: v1
weight: 90
- destination:
host: order-service
subset: v2
weight: 10
这样,大部分请求还是走老版本,小部分打到新版本做验证。等确认没问题,再逐步调高 v2 的权重,完成平滑升级。
监控与回滚机制
发布过程中如果发现错误率上升,要能快速响应。阿里云 ARMS 可以接入应用监控,配合 SLS 查看日志。一旦触发预设阈值,比如 5 分钟内 HTTP 5xx 超过 20%,就自动执行回滚流程——把 VirtualService 的权重重新指向 v1,同时通知负责人。
整个过程不需要人工干预,真正做到了“敢上线”。对于经常需要迭代的业务来说,这套组合拳省下的不只是时间,更是稳定性保障。