东方证券:我们如何成功实施微服务(3)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 东方证券:我们如何成功实施微服务

功能模块

星辰服务治理平台包含以下功能模块:

(1)服务治理

星辰服务治理平台支持对 gRPC、Spring Cloud、Dubbo 三种微服务框架进行管理,如图 5 所示,支持查询注册中心维护的服务实例信息,支持通过控制台配置注册中心、访问控制、主备、分组、黑白名单、流量控制、熔断等信息。

图 22 服务治理功能

图 23 服务间调用

(2)服务地图

服务地图将项目与项目、服务与服务之间的调用关系和调用量通过拓扑图的形式进行展示,如图 6 所示。系统架构师可以从服务地图提炼出全公司的核心系统拓扑图,找出不合理的环形调用链;运维人员可以从服务地图掌握核心系统所依赖的上游系统,并给予核心系统同级别的重点保障。当预期面临流量猛增时,服务地图还可用于流量预估,因为从客户端等入口预估流量最准确,进而可以沿着服务地图下沉计算出各个微服务分摊到的流量,协助后台系统制定扩容预案。

图 24 星辰服务治理平台服务地图

(3)链路跟踪

在微服务架构中,一个用户操作涉及到多个微服务的协同才能完成,在业务调用链路上任何一个微服务出现异常或者网络超时,都会导致失败。通过链路跟踪,我们可以很方便的看到每个请求各个环节的耗时以及异常,帮助我们对系统进行优化。星辰的链路跟踪功能基于 Google 的 DApper 论文 [11] 实现,在系统入口接收用户的请求后,会为用户的请求分配一个 TraceID 用来唯一标识调用链。TraceID 会跟随远程调用消息传递到下游服务,直到整个链路的节点都拥有了 TraceID,通过 TraceID 可以串起这个请求的完整调用链路。

图 25  调用链关系

(4)文档中心

文档中心对 ProtoBuf 格式接口定义文件进行自动解析,提供技术人员查询各服务注释信息与接口定义的功能。我们把文档中心看作是一个服务集市,技术人员在实现一个涉及通用模块或第三方应用的功能前,可以像逛集市一样来文档中心查询接口的详细信息。未来我们还将强化文档中心的交互沟通功能,增加问答与评论功能,打通各服务上下游的交流渠道。

图 26  文档中心

(5)统计分析

统计分析模块支持对服务、实例、端点的性能监控,包括响应时间、可用性、吞吐量等;支持数据大屏,全景展示当前所有服务的运行状态;记录用户请求处理时间,分析出被调用服务的性能;记录服务响应时间,并展示响应时间最长的数个服务,即慢服务列表。

图 27  平台统计分析

(6)告警中心

告警中心支持基于监控数据的告警规则设置,并以自定义的方式发出告警通知。

图 28  告警设置

(7)框架统一纳管

为了更好的支持企业架构转型,也便于各业务方系统内部有更多的微服务框架供选择,晨辰服务治理平台同时对多种微服务框架进行了统一纳管,在支持 gRPC 服务的基础上,增加了 dubbox 及 Spring Cloud 框架。

图 29  多框架支持

转型实践数字化转型

多年来,随着东方证券各类业务的持续发展,数百套业务及支撑系统在线运营,各类应用系统间开始呈现复杂的依赖关系,系统运维的复杂度急剧增加。特别是由于以往系统建设主要由各厂商开发等因素的影响,东方证券内部存在大量的异构业务系统,对外暴露的接口也呈现多种形式,各厂商都有各自私有协议,且存在有 SPX、T2、Web Service、REST、TCP 等各类型异构接口,进一步增加了系统开发、运维的难度。基于这些原因,东方证券从公司战略和技术管理上进行了变革。2018 年初,公司提出了“数字化转型”的战略目标,并将“增强金融科技应用”列入公司的六大发展战略任务之一,这促使我们以更加积极和开放的心态发展科技。

与此同时,东方证券同步在企业技术架构上制定了大中台战略,这也是公司数字化转型中的三个核心战略之一(另两个为:核心自主研发、重构企业技术架构),旨在通过架构转型为公司科技工作的长远发展打下坚实基础。为了推进架构转型工作,2019 年初,东方证券成立了以首席信息官舒宏总担任主任的架构委员会,旨在通过架构委员会重点进行企业架构转型的工作,同时创建了金融科技创新研究院,以整合东方证券及子公司的技术资源、倡导以研究为主导的技术应用为主要任务。

架构标准

为了建设各业务方遵循标准进行开发的能力,让企业架构建设有据可依,东方证券架构委员会制定了架构标准的决策流程及机制,通过架构标准去约束各系统相应开发实践,2019 年 5 月,我们通过服务治理平台接入规范的架构标准,确定了企业技术架构转型的核心框架,各系统采用统一的接口调用方式,要求系统间调用必须使用 gRPC 提供服务,系统内部可以采用 gRPC/dubbo/Spring Cloud 三种框架,支持东方证券 IT 技术架构从传统架构向微服务为核心的现代化面向服务架构全面转型。

图 30  服务治理架构决策

大中台战略

为了实现数字化转型,东方证券制定了三年架构规划,通过架构规划及落地实施,打造行业领先的 IT 架构和一流的 IT 队伍,形成公司科技发展的竞争力,架构规划中有七大重点任务,其中一项是建设强大的业务共享中台,提炼核心业务流程,为前端产品线提供业务共享能力,给前台提供强大的“炮火支援”能力,确保“厚中台,薄应用”的成功落地,。

按照证券行业的领域特点,我们将整个中台领域划分为产品、账户、财富、交易、资产、行情、资讯、日志、认证等中心,而服务治理框架也成为了整个业务中台的核心基础设施。

图 31  东方证券大中台战略

开源共享 / 行业标准

东方证券 gRPC-Nebula[9],本身就是在站在开源 gRPC 的巨人肩膀之上发展而来,为了更好的反馈社区,2019 年 6 月中旬,东方证券宣布开源 gRPC-Nebula 服务治理框架,开源地址:https://github.com/grpc-nebula,目前社区已建设了社区决策委员会,初期拟设 7 名委员,含 1 名委员会主席,设有专人进行 GitHub 代码的跟踪、维护、解决。同时,委员会会定期组织研讨和常态化沟通、社区技术交流、协调开发力量进行社区开发、社区筹款、审议版本 maintainer 的版本和功能集、进行社区委员会选举等工作。社区将秉持金融科技创新,对外技术输出的原则,致力于成为行业内首家基于 gRPC 可治理 RPC 框架下的开源社区,并获得了 2019 年信通院 OSCAR 尖峰开源技术创新奖(基于社区开源二次开发)及第四届中国优秀云计算开源案例一等奖。

同时整个证券行业长期以来在技术架构领域没有统一标准,各家厂商都有自己相应的技术框架,从而造成了整个行业一直面对的异构化难题,gRPC-Nebula 开源也旨在为整个行业提供参考建议,同时,我们也积极加入了深交所技术产品联盟,推广 gRPC-Nebula 在行业内的使用,希望能达成行业共识,形成统一技术标准,大幅降低行业各系统间对接成本。

实践成果

从 2019 年初开始,东方证券进行服务治理框架研发工作,截止 2020.9 月,gRPC-Nebula 框架 Java 语言共迭代 14 个版本,C++ 语言共迭代 8 个版本,平台迭代了 4 个版本,较好的支撑了业务各类的需求。

同时,东方证券在内部大力推广服务治理框架及平台的使用,截止 2020.9 月,共接入各类应用 46 个,项目 99 个,服务数 369 个,方法数 3125 个,日承载各类请求量已达到数千万级。

从系统维度来看,东方证券服务治理框架已接入内部东方赢家 App、私行 App 通达信网上交易、同花顺机构版、东方睿、东方大脑、智能投顾、大营运平台、业务中台(财富、交易、产品、账户、资产、行情、资讯等)、资产配置等核心系统,从厂商维度来看,微软、恒生、金仕达、新意、顶点、通达信、同花顺等核心厂商及自研团队也已按照架构标准接入服务治理框架及平台,实践成果非常明显。

图 32 服务治理平台实践成果

总    结

本文探讨了企业架构领域的关键技术,并详细介绍了东方证券服务治理项目的建设成果与实践经验。东方证券在企业架构层面制定了大中台战略,旨在通过业务架构转型为公司科技工作的长远发展打下坚实基础。作为大中台战略的核心组成部分,服务治理项目的建设,是公司提高金融科技核心竞争力的重要突破。gRPC-Nebula 框架和星辰服务治理平台已经应用于东方证券业务中台(财富中心、交易中心、账户中心、产品中心等)、东方赢家 App、私行 App 和东方睿机构交易产品线等数十个项目,同时实现了各微服务框架 (gRPC-Nebula/dubbox/Spring Cloud) 的统一纳管,为业务线开发提供了更多的开发框架选择,随着平台生态的不断优化和发展,未来将在内部全面推广,服务于更多产品线和用户,为公司 IT 治理规范和体系化架构建设做出更多贡献。

参考文献

[1]Fowler M, Lewis J. Microservices. Viittattu, 2014, 28: 2015

[2]Fotis Aisopos, Konstantinos Tserpes, Theodora Varvarigou. Resource management in software as a service using the knapsack problem model.  International Journal of Production Economics. 2013 (2)

[3]Thones J. Microservices. Software IEEE, 2015, 32(1): 116-116

[4] 李贞昊. 微服务架构的发展与影响分析. 信息系统工程, 2017(1): 154-155

[5]https://dubbo.io/

[6]https://thrift.apache.org

[7]https://grpc.io/

[8]https://spring.io/projects/spring-cloud/

[9]https://github.com/grpc-nebula

[10]Hunt P,Konar M,Junqueira F P, et a1. ZooKeeper:Wait-free Coordination for Interact-scale Systems[C]// USENIX Annual Technical Conference. 2010, 8: 9.

[11]Sigelman, Benjamin H., et al. DApper, a Large-Scale Distributed Systems Tracing Infrastructure. Technical report, Google, 2010

相关文章
|
10月前
|
云安全 供应链 NoSQL
创新!阿里首发微服务实施手册我粉了,原来微服务还可以这样玩
相信大家在网上会看到很多帖子把分布式跟微服务放在一起讨论。确实,微服务就是一种分布式架构的设计方法。但是,在微服务概念还没有出现之前,分布式这个概念并不能引起人们的强烈关注,如果说自己擅长分布式架构设计,可能没有多少人理你,但如果说自己精于微服务架构设计,情况那就大不一样了。有关于微服务的优点,网上大把的文章已经说的很清楚了,我就不细说了,简单来说微服务能够创建一个“打不垮”的系统。以至于现在,微服务架构已经成为家公司技术 是否先进、是否具有规模发展的标杆配置。
创新!阿里首发微服务实施手册我粉了,原来微服务还可以这样玩
|
弹性计算 运维 负载均衡
东方证券:我们如何成功实施微服务(2)
东方证券:我们如何成功实施微服务
102 0
|
运维 自然语言处理 Dubbo
东方证券:我们如何成功实施微服务(1)
东方证券:我们如何成功实施微服务
158 0
|
存储 SQL 关系型数据库
微服务篇:通过查询实施数据解放
基于查询的数据解放涉及查询数据存储并将所选择的结果发布到相关的事件流中。一个使用合适的 API、SQL 或类 SQL 语言的客户端会被用于向数据存储请求特定的数据集。必须能够批量查询数据集以提供事件的历史记录,然后定期更新,以确保数据的更改被发布到输出事件流中。
|
微服务
|
1天前
|
运维 监控 Docker
使用Docker进行微服务架构的部署
【5月更文挑战第18天】本文探讨了如何使用Docker进行微服务架构部署,介绍了Docker的基本概念,如容器化平台和核心组件,以及它与微服务的关系。通过Docker,每个微服务可独立运行在容器中,便于构建、测试和部署。文章详细阐述了使用Docker部署微服务的步骤,包括定义服务、编写Dockerfile、构建镜像、运行容器、配置服务通信、监控和日志管理以及扩展和更新。Docker为微服务提供了可移植、可扩展的解决方案,是现代微服务架构的理想选择。
|
1天前
|
敏捷开发 监控 API
构建高效微服务架构:从理论到实践
【5月更文挑战第18天】 在当今快速发展的软件开发领域,微服务架构已经成为一种流行的设计模式,它通过将大型应用程序分解为一系列小型、独立的服务来提高系统的可伸缩性、弹性和维护性。本文旨在探讨如何从理论走向实践,构建一个高效的微服务架构。文章首先介绍微服务的基本概念和优势,然后详细讨论了在设计和部署微服务时需要考虑的关键因素,包括服务划分、通信机制、数据一致性、容错处理和监控策略。最后,结合具体案例分析,展示如何在现实世界中应用这些原则,确保微服务架构的高效运行。
|
1天前
|
存储 弹性计算 运维
探索微服务架构下的服务治理
【5月更文挑战第18天】 在当今软件工程领域,微服务架构因其灵活性、可扩展性以及促进团队协作等优势而受到广泛青睐。然而,随着系统规模的增长和服务数量的膨胀,服务治理成为确保系统稳定性和高效性的关键因素。本文将深入探讨微服务环境下的服务治理实践,包括服务发现、配置管理、负载均衡、故障处理等关键方面,旨在为开发者提供一套行之有效的服务治理策略。
|
1天前
|
监控 持续交付 开发者
构建高效微服务架构:后端开发的新范式
【5月更文挑战第18天】 随着现代软件开发的复杂性日益增长,传统的单体应用架构已难以满足快速迭代和灵活部署的需求。本文聚焦于一种新兴的解决方案——微服务架构,探讨其如何为后端开发带来革命性的改变。我们将深入分析微服务的核心概念、优势与挑战,并通过具体案例来阐述如何在实际项目中实施微服务架构。文章旨在为开发者提供一种系统化的方法,帮助他们理解并应用微服务架构,以提升系统的可维护性、扩展性和技术敏捷性。
9 2
|
1天前
|
测试技术 持续交付 API
构建高效的微服务架构:后端开发的现代实践
【5月更文挑战第18天】在数字化转型的浪潮中,微服务架构已成为企业追求敏捷、可扩展和容错能力的关键解决方案。本文将深入探讨微服务的核心概念,包括其设计原则、技术栈选择以及实施过程中的挑战与对策。通过对微服务架构实践的详细剖析,旨在为后端开发人员提供一套构建和维护高效微服务系统的实用指南。