在金融行业数字化转型的驱动下,国有银行、股份制银行和各级商业银行也纷纷步入容器化的进程。
如果以容器云上生产为目标,那么整个容器云平台的设计、建设和优化对于银行来说是一个巨大的挑战。如何更好地利用云原生技术,帮助银行实现敏捷、轻量、快速、高效地进行开发、测试、交付和运维一体化,从而重构业务,推动金融科技的发展,是个长期课题。
因此,twt社区主办了主题为“银行高并发交易类场景下,容器云架构如何保障高性能、高可靠性“的线上交流活动,吸引了众多来自银行一线的技术大咖参与交流。我们将干货整理出来,以“金融云原生漫谈”系列文章的形式陆续呈现。
很多银行会选择自建容器云平台,或者直接采用成熟的K8s发行版,不管是哪种方案,容器云如何与银行自身的持续集成系统、测试服务系统,或者DevOps流水线进行有效对接,更好地提升IT系统产品研发效能和交付效率,是值得我们去深入思考的问题。
众所周知,传统瀑布式开发动辄耗时数月甚至数年,无法满足业务快速变化和竞争的需求,只有引入持续交付和 DevOps,掌控从开发、测试到运维的应用全生命周期,才能打造出快速迭代、与业务同频的应用,为企业创造盈利的价值链。
云原生技术的出现,为DevOps插上了翅膀,可以更加充分地利用云原生基础设施,基于微服务架构体系和开源标准,提升持续交付和智能自运维的能力,从而做到比传统DevOps更高的服务质量、更低的开发运维成本,让研发专注于业务的快速迭代。
过去的几年间,灵雀云有幸服务了超过半数的全国性股份制银行和众多商业银行,在这些银行业的云原生实践中发现,银行在设计容器云平台的时候,可以通过以下几点有效地提升各类应用产品的研发效能和交付效率:
如何利用容器云提升研发效能
首先,银行自身的持续集成系统、测试服务系统或者DevOps流水线工具,我们建议尽可能使用开源工具来建设,目的主要是让整个产品研发的工具链体系和开发流程更加灵活,目前我们看到有大量中小银行都在采用开源工具链来进行DevOps工具体系的建设。
同时,建议引入一些开放的可以整合这些开源工具链的产品,例如灵雀云的DevOps开放平台,充分尊重银行原来使用的开源工具链,通过工具链集成的形式简化银行DevOps工具体系建设的复杂性,统一DevOps工具链全链路管理能力。
其次,改变应用的交付方式。原来传统的以二进制Jar包、War包为制品的交付方式,最好统一成以标准容器镜像包为制品的交付方式进行交付,需要注意的是,要严格规范业务应用运行的中间件版本或者应用运行环境等,例如限定JDK的某几个常用版本,Tomcat的某几个常用版本等,同时尽可能使用轻量化、可容器化的中间件作为业务应用的运行环境,例如tomcat、nginx等,不建议使用websphere、weblogic这种比较重的并且对于容器化不够友好的中间件产品。
最后,建议引入Service Mesh这种下一代微服务网格技术,简化产品研发的人力资源投入,提升整个产品的服务治理和全局可视化管理的能力。
如何利用容器云提升交付效率
首先,容器云平台一定要提供开放的API对接能力,目前市面上主流的容器云平台都是基于Kubernetes技术发展出来的,所以Kubernetes的原生对接能力是非常重要的;
其次,银行自身的持续集成系统、测试服务系统或者DevOps流水线需要具备和容器云平台对接的能力,例如这些敏捷开发工具可以直接调用Kubernetes的API来自动进行应用的持续发布;
另外,建议容器云平台最好可以提供一部分DevOps CD的功能,在银行现有敏捷开发工具无法进行容器云平台API对接的情况下,可以通过例如基于制品更新为触发条件的自动化持续发布能力。
灵雀云在银行的云原生转型实践上已经有了很多成功的落地案例,银行可以通过灵雀云的银行业容器PaaS解决方案,搭建自主可控、自下而上的云管理技术平台,实现IT基础设施从硬件化IT到软件化IT的转变,更好地提升产品研发效能和交付效率。