在金融机构面临数字化转型的今天,云原生作为一种新型应用程序开发和部署的方法论,通过容器化和微服务架构实现了对用户数据和敏感信息的安全保护,可以实现系统的快速部署、资源的弹性利用和故障的迅速恢复。云原生满足了快速创新与业务拓展的需求,为金融机构应对加剧的行业竞争、愈发个性化的金融服务需求及信息安全等多方面挑战,提供了技术支持。
在云原生技术与实践快速发展的当下,面对复杂多样的理念和技术组合,该如何选择适合自己的云原生实施路径?如何让技术纳入自身架构,真正释放业务价值?
大数信科自2017年启动微服务化改造以来,面对设备资源和性能限制、管理和维护成本激增、自动化难度提升等实施挑战,通过技术引进与自主研发相结合的方式,探索出信贷业务领域落地云原生的路径和一些方法,并逐步形成完整的云原生架构。全面的云原生切实支撑了快速的技术迭代与产品创新应用,助合作机构更加高效、安全地拓展业务,大数的云原生路径实践或能为行业发挥云原生的业务价值提供一些参考。
01
云原生初体验之痛点
金融信贷业务复杂性和安全性要求高,微服务架构将传统的单体应用拆分为多个独立的服务,模块化和解耦特性使得系统灵活和安全程度大大提高,服务的水平伸缩也能够进一步提高系统的可用性和稳定性。
但业务系统的微服务化改造,随之而来的是系统数量的剧增,这对管理成本、资源成本、自动化都带来新的挑战。
系统管理成本增加
服务数量增加:随着系统微服务化,需要更多的人力资源来管理和维护大幅增加的服务数量。
服务间依赖复杂性:微服务架构中,服务之间存在复杂的依赖关系,需要更多的精力对其进行管理和解决。
部署和运维复杂性:微服务架构中,每个服务都需要独立部署和运维,增加了部署和运维的复杂性。
服务监控和故障排查:微服务架构中,需要对每个服务进行监控和故障排查,需要更多的工具和技术来支持。
硬件资源成本增加
服务器和基础设施增加:微服务架构中,每个服务都需要独立的服务器和基础设施支持,因此增加服务器和基础设施的需求。
开发和测试环境增加:微服务架构中,每个服务都需要独立的开发和测试环境,增加开发和测试环境的需求。
数据存储需求增加:微服务架构中,每个服务都可能需要独立的数据存储和管理,增加了数据存储和管理的需求。
自动化难点增高
配置管理复杂性:微服务架构中,每个服务都需要独立配置,从而增加了配置管理的复杂性。
系统日志管理复杂性:微服务架构中,每个服务都需要独立监控和日志管理,从而增加监控和日志管理的复杂性。
弹性伸缩和负载均衡需求增加:微服务架构中,每个服务都需要根据负载情况进行弹性伸缩和负载均衡,从而增加弹性伸缩和负载均衡的需求。
02
全面拥抱云原生
发展的问题需要进一步发展来解决。通过不断提升系统云原生化水平,在引入新兴技术的同时,大数信科结合自身需求进行一系列研发创新,逐步实现系统及应用的全面云原生,有效解决了系统微服务化带来的痛点。
Docker & Kubernetes
Docker和Kubernetes是云原生应用开发和部署的核心技术。Docker打包应用为独立容器,确保一致性;Kubernetes实现弹性伸缩和负载均衡,简化部署和管理。两项技术带来了一系列重要收益,包括:一致性、资源利用率提升、弹性伸缩、服务发现和负载均衡、自动化部署和更新、容器编排和管理、故障恢复和容错能力等。
CICD持续集成闭环管理 & 自动发布
CICD 即持续集成(Continuous Integration)和持续交付(Continuous Delivery)。在使用微服务架构初期,应用传统CICD技术,带来了两个代码管理问题。
首先,代码管理中存在不连续性问题,高频灵活的代码调整可能会绕过测试环境直接合并到生产分支,导致潜在问题上线。为此,我们实施了创新的CICD闭环管理。通过预生产环境镜像文件直接上线生产环境,确保在上线之前经过了完整的测试验证,实现了开发到测试到生产的闭环管理。让系统迭代流程更严谨,运行更加健壮。
其次,大量的服务上线导致了代码、DB脚本和配置文件的批量发布时间延长,增加了生产风险。为了解决这一问题,大数科技人员独立研发了一套全自动生产发布平台。该平台实现了应用代码、DB脚本和配置文件的全自动发布,并对容器服务中的优雅发布功能进行了调优,从而使系统发布更加稳定。经验证,该系统在版本发布过程中能够正常响应每秒500次以内的请求。同时,发布操作时长从原来小时级缩短到了秒级,大大节约了发布时间,效率提升的同时降低了手工操作作风险,提升了系统的稳定性。
独立研发的全自动生产发布平台
APM链路管理系统
微服务的应用形成了一个复杂的服务调用关系网络,人力无法完成对链路图的维护,系统调用关系的监控和故障分析也面临挑战。通过采用APM链路管理系统,满足微服务链路调用可视化的运维需求场景,使得应用链路的可观测性和问题追踪变得更加容易。
日志管理平台
随着系统数量的增多,传统的登录主机查询日志的方式不再适用。大数信科采用日志管理平台集中管理分散在不同系统和应用中的日志数据,通过统一的查询入口,能够快速查询和分析各类日志数据,加快了日常问题的排查和解决。
系统配置管理服务
服务系统数据的增加催生更多的版本和配置的变更。大数信科引入了统一配置管理平台,取代低效且易出错的传统的配置维护方式,对服务配置进行统一的管理,同时通过自研的配置变更系统实现了配置的全自动修改,实现降本增效。
03
信贷科技业务乘云而上
技术升级驱动业务变革。云原生的不断深化应用为大数信科的信贷科技业务带来更快的创新能力、更敏捷的技术迭代、更宽广的业务边际、更优质的用户体验。
敏捷开发和快速上线:容器化和微服务架构,使得应用的开发和部署更加敏捷和灵活,版本发布实现一天一版本灵活上线,合作机构交付效率提升三倍,助力合作产品快速上线,功能更新及业务的迭代速度倍增。
弹性伸缩和高可用性:应用的容器化部署和云上运行,能够充分利用云平台的弹性伸缩和自动化管理功能。根据业务量大小的变化,可以自动调整应用的资源分配,保证系统持续稳定的输出服务。2022年,出现因厂商服务故障导致生产主机DOWN机的情况,高可用的技术方案保证了业务系统仍然安全、稳定运行,业务正常开展并对故障无感知。
成本优化和资源利用率提升:云原生应用的容器化部署可以实现资源的高效利用。通过动态调整容器的数量和资源分配,可以根据实际需求来合理使用云平台提供的计算和存储资源,避免资源的浪费。
强大的生态系统支持:云原生应用可充分利用云平台和开源社区提供的丰富的技术和工具。例如,可以使用云平台提供数据库、缓存、消息队列等服务,来快速构建应用的基础设施,帮助开发人员和运维人员更好地构建、部署和管理云原生应用。
依托业务发展需要,大数信科的云原生实践经历了以微服务业务架构为导向,不断深化容器等基础架构建设的过程,形成了全面云化的开发、运维体系,展现出业技融合、互构的发展特点。
以完整的云原生生态为支撑,大数信科将助力金融机构快速打造新产品、上线新功能、满足金融级安全需要,在竞争加剧的信贷产业中,高效、安全地拓展市场,建立竞争优势。