企业一站式DevOps平台建设实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 企业一站式 DevOps 平台建设实践
演讲人:郑嘉涛
全球敏捷运维峰会 广州站
2. 讲师介绍
和端点共同成长 7 年
一线业务研发背景,曾参与 Lazada Voyager 项目
目前负责端点 Erda 平台 DevOps 技术架构
全球敏捷运维峰会 广州站
3. 端点介绍
端点是一家通过软件驱动全产业链运转的平
台型公司。
我们尽力去做成三件事:
1. 把企业级软件做透、做全
2. 以 SaaS 的形式提供服务
3. 通过软件实现企业间的互联互通
全球敏捷运维峰会 广州站
4. 企业软件研发交付痛点
全球敏捷运维峰会 广州站
5. 端点过去怎么做?
还算不错的
集成部署平台
全球敏捷运维峰会 广州站
6. 我们需要重新思考 DevOps
企业研发交付是一个基础资源 + 应用系统 + 组织角色的大协同,核心框架是一站式平台 + 管理决策。
全球敏捷运维峰会 广州站
7. 我们需要重新思考 DevOps : 功能架构
全球敏捷运维峰会 广州站
8. 云原生探索之路
Docker
实现了一个基于 docker 的手
DC/OS
以应用为中心,面向开发者
K8s
架构全面升级
动部署平台 – 面向资源
2016
2017
全球敏捷运维峰会 广州站
2018
9. 云原生探索之路 : 应用为中心
全球敏捷运维峰会 广州站
10. 实践:端点线上商城方案
痛点:传统的开发运维方式无法支撑微服务项目
诉求 1:部署过程可验证
诉求 2:一键部署
诉求 3:持续交付
诉求 4:微服务治理和监控
诉求 5:项目/团队协同
全球敏捷运维峰会 广州站
11. 诉求 1:部署过程可验证
全球敏捷运维峰会 广州站
12. 部署过程可验证 : 商城部署架构
- 采用微服务架构
- 3 个基础微服务,6 个
能力微服务 和 3 个终端
微服务
- MySQL x 7 + redis +
ES + MQ
- 中间件的搭建维护、配
置管理成本高
全球敏捷运维峰会 广州站
13. 部署过程可验证 : 声明式文件
one yaml
• 关注点分离
• 部署过程可被验证
• 一键部署
• 开箱即用
• 隔离、安全加固
• 实例和资源共享
services:
trade-server:
resources:
cpu: 2
mem: 2048
deployments:
replicas: 2
ports:
- port: 8080
envs:
ENABLE_ALIPAY: true
k8s multiple yaml
deployment.yml
kind: Deployment
service.yml
kind: Service
VS
addons:
mysql:
plan: mysql:basic
options:
version: 5.7.23
create_dbs: trade_db
全球敏捷运维峰会 广州站
ingress.yml
kind: Ingress
mysql.yml
???
14. 诉求 2:一键部署
全球敏捷运维峰会 广州站
15. 一键部署: pipeline
1. stages / action 两级结构
• 极简的配置语法
2. action != 脚本
• 高度封装的功能逻辑,参数化使用
3. 无限扩展
• 丰富的通用 action,开箱即用
• action 扩展规范,任意扩展
pipeline.yaml
stages:
stage:
- git-checkout:
stage:
- buildpack:
params:
context: ${git-checkout}
stage:
- release:
params:
services:
trade-server: ${buildpack:image}
erda_yaml: ${git-checkout}/erda.yaml
stage:
- deploy:
params:
release_id: ${release:id}
全球敏捷运维峰会 广州站
16. 一键部署 : 具体实践
构建完成
微服务成功部署
Step 1
拉取代码
Step 2
代码扫描
Step 3
单元测试
Step 4
编译打包
全球敏捷运维峰会 广州站
Step 4
应用部署
17. 一键部署:批量部署
全球敏捷运维峰会 广州站
18. 一键部署:代码管理
1. 分支和环境绑定
2. 只有主干分支的代码才能够被部署到测
试环境
3. 强制开发人员基于主干创建功能分支
4. 所有功能只有经过主管审查才能够被合
并进入主干
全球敏捷运维峰会 广州站
19. 诉求 3:持续交付
全球敏捷运维峰会 广州站
20. 持续交付: CD pipeline
on:
runtime:
status-change-to:
- UP
workspaces:
- TEST
stages:
stage:
- auto-test:
...
stage:
- deploy:
params:
workspace: STAGING
stage:
- manual-review:
...
stage:
- deploy:
params:
workspace: PROD
全球敏捷运维峰会 广州站
21. 接口测试:管理是最大的挑战
场景集 – 场景 – 接口
全球敏捷运维峰会 广州站
22. 接口测试: API-first
API 设计->开发->测试->发布->分析->集成
接口设计先于实现
接口变更及时通知测试
接口设计和自动化接口测试结构
化关联
全球敏捷运维峰会 广州站
23. 诉求 4:微服务治理和监控
全球敏捷运维峰会 广州站
24. 以线上商城为场景,我们如何保持持续运营?
全球敏捷运维峰会 广州站
25. 微服务治理和监控:APM
全球敏捷运维峰会 广州站
26. 诉求 5:项目/团队协同
全球敏捷运维峰会 广州站
27. 项目/团队协同:事项追踪
全球敏捷运维峰会 广州站
28. 项目/团队协同 – 异步式工作
1. 工作被严重打乱
2. 切换成本高昂
1. 线性工作
2. 更能够专注
全球敏捷运维峰会 广州站
29. 项目/团队协同 : 协同的自动化
全球敏捷运维峰会 广州站
30. 端点 SRE 实践心得
产品越来越完善,“运维”做的事情越来越少。
是不是不需要运维了?
全球敏捷运维峰会 广州站
31. 端点 SRE 实践心得
运维不会消失,但纯运维团队会逐渐淘汰。我们从一开始就没有建立“运维”团队!
全球敏捷运维峰会 广州站
32. 端点 SRE 实践心得
https://github.com/erda-project/erda
全球敏捷运维峰会 广州站
33. THANK YOU !
全球敏捷运维峰会 广州站