# 应用运维
DevOps 涉及整个研发体系。包括:CI/CD、健康监测、日志收集、性能监控、链路追踪、服务治理(负载均衡/流量管控/熔断等)
# 集群管理
当前采用 Rancher (opens new window) 社区版本维护k8s集群
# 持续集成与持续发布(CI/CD)
# 持续集成(CI)
# 流程(pipeline)
- 代码提交 - [gitlab & helm]
- 应用构建 - [docker]
- 应用单元测试 - [各业务项目自定义,可选: JUnit]
- 制品仓库推送及代码安全扫描 - [harbor]
- 应用部署 - [helm & k8s]
- 自动化测试 - [各业务自定义,接口自动化 & UI自动化]
- 性能测试 - [各业务自定义, 可选: JMeter]
- 安全测试 - [待完善]
如有必要:
- 人工验证
- 构建应用最终发布包 - [helm]
# 持续部署(CD)
结合目前生产实际情况及需求,暂不考虑持续部署
一般应用部署流程:
- [开发侧] 提供构建应用最终部署包 & 应用配置管理及必要文档说明 - [helm]
- [运维侧] 发布应用 - [helm & k8s]
# 日志
# 监控
这是选用当前业界广泛采用的 prometheus
# 资源监控(Metric)
# 链路追踪(Tracing)
这里使用 CNCF
社区提出的分布式链路追踪规约 Opentracing (opens new window) 的开源实现 jaeger (opens new window),可同时兼容 Java 技术栈下广泛采用的 zipkin (opens new window) 传输协议;
客户端方面为最好限度保证拓展性采用opentelemetry (opens new window)框架下各语言下的集成库;
# 性能监控(APM)
# 发布策略
- 滚动发布
- 蓝绿发布
- 灰度发布