嘉宾:郭至为 整理:张雪蕊
出品:CSDN云原生(ID:csdn-cloud)
Wojciech Urbański指出,在当今的专业IT媒体中有一个非常突出的话题,那就是在软件生命周期中的“第0天/第1天/第2天”。
2022年3月12日在CSDN云原生meetup长沙站直播中,中国移动金融科技公司云团队的郭至为关于生产化集群的Day2运营思考做出了分享。
点击查看完整视频
Day2运营的意义
Day2来源于云时代软件生命周期中的一个概念,指软件或应用系统在上线、服务于生产以后不断的优化、运营,一直到生命周期终结的一长段时间。下图引用于Jimmysong老师博文的一张图片,Day2并不特指某一天,运营的过程包括了系统上线一直到系统终结的整个生命周期。
在IT领域,从最左边Day0,指应用系统从需求到架构到设计的阶段,还只是停留在纸面;到Day1阶段是开发,部署以及配置应用系统,还包括一些基础设施、外部服务等;到Day2是系统上线提供给客户的时间阶段,这个阶段更多精力放在维护监控、优化系统上,最关键的是分析系统的行为并作出反应。这个周期会一直持续到整个系统生命周期的终结。
K8s平台的生产化
结合上文提到的Day2概念,K8s平台生产化指K8s集群从生产就绪一直到生命周期结束的整个时间。随着技术生态的快速发展,云原生已经进入了大爆发的时期,主要的开源项目已经进入了成熟阶段,这大幅降低了企业应用这些系统的门槛。得益于K8s的优秀设计,极大的降低了开发者对于庞大复杂的技术生态的心智负担,甚至通过几条简单的指令,就可以在10分钟之内搭建起一套生产就绪的K8s集群。
然而Day2的运营还有非常多的工作要做,比如围绕K8s集群搭建pass平台。K8s核心的功能是容器的编排,并且提供了非常丰富的扩展接口,比如传说中的三大件计算存储网络csi、cri、cni,以及cpi(provider),甚至目前比较火的Service Mesh技术,也有相应类似的通用接口(SMI);还有device plugin等接口,可以通过web hook扩展K8s的认证机制;以及admission control准入控制,可以通过调度框架扩展K8s调度器;甚至还有极其灵活的operator的框架扩展能力,更进一步还可以通过API聚合层实现自定义的API向K8s暴露。
由于接口和插件模型的广泛采纳,原来K8s里核心的功能逐渐被移除到out of tree项目,与核心的项目代码解耦,而pass平台却越来越依赖于扩展插件的能力构建平台级的服