写点什么

北极星开源一周年:注册发现优化、服务治理的易用性提升、周边生态融入…

  • 2022-12-21
    北京
  • 本文字数:3170 字

    阅读完需:约 10 分钟

北极星开源一周年:注册发现优化、服务治理的易用性提升、周边生态融入…

北极星(Polaris Mesh)是开源的一体化服务治理平台,致力于解决分布式和微服务架构中的服务管理、流量管理、故障容错和配置管理问题,提供业务监控、流量监控、事件中心和操作记录等全方位的可观测性能力,帮助用户快速低门槛构建微服务。



截止目前,在社区各位开发者的支持下,北极星和 Spring Cloud Tencent 社区经过一年的开源运营,一共收到 5200+ Star、1400+ Fork,有 2400+ 社区爱好者加入了社区交流群。积累了好未来、海管家等多家企业用户的案例。在这里非常感谢使用北极星的用户,以及社区开发者和爱好者的支持。借此机会,我们一起回顾开源一周年以来的发展历程和未来的发展方向。



为什么要开源北极星


企业业务架构的稳定运营离不开服务治理,业界也有一些常用的服务治理套件,比如 istio,sentinel 等。但是,用户在使用这些服务治理套件时候,往往会遇到以下问题:


(1)部分组件只提供治理规则的管理能力,但是,用户需要完整用起来,还需要自己去解决服务数据的存取(注册中心),配置数据存取(配置中心),以及治理规则的可视化配置(web 控制台)的问题。


(2)部分组件与特定基础设施和具体数据面(k8s+Envoy)绑定,没法覆盖非 k8s 的应用、以及使用 Spring Cloud 等服务框架的应用直连接入场景。


(3)部分组件服务治理功能不齐全,缺少动态路由、灰度发布等微服务核心功能。


为了解决上面的问题,降低用户开发及运营微服务的门槛。北极星为服务治理提供一站式解决方案,覆盖服务注册中心、服务网格和配置中心的功能。用户只需要部署一套北极星,即可在任意的基础设施上,完整的使用北极星提供的路由灰度、熔断降级、限流鉴权等功能,快速构建微服务架构。


应用一般会基于服务框架进行构建微服务架构,在 Java 生态中,Spring Cloud 仍然是目前国内最主流的服务框架。为了让 Spring Cloud 用户能够更快速更全方位接入腾讯的开源微服务套件,也为了让社区应用开发者可以多一个国产的 Spring Cloud 套件的选择。


腾讯在同期也将 Spring Cloud Tencent 进行了开源 ,默认对接了北极星强大的微服务能力,也是国内首个支持了 Spring Boot 3.0 及 JDK17 的 Spring Cloud 套件。并且提供了 SDK 以及 Java Agent 等多种接入方式,供用户可以以零代码侵入的方式,快速将 Spring Cloud/Spring Boot 应用改造成微服务架构。


除 Spring Cloud 以外,北极星也为多款开源的多语言服务框架提供了原生的接入适配,比如 dubbo,gRPC 等,以支持所有应用的低成本接入。

一周年历程

项目演进

北极星开源的这一年间,一共发布了 35 个 release,关闭了 300+ issues。在这个过程中,我们在注册发现、服务治理、配置中心这几个方面,进行了全方位的升级。下面会分别进行介绍:

 

注册发现优化

由于北极星在架构上支持水平扩展,集群整体性能可以通过水平扩展提升,但是为了能节省用户的成本,提升单机版用户的体验,我们在 1.10.0 版本,为了提升单机性能,对控制面的整体逻辑进行以下优化:


优化冗余数据层交互:老版本北极星,为了保证服务数据一致性,单次数据的写入,会进行多次存储层查询进行依赖条件校验,新版本通过缓存+补偿的方式,去掉了重复校验的逻辑,与存储层交互优化到只有写入的 1 次。


注册流程异步化:将客户端的同步注册请求转换为异步注册请求,返回给客户端响应不在需要等待存储层的处理结果。同时,通过自动心跳上报重注册的方式,解决异步化后可能带来的一致性的问题。


性能压测:我们针对北极星控制面进行了压测,在 8C16G 规格下,服务发现的 TPS 相比同类注册中心有较大的提升。




服务治理的易用性提升

服务治理是北极星的核心能力之一,在开源的过程中,为了降低用户使用服务治理的成本,北极星在以下方面进行了优化:

访问限流:从交互和限流精细化层面进行优化,支持针对请求参数、接口、主调服务的维度进行精细化限流,也同时支持网关层限流和微服务限流。



动态路由:从场景化上进行了优化,从微服务的使用场景上,细分了测试环境路由、灰度发布等场景,并且对于无法覆盖的场景,通过通用的自定义路由来进行覆盖,能完全满足所有的路由调度相关的场景诉求。



熔断降级:从功能和交互上进行了补齐,支持了服务级、接口级、分组级等多级熔断策略,同时支持故障探测规则,通过持续的故障探测,可以在流量小的情况下,及时发现并剔除业务中故障的实例,确保潮汐到来时业务的可用性。



周边生态融入


北极星提供了多语言统一的服务治理 SDK(Java,Go,C++,PHP 等),接入北极星的应用无需再重复开发服务治理相关的逻辑和算法。而应用往往是基于服务框架来进行构建的,业界大部分开源服务框架都提供了基础服务治理的能力,而各个框架在实现细节上,从配置到算法上存在一定的差异。

为了统一用户的服务治理体验、简化用户的接入成本,在各个开源框架社区开发者的协同下,北极星也通过提供框架生态组件的方式,支持服务框架用户的无缝接入。



Spring Cloud 框架:腾讯开源的 Spring Cloud Tencent,通过实现 Spring Cloud 原生的拦截器,集成北极星的 SDK,使得 Spring Cloud 用户可以无感的方式接入北极星微服务体系。



Dubbo 框架:与 Spring Cloud 类似,北极星也提供了 dubbo 以及 dubbogo 框架的原生扩展,dubbo 用户可以通过变更配置的方式接入北极星,无需进行代码的修改。



其他框架:除 Spring Cloud 和 dubbo 外,北极星也支持与 gRPC,Cloudwego/kitex,kratos 等服务框架对接,未来也会继续加强与其他社区合作,支持更多的服务框架接入。

存量应用无缝迁移

为了提升用户的接入体验,支持更多企业用户可以通过更低成本,更少改造的方式接入。北极星针对存量 Spring Cloud 用户的迁移做了优化,通过接口兼容、同步工具、JavaAgent 等多种方案,支持原有 Spring Cloud 用户零代码改造接入。


对于 Spring Cloud + Eureka 用户迁移:北极星完全兼容 Eureka 接口,通过集群数据同步完成迁移。


对于 Spring Cloud + Nacos 用户迁移:北极星提供同步工具,支持 Nacos 与北极星之间双向数据同步,同时也提供 JavaAgent,支持已迁移用户无缝接入北极星控制面。

展望未来

未来北极星和 Spring Cloud Tencent ,会继续在场景化功能、开源生态融合这 2 方面进行建设和精细化打磨:


场景化功能:当前北极星和 Spring Cloud Tencent ,提供的是垂直的原子能力,而用户在使用过程中,面对的是业务场景,业务场景和垂直功能之间会存在一定的理解和使用成本。比方说,用户需要进行灰度发布,这个过程中,对于灰度分组的管理、灰度的路由、灰度计划等功能,需要结合北极星的多个原子功能来实现,存在一定操作门槛。因此,未来会提供场景化的操作体验,会针对用户常用的业务场景(灰度发布、过载保护等),提供一体化的配置及接入体验,进一步降低用户接入成本。


开源生态融合:未来微服务的应用生态,无论是在开发语言,或者服务框架上,会越来越多样化。因此北极星会在继续完善当前主流的服务框架的功能基础上,积极与社区的其他服务框架及基础设施做进一步的整合,以覆盖更多的微服务应用。同时在多语言方面,也会在 Python,Rust 等语言上进行更多的探索,希望社区更多的同学能加入一起建设。

感谢贡献者

在开源的这一年时间中,北极星及 Spring Cloud Tencent 社区产生了 30+ 的 committer:weihubeats, onecer、alexwanglei、lhiamgeek、shichaoyuan、astronaut0131 等,这些同学在文档建设、事件中心、K8S 适配、MTLS 流量安全、动态配置管理等核心功能实现中做出了突出贡献。

 

除此之外,社区还收获了大量贡献者,目前已有 100+ Contributors,非常感谢大家的付出!相信有大家的支持,我们可以让北极星和 Spring Cloud Tencent 的产品和生态更加完善!!!最后,也欢迎更多的开发者加入北极星和 Spring Cloud Tencent 的贡献者队伍,一起打造业界领先的云原生服务治理中心!

 

作者简介:

单家骏:腾讯云中间件团队技术专家,北极星开源社区 PMC 成员

李佳南:腾讯云中间件团队高级产品经理

2022-12-21 17:468883

评论 2 条评论

发布
用户头像
图片太模糊了,完全看不清楚啊。。。。
2022-12-25 18:34 · 浙江
回复
用户头像
有开发群可以交流么
2022-12-22 08:59 · 河南
回复
没有更多了
发现更多内容

活动报名:以「数」制「疫」,解密 Tapdata 在张家港市卫健委数字化防疫场景下的最佳实践

tapdata

数字化 数据孤岛 实时数据 疫情防控 活动报名

Tapdata Cloud 2.1.5来啦:新增支持Amazon RDS数据库,错误日志查询更便捷,Agent部署细节再优化

tapdata

SaaS 数据同步 polarDB Amazon RDS

员工考勤打卡时,如何避免非本人代替打卡?

华为云开发者联盟

人脸识别 打卡 华为云FRS 华为云FunctionGraph 华为云APIG

Reactor百万连接的并发

C++后台开发

reactor 高并发 epoll Linux服务器开发 C++后台开发

Tapdata 在数字化防疫场景的最佳实践

tapdata

数字化 防疫 主数据管理 实时数据 数据虚拟化

数据产品实战-toB产品实践心得

第519区

数字化转型 解决方案 数据产品 tob产品

零基础可以学云计算运维吗?怎样从才可以学好?

行云管家

云计算 运维 IT运维 云运维 服务器运维

python实现连接两个数据库

YUKI0506

Tapdata x 轻流,为用户打造实时接入轻流的数据高速通道

tapdata

SaaS 数据同步 实时数据 轻流

无聊科技正经事周刊(第 7 期):跟村上春树学跑步,向古川武士学养成

潘大壮

程序员 周刊 行业趋势 科技周刊 技术周刊

程序员,做业务还是做技术更有前途?

张泽豪

程序员

互联网大厂研发效能团队的需求管理

laofo

互联网 DevOps cicd 研发效能 CI/CD

互联网公司目标管理OKR实践落地与反思

laofo

互联网 OKR 研发效能 绩效管理 快手

攻防演练 | 关于蓝队攻击研判的3大要点解读

青藤云安全

安全攻防 网络安全

基于GPU的并行集群系统在中国的发展状况

Finovy Cloud

gpu 云服务器 集群渲染 渲染服务

融云首席科学家任杰:历练出人才,职场「经历>经验」

融云 RongCloud

互联网研发效能专家怎么找?

laofo

设施资产管理系统解决方案

低代码小观

资产管理 CRM CRM系统 企业设备管理 设备巡检管理系统

面试突击49:说一下 JUC 中的 Exchange 交换器?

王磊

Java java面试

洞见科技中标渤海银行「联邦学习平台建设+营销场景建模服务」两大项目

洞见科技

金融科技 隐私计算

存储模组头部厂商嘉合劲威加入龙蜥社区

OpenAnolis小助手

开源 操作系统 芯片 龙蜥社区 嘉合劲威

Python unicode三明治

AIWeker

Python 人工智能 5月月更

微信业务架构,学生管理系统架构设计

泋清

#架构实战营

架构实战营|模块1

KDA

#架构实战营

微信小程序商城源代码

源字节1号

软件开发 小程序开发

软件的license是什么意思?作用是什么?

行云管家

软件 运维 许可证

快速上手云原生安全平台 NeuVector

Rancher

Kubernetes k8s rancher NeuVector

互联网公司目标管理OKR和绩效考核误区

laofo

OKR 研发效能 互联网公司 快手 绩效考核 GRAD

私有化的IM即时通讯平台,企业首选的沟通工具

WorkPlus

通过 Amazon API Gateway 和 Amazon Lambda 实现基于 Restful API 的 CloudFront Distribution 复制/克隆功能

亚马逊云科技 (Amazon Web Services)

Lambda Gateway

css 学习笔记【二】-背景,渐变,链接文档的MIME类,id选择器和类选择器的区别

恒山其若陋兮

5月月更

北极星开源一周年:注册发现优化、服务治理的易用性提升、周边生态融入…_架构_单家骏_InfoQ精选文章