平台方面,首先要有一个友好的容器管理平台,便于开发和运维人员使用,例如友好的dockerfile编写,友好的镜像制作功能,此平台可以基于swarm或者k8s改也可以采用商业化产品。其次要有一个支持镜像管理,利用镜像发布部署的的devops平台,另外该平台需要有ci/cd,监控告警,自动化运维能力。
收起首先基于devops的平台支撑了哪些业务、面向了哪些客户,
比如
容器镜像管理及平台:
主要牵扯到devops, 和几乎所有会用到的镜像的业务及人群;镜像分为 需要保护的基础镜像, 可清理的集成测试的镜像, 可能需要保护的release版本镜像等。当然,除了基础镜像外,其他镜像如果都可以通过代码某次提交能重新打包出相同镜像的,可以只保护基础镜像
镜像管理平台,业界比如Harbor等镜像管理平台都是在官方Registry之上加入管理界面、权限、镜像同步的功能, 推荐不同关键使用不同 的镜像Registry做隔离,之间必要repo可以采取同步保持一致
构建打包及平台
Dockerfile的编写,基本的命令需要培训给开发人员/测试人员,每个repo都需要有一个Dockerfile
镜像编译: devops负责准备ready, 实现方式宿主机打包或者docker in docker 、打包集群等可借助Jenkins及相关插件 检测代码仓库提交并自动触发编译打包
代码质量及平台
DevOps环节中的静态代码扫描和单元测试结果等由测试人员负责,开发人员也是关心的
静态代码质量平台比如Sonarcube, 不同技术栈的单元测试结果评价方式可自己定义
服务部署及扩缩容、升降级
可以利用业界容器编排工具实现服务的部署,还需要考虑到集群的划分,是否需要SLB以便外网访问
服务的升降级,牵扯到新旧版本应用上下线及相关配置、相关中间件系统的配置
发布策略有蓝绿、灰度等,企业结合自己业务特点选择,不同策略牵扯到的人员也有略不同
服务日志和监控
DevOps需要将日志和监控系统分环境搭建好,并能提供友好的日志查询给开发测试使用
执行监控指标已反馈业务人员,监控告警以多种方式及时给予devops及相关人员
APM和链路跟踪也需要其他组件实现而且是侵入代码的,需要开发人员和DevOps合作
收起