作者:溪洋、徐佳航
云原生的技术价值喻示着它就是未来,加入到一个具有可延续性生命力的开源社区,可以帮助我们更快地到达那里。
——徐佳航,KubeVela Maintainer,来自招商银行基础设施研发中心云平台及运维平台开发团队。
来自招商银行基础设施研发中心的徐佳航是 KubeVela 开源社区的一位新晋 Maintainer,目前在云平台及运维平台开发团队,从事企业级云原生应用管理体系的建设。
据徐佳航同学介绍,现在他所在的团队中有 15 位成员都在参与 KubeVela 社区的贡献。在他成为 Maintainer 前,已经有另外三位同学晋级为 Reviewer。
对 KubeVela 有些了解的朋友都知道,KubeVela 的本质是一个现代化的软件交付平台,由阿里云云原生团队发起开源,目前是 CNCF Sandbox 项目。它可以让你的应用交付在当今流行的混合、多云环境中变得更加简单、高效、可靠。KubeVela 部署工作流的背后就是开放应用模型 OAM ,帮助开发者一次编排、随处运行。在云原生领域,KubeVela 是最近两年表现最抢眼的开源项目之一。
但是,仅有 2 年多发展时间的 KubeVela,不得不说还很年轻。像招商银行这样处于金融行业的企业,对于业务架构的稳定性、可靠性要求十分严苛,对技术的选型和落地也很谨慎。投入这么多力量在 KubeVela 上,他们的需求和考量是什么?对于开源技术的态度是怎样的?KubeVela 在招商银行的云原生化进程中又发挥了怎么样的作用呢?
在最近和徐佳航同学的一次对话中,他回答了我们这些“好奇”。
“我眼中应用管理正在经历的变化”
今年是徐佳航从事 IT 研发工作的第 13 个年头,加入招行前主要在数据通信领域负责产品研发,其间做过无线通信协议,也做过做嵌入式汽车无线互联,还有过一段 3 年多的云存储领域创业经验。
技术深度和经验的积累,使他对未来 技术发展的走向建立了自己的“预测模型”。最近几年,他开始对云原生技术保持着密切的关注,比如云原生应用 DevOps、可观测性、分布式文件系统、API 网关等,特别是对基础软件层的开源技术很感兴趣。因为他观察到在基础设施云化后,应用研发和运维的工作需要解决一些新的挑战,比如:
- 基础设施云化后,应用研发、运维接触到的运行时越来越多样。如果不进行关注点的分离, 新的环境下带给应用开发和运维角色的认知和掌握成本都较高;
- 应用微服务化程度加深,架构高度分布式,使部署和运维工作更为复杂;
- 在 IT 系统日益复杂的背景下,为了保证应用和业务持续稳定,基于日志、链路、指标的应用可观测性渐成刚需。
如果去看 CNCF 全景图、 社区 Group 以及 Github 中快速发展的项目,也能够发现以上三点也是社区和业界在重点发力和活跃实践的方向。
(图片来自 CNCF Landscape:https://landscape.cncf.io/)
除此之外,身处金融行业,也让他对应用研发和运维的变化有着更强的体感 :“在金融行业, 做好应用管理挑战不小。比如,基础设施和应用运行时的复杂多样性更加突出,像 mainframe, bare mental, hypervisor, container, faas 都可能同时存在;同时,对于业务的连续性、 可用性、 安全性要求更高,因此对应用的可观测性(SLO)诉求强烈。”
这些体会也让他更加明确地看到“以应用为中心”的云原生架构在帮助业务提高效率、降低成本、加速创新等方面的特有优势,相信金融行业软件架构向云原生的升级势在必行。
“技术创新是解决问题的过程,也是技术人的使命”
在企业中推进技术架构演进、推进开源技术产品化等技术创新不是件容易的事情,金融行业更是如此。但实现的价值及其带来的成就感,驱动着徐佳航和他所在的团队也在享受着这种“打怪闯关”的过程,他说:“企业上云后,应用的开发和运维都在云里,如何解决应用管理面临的新挑战是很有价值的事情。另一方面,基于我们对云原生技术的价值分析,我们知道未来在那里,希望实现并达成,这个过程中不断收获到成就感,对我们来讲是很重要的驱动力”。
当然,在保证提供价值、解决问题的同时,更要控制由新的技术、架构给业务正常运转带来的风险,需要兼容现实,和行内现有的工具链融合, 确保平滑演进,徐佳航这样比喻 :“演进的过程好比一辆行进的汽车, 满载招行的业务应用。我们要做的是把应用平台从'燃油'变成'油电混动', 甚至'纯电',使这辆车获得更低的油耗、更充足的动力和更快的提速。”
关于如何在“传统燃料”与“新能源”过渡的过程中,使应用平台的演进能够更加平滑,从而不影响这辆满载业务的汽车正常运行,徐佳航分享了几点经验:
- 必须兼容现实,集成企业内工具,比如应用纳管及迁移
- 能够更好地解决以前的问题,比如应用依赖管理,VMService
- 提供高附加值能力,比如应用可观测性
- 最高效的新技术推广方式, 就是把该技术最佳实践落到工具(系统)平台内(内化后),让用户能够低认知门槛,快速上手解决用户的问题,比单纯地做布道更有效
汽车燃料从燃油到新能源的演进,是一个为了解决成本、性能、效率等问题的过程,也是汽车人为了让人们享受更好的生活环境而肩负的使用。技术演进的过程亦如此。
“有生命力的开源社区,能让我们更快地到达彼岸”
徐佳航所在的团队和组织对于开源的态度是积极拥抱的, 并且鼓励成员参与开源社区贡献:“毕竟在今天,企业和技术的演进已经离不开开源社区。在保证安全合规前提下,根据自身需求选择合适的开源项目,积极投入社区,可以实现共建多赢。”
在如何判断开源项目的价值时,徐佳航分享了一条核心原则:“我们非常关注一个开源项目及期社区的生命力和延续性。云原生的技术价值喻示着它就是未来,加入到一个具有可延续性生命力的开源社区,可以帮助我们更快地到达那里。”
(OAM/KubeVela 示意图)
他告诉我们,他和团队 2020 年开始在探索使用应用标准模型 OAM ,来解决应用的开发、部署和运维问题。同时,他们也在持续关注云原生应用领域,、开源社区(Operator, Crossplane, OAM, KubeVela)和公有云产品(DigitalOcean App Platform):“大家的思路本质都是‘围绕应用声明式描述, 解决应用管理问题’, 只是产品形态有所差异。其中 OAM 有设计理念,给出了应用 Spec 范式;KubeVela 也有落地, 作为其标准实现,我们就更关注这个社区的发展”。
(招商银行基于 KubeVela 的应用集成流水线)
在具体能力上,KubeVela 提供声明式的应用模型 AppFile、关注点分离的标准工作负载统一应用控制面、基于 addon 的开放架构、基于 workflow 编排应用部署能力、多集群纳管等,这是最吸引徐佳航和团队的,“我们主要应用 KubeVela 进行企业级云原生应用管理平台落地, 解决行内上云后应用全周期管理问题。上述能力和我们的诉求很贴合,特别是 v1.2 及其之后版本更加成熟”。
“没有一帆风顺就落地的开源项目”
作为一个发展不久的开源项目,KubeVela 在招行特定业务场景的落地很难达到“开箱即用”的程度,因此也需要一定的定制和改造,来补足社区版本在企业级场景下的能力挑战。徐佳航也和大家分享了核心的实施策略。
KubeVela 主要有 4 大核心部分,分别是 Vela-UX、Vela-APIServer 、Vela-Core 和 Addons,这个达到企业定制版本和社区版之间的平衡,招行基础设施研发中心主要进行了维护 Core、定制 UX、改造 Vela-APIServer、 扩展 Addons 四个方面的工作。
(招行应用管理平台架构与社区协同关系)
在上述改造过程中,徐佳航和团队同学也将这把 能力反哺给 KubeVela,重点围绕以下几个方面参与社区共建:
- Vela-Core:appRevison GC 策略,应用发布 workflow 及 policy,CRD 生效作用域等
- Addons:crontask, mysql, flink, 应用可观测 SLO 等
- 落地实践分享:招商银行企业级应用管理实践, 离线安装等
- 定制 UX 和 Vela-Backend 的改造正在计划贡献中
“希望看到更加多元的 KubeVela 社区成员”
2022 年是 OAM 正式开源的第三年, 也是 KubeVela 开源的第二年,在社区中,我们能看到越来越多的企业在关注、实践和贡献着 OAM 及 KubeVela。“开放、高效、有活力”,是KubeVela 社区和徐佳航最直接的感受:
“我们能看到最近一年,社区迎来了一波快速的发展。还记得第一次我和天元(孙健波,KubeVela 社区负责人,阿里云技术专家)交流就沟通了两个小时, 那次我们深度聊了我所在的招行基础设施研发中心团队对 OAM 和 KubeVela 的思考,很难得,很快我们就启动了共建,定期同步,保持着在人员投入和贡献上的持续性。在这个过程中,特别感谢 KubeVela 社区成员的协助,像殷达、悦达、楚岳、雾雾等同事, 都非常专业和热情, 使我们在社区一些工程实践中受益匪浅。”
成为 KubeVela Maintainer 之后,徐佳航最期待的就是看到社区参与方的多样性,通过大家的贡献来赋予 KubeVela 持续的活力。同时,他也正在通过以下计划的推进,来帮助更多开发者加入 KubeVela:
- 持续贡献招行企业实践, 帮助 Vela 更加企业级可用,通过这样的方式带动有更多的企业使用、贡献和分享实践
- 准备更多 Vela 优质的内容, 传播到国外技术论坛
- 参与组织线下 Meetup(成都站,也是佳航所在城市)
“在今年年底的 KubeCon 北美峰会上,我会和社区的同学一起分享 KubeVela 在招行的企业实践,希望将优秀的开源项目和真实的落地经验,分享给全球开发者,让 KubeVela 更多企业加速向云原生转型的过程”。这次聊天的最后,徐佳航向我们分享了这个小彩蛋,让我们一起期待吧!
(参与 KubeVela 社区的方式)
您可以通过如下材料了解更多关于 KubeVela 以及 OAM 项目的细节:
- 项目代码库:github.com/oam-dev/kubevela 欢迎 Star/Watch/Fork!
- 项目官方主页与文档:kubevela.io ,从 1.1 版本开始,已提供中文、英文文档,更多语言文档欢迎开发者进行翻译。
- 项目钉钉群:23310022;Slack:CNCF #kubevela Channel
- 加入微信群:请先添加以下 maintainer 微信号,表明进入 KubeVela 用户群:
戳此处:查看 KubeVela 项目官网!!