实用科技屋
霓虹主题四 · 更硬核的阅读氛围

DevOps阿里云怎么用?手把手教你落地实践

发布时间:2025-12-17 14:11:18 阅读:193 次

最近团队接到一个项目,要求快速上线、频繁迭代,老板还天天催进度。我们决定上阿里云搞 DevOps,把开发、测试、部署流程自动化起来。折腾了一周,终于跑通了整套流程,今天就来分享下实际操作过程。

第一步:开通阿里云相关服务

登录阿里云控制台后,先开通几个核心服务:云效(Codeup + Flow)、容器服务 Kubernetes 版(ACK)、以及访问控制 RAM。云效是阿里云自家的 DevOps 平台,集成度高,适合新手起步。我们新建了一个代码仓库,选择私有 Git 仓库,名字叫 myapp-devops,然后本地 clone 下来准备提交代码。

代码托管与分支策略

我们按主流做法设了两个主干分支:maindevelopmain 对应线上环境,develop 是集成测试分支。每个功能开一个 feature 分支,合并前必须通过代码评审和流水线检查。

在云效 Codeup 里设置了保护规则:禁止直接 push 到 main,必须走 Merge Request 流程。这样避免了谁手一抖就把 bug 推到生产环境。

配置 CI/CD 流水线

接下来在云效 Flow 模块创建流水线。我们项目是个 Spring Boot 应用,打包成 JAR 后转成 Docker 镜像推送到阿里云镜像仓库(ACR)。

流水线大致分四步:

  • 拉取代码
  • 执行单元测试(mvn test)
  • 构建镜像并打标签
  • 部署到 ACK 集群

YAML 配置片段长这样:

version: v1.0\nsteps:\n  - checkout: \{\}\n  - script:\n    - mvn clean package -DskipTests\n    - echo \"Building Docker image...\"\n    - docker build -t registry.cn-hangzhou.aliyuncs.com/myteam/myapp:$PIPELINE_SEQ .\n    - docker push registry.cn-hangzhou.aliyuncs.com/myteam/myapp:$PIPELINE_SEQ\n  - deploy:\n    provider: ack\n    cluster_id: cls-xxxxxx\n    namespace: dev\n    workload: deployment/myapp\n    image: registry.cn-hangzhou.aliyuncs.com/myteam/myapp:$PIPELINE_SEQ

对接 Kubernetes 部署

我们在容器服务 ACK 创建了一个标准集群,节点用了 ECS 实例。应用通过 Deployment 管理,配合 Service 暴露端口。每次流水线运行成功,新镜像就会自动更新到 Pod 中。

为了更稳一点,加了个健康检查探针:

livenessProbe:\n  httpGet:\n    path: /actuator/health\n    port: 8080\n  initialDelaySeconds: 30\n  periodSeconds: 10

这样容器启动失败也不会被误判为就绪,避免流量打进来直接 500。

权限与协作管理

团队有前端、后端、测试三拨人,不能谁都往生产环境发。我们在 RAM 里建了角色,开发只能操作 dev 环境,发布到 prod 必须由运维审批。云效流水线也加了人工卡点,关键环节弹出确认框,防止误操作。

日志与监控联动

出了问题总得查吧?我们把应用日志接入了 SLS 日志服务,所有容器输出自动收集。再配上 ARMS 做性能监控,接口慢了、错误率高了直接钉钉告警。昨天晚上有个 SQL 慢查询,凌晨两点就收到了通知,排查起来也不慌。

现在我们平均每天能完成 3~4 次发布,新功能上线从原来的一周缩短到一天内搞定。虽然初期配流水线花了不少时间,但现在省下来的沟通成本和发布时间,早就回本了。