九州官方网站 版权所有 2003-2023
-
您的位置:
- 网站首页
- > 九州(中国)科技有限公司官网
- > 鲸品堂
您的位置:
建设背景:业务发展变化快 随着政企等新兴业务的拓展,订单量增长迅速,原有应用+数据库的架构面临着很大的压力,一方面,烟囱式的应用难以快速横向扩展,另外一方面,需要引入新的数据组件缓冲数据库压力。 秒杀、直播带货等新兴业务带来订单量在短时间内的突增,如何应对短时间内的高峰对主机资源的要求又能尽量降低扩容成本?需要考虑在系统过载的情况下能对自身的服务和外部的请求都进行取舍,保障核心服务的稳定性,实现系统的韧性。 为了抢占新市场,需求交付周期越来越短,版本上线愈发频繁,传统的手工作坊式的研发交付模式已经不能满足业务交付要求了,需要在DevOps理念下引入研发效能工具体系。 订单中心系统日益庞大,涉及到复杂的技术组件和架构,特别在面向政企业务支撑过程中,非标准、长流程及多系统协同的场景非常普遍,一旦订单中心自身或周边系统异常,出现各种组件的连锁反应,产生大量的告警,如何快速定位问题根因,如何实现系统自愈、实现业务层面无感知,如何以可视化的方式立体化呈现整个系统、实现数字孪生。 问题解决之道:拥抱云原生 全面云化: 应用完成容器化改造,基于云原生PaaS平台,适配磐基底座,使用云原生的技术组件。 微服务: 领域驱动设计指导微服务改造,订单中心拆分成若干个微服务线,构建“管、诊、治”微服务治理体系,提供可视化服务编排能力。 DevOps: 构建研运一体化的工具体系,实现订单中心的敏捷研发、快速交付、缩短迭代周期,快速响应客户需求。 智能运维: 实现多维监控与告警,业务与系统的监控联动和统一展示,支撑故障的快速定位与恢复,实现常态化故障攻防演练。 云原生总体架构 基础设施层:订单中心运行于虚拟化的基础设施上,平台PaaS组件运行在虚拟机上,业务应用运行在容器上。 数据层:订单中心大量采用云原生PaaS组件,包括redis、MQ、ElasticSearch等,降低数据库压力的同时保证数据层的高可用。 应用服务端:基于微服务化构建了多条微服务线,通过构建订单中心的微服务网关实现多条微服务线的统一服务治理,确保订单中心的高可用。 应用客户端:多渠道多类型的客户端访问请求,先通过Nginx再进入订单中心。订单中心内部部署了生产中心、灰度中心和灾备中心,Nginx主要用于多中心之间的切换。 统一监控运维:构建研运一体化工具实现敏捷研发、快速迭代,通过统一日志和运维监控实现业务和系统的多维统一监控和展示,通过调用链实现问题的快速定位。 云原生应用实践 服务熔断:订单中心的服务可以配置,当其下游服务单位时间内调用失败次数达到阀值时,防止整个系统出现连锁反应甚至雪崩,暂时停止对该服务的调用。 服务限流:当入口请求 QPS 超过服务配置的阀值时,如瞬时出现高并发订单查询请求时,订单查询服务可以配置对某些渠道的查询请求进行限制,以保证本服务不被压垮。 服务降级:如上图所示,当订单中心的服务压力达到一定程度时,订单中心配置了服务降级策略,对容忍度高的服务进行降级,如对查询服务降级,以保证订单创建服务等核心服务的稳定性。 灰度路由切换:新版本在灰度中心发布后,调整路由策略,切换一部分业务流量到灰度中心上,运行2天验证没问题后才正式发布到南京中心。 多中心缓存同步:灰度发布期间,两个中心间的缓存数据需要同步,通过MQ相互通知机制把变动数据加载到各中心缓存,并通过数据库日志、消息监控等额外手段保证多中心缓存同步的正确性和一致性,实现了生产中心和灰度中心的无缝切换。 数据层版本控制:数据库表中都有版本号字段,可以识别新旧版本涉及的数据,可用于问题定位和版本回退,实现了数据层的灰度发布。 通过统一日志采集实现日志监控及调用链输出,通过调用链快速定位问题。 具备业务和系统的综合监控展示分析,实现业务和系统的监控联动,便于快速定位异常原因。 支持告警的闭环管理:支持告警的归集、通知相关责任人、告警超时提醒、问题处理和记录、告警恢复确认、告警关闭。 运维人员通过体系化的运维工具,可在5分钟内快速找到问题根因并处理之,极大缩减整体故障修复所需时间。 场景说明:模拟部分节点cpu满载,导致cpu平均使用率保持高水位 演练效果:系统监控到cpu负载高后,自动水平扩容节点,直到cpu负载保持正常水平 场景说明:模拟部分节点的服务延迟,导致服务整体时延偏高 演练效果:系统自动水平扩容节点,直到时延回落到正常水平 场景说明:模拟部分节点因故障导致服务终止,实际停掉部分节点 演练效果:系统发现部分节点停机,自动拉起新的Pod节点 云原生建设带来的价值 实现业务系统的敏捷研发,特别是政企长流程多样化业务的快速支撑,需求平均上线周期缩短50%。 通过在线灰度发布实现版本的提前验证,实现了生产和灰度的无缝切换。 通过实现版本的快速发布上线、缩短迭代周期,一周上线一个版本。 每月研发产能增加50%。 订单创建性能提升到5万笔/分钟。 订单查询性能提升到3000笔/秒。 订单中心具备负载均衡能力,包括过载的水平扩缩容能力,保证应用自身可靠性。 实现故障隔离和恢复:应对故障,通过主动控制渠道接入点,将交易接入到正常运行的接入点,实现故障的完全隔离。通过故障点的自动重启和扩缩容实现故障的恢复。 在系统压力达到一定程度时,能有效实现限流和高危熔断/降级处理。