6月26日,东方证券gRPC-Nebula微服务框架开源项目正式宣布开源,该项目由东方证券发起主导,联合博云深度参与,秉持金融科技创新和对外技术输出的原则,致力于打造行业内首家基于gRPC可治理RPC框架下的开源社区。2019年7月3日,该项目获得2019OSCAR尖峰开源技术创新奖。
gRPC-Nebula开源项目是东方证券微服务治理平台建设成果之一。为解决随着业务发展,服务与服务之间呈现复杂依赖关系,以及大量异构业务系统致使对外暴露的接口也呈现多种形式,而导致的系统开发、运维难度增加的难题,东方证券基于gRPC框架技术,新增服务治理特性,构建微服务治理平台。
企业异构化系统是证券行业IT系统建设中面临的最大挑战之一。作为支持东方证券微服务治理平台建设的合作伙伴,博云凭借在微服务领域的实践经验和技术能力,助力东方证券微服务治理平台建设,实现内部及外部服务的统一化管理,构建服务调用关系及拓扑结构,优化改进服务质量。
博云在深度参与东方证券微服务治理平台建设过程中发现,企业业务的发展与扩张导致服务数量呈爆发式增长,而根据企业业务的实际需求,开发部门通常会选择更适合的服务框架,服务框架呈现多样化选型趋势,由此导致大量异构业务系统带来一系列企业内部系统运维的复杂难题,为服务管理以及线上治理带来了极大的挑战。
一套统一的多框架治理平台对企业内部服务管控和服务治理具有重大意义,针对多微服务框架统一服务管理这一难题,博云与东方证券也发布了产品化研发成果——BeyondMicroServices微服务治理平台。该平台集成多种微服务架构和运行组件,兼容SpringCloud、Dubbo、gRPC、Istio等微服务框架,可实现快速部署或迁移微服务应用。
BeyondMicroServices架构图
灵活适配
BeyondMicroServices可对注册中心、API网关、配置中心等多种选型,灵活满足客户的组件选型需求。
组件治理
BeyondMicroServices支持对环境、注册中心、配置中心、系统组件进行管理,同时支持平台操作日志查询、系统基础参数设置等功能。
网关管理
支持网关管理,通过API网关实现客户端动态发现后端服务实例信息,简化前端的调用逻辑,同时支持相关的认证授权机制。
服务管理
支持多环境多注册中心部署,将所有可提供的服务进行集中注册和管理,避免服务之间的直接调用,方便水平扩展和故障转移。
服务监控
使用经过改造的Skywalking组件,将只用于服务监控的组件与BeyondMicroServices实际使用业务相结合,提供详细的服务运行中和服务运行间的性能指标数据。同时基于Hystrix Dashboard和Turbine展示服务的熔断监控。
配置管理
对分布式系统的配置文件进行管理,Server提供配置文件的存储,以接口形式将配置文件的内容提供出去,Client通过接口获取数据、并依据此数据初始化自己的应用。
兼容基于 Spring cloud / Dubbo / gRPC / Istio 的微服务框架,帮助客户快速部署或迁移微服务应用。
深度关注运行中服务的治理,提供路由控制、流量控制、访问控制、黑白名单等。并通过聚合服务,实现服务编排,服务启停安排,上下线等功能。
支持多种微服务组件的治理和纳管。包括提供统一的配置中心,集中管理所有配置文件;ZooKeeper、Consul、Eureka等注册中心的接入纳管;以及Hystrix、sentinel等熔断的治理。
根据业务场景考虑异步消息队列、2PC、TCC等,并通过集成分布式定时任务组件,实现微服务环境下的任务调度。
绘制应用中的服务拓扑关系图,追踪业务访问时的调用关系,提供全链路的性能监控,并能通过服务间调用关系,判断服务调用是否合理、高效。
提供独立的API网关功能,包括API鉴权、API发布管理、流量控制、负载均衡等,以及API编排能力。
降低使用中的风险,熔断机制可以防止雪崩,限流机制可以避免资源的不合理分配,容错机制可以降低业务的失败率。
与Kubernetes的服务注册发现、服务网关之间的融合处理,为微服务扩展高可用机制和资源弹性伸缩等功能。
服务治理已成为构建微服务架构系统的必备“良药”。同时,服务治理也是企业体系化架构建设的核心,通过体系化技术架构支撑共享中台能力中心建设,未来企业架构会有根本性改变。博云也将继续深入微服务治理领域,基于自身实践深度参与和持续投入gRPC-Nebula开源项目社区建设,深刻理解用户微服务治理需求,不断完善产品与咨询服务能力,为客户实现微服务转型、应用开发、微服务框架落地提供解决方案。
目前社区已建设了社区决策委员会,主要由东方证券、BoCloud博云和行业专家组成,初期拟设 7 名委员,含 1 名委员会主席,设有专人进行 GitHub 代码的跟踪、维护、解决。同时,委员会会定期组织研讨和常态化沟通、社区技术交流、协调开发力量进行社区开发、社区筹款、审议版本 maintainer 的版本路标和功能集、社区委员会选举等工作。社区将秉持金融科技创新,对外技术输出的原则,致力于成为行业内首家基于gRPC可治理RPC框架下的开源社区。
项目地址
https://github.com/grpc-nebula/grpc-nebula