【ServiceComb】扎实作微服务,认真作开源

5 问ServiceComb

 

 

微服务 ServiceComb 是谁?

 

ServiceComb取名寓意蜂巢,是微服务开源项目,Apache软件基金会孵化项目,其源自ServiceComb商业版华为云微服务引擎CSE,于2017年5月开源开放。原主体代码于2007年12月由华为捐赠给Apache,是全球首个进入Apache软件基金会孵化的微服务开源项目。其提供一站式开源微服务解决方案,融合SDK框架级、0侵入ServiceMesh场景并支持多语言。java

 

 

ServiceComb目前拥有三个主要的子项目,分别为:git

Java chassisgithub

https://github.com/apache/incubator-servicecomb-java-chassis数据库

开箱即用Java语言 微服务SDK,含服务契约、编程模型、运行模型与通讯模型四个部分,具有负载均衡、容错熔断、限流降级、调用链追踪等全面微服务治理能力,服务治理能力与业务逻辑隔离。apache

Service Center—服务注册中心编程

https://github.com/apache/incubator-servicecomb-service-center安全

基于Etcd的高性能、高可用、无状态的Golang版分布式服务注册与发现中心,可实时服务实例注册、实时服务实例推送和服务间契约测试等。网络

Saga—分布式事务解决方案多线程

https://github.com/apache/incubator-servicecomb-saga架构

ServiceComb Saga是提供了分布式事务最终一致性解决方案,用户只须要经过注解方式定义事务的执行方法以及撤销方法,Saga框架会自动保证分布式事务执行的最终一致性。

 

 

微服务 ServiceComb 为什么要开源?

 

不得不说,ServiceComb在开源以前,业界就已有多个流行的开源微服务/RPC框架,ServiceComb从开源以前,就一直面临华为内外部的一个挑战问题:业界已有RPC/微服务框架,为什么还要开源多一个微服务项目出来?

 

最终你们归结到ServiceComb当前的愿景:致力于帮助企业、用户和开发者将企业应用轻松微服务化上云,并实现对微服务应用的高效运维管理。

 

ServiceComb是华为微服务的事实标准。自家的降落伞本身先跳,华为从2012年开始就已在许多创新项目里使用微服务技术,在日后的几年时间里,技术在自身的业务磨炼下越发成熟,工具越发完善,开始在华为的各大产品线大规模推广开。至今,华为消费者云、华为云核、华为云EI、华为云安全等都使用ServiceComb做为微服务场景的开发框架。ServiceComb在开源以前就已经商用了3年+时间,该商用版本承载了多年华为自身业务进行云化转型的技术沉淀和历史经验。

 

随着云化和互联网技术发展,“天下武功,惟快不破”—需求和业务快速上线交付到客户手中,成为企业的核心竞争力, 游戏等生活娱乐类应用的普及使业务流量的波峰波谷差距越发明显,微服务架构的弹性伸缩和适合Devops等特色,使微服务化成为企业云化转型的第一步。然而,微服务也无不例外具备它的两面性,华为在自身的微服务化过程当中,历经了诸多考验,总结了微服务化的系列挑战,如,服务粒度细致使团队协做困难,常规微服务化手段性能低致使总体资源利用率低,问题定位困难致使运维成本高,等等,华为将这些总结经验都沉淀到了ServiceComb。开源ServiceComb,最基础的想法是它是一个通过华为内部业务普遍验证的微服务转型利器但愿捐出来能对企业、用户和开发者贡献一点本身的力量;其次是现在的微服务生态发展较好,但愿能够联合众多开源爱好者和微服务开发者一块儿将微服务这个生态完善得更好

 

 

微服务 ServiceComb 有哪些技术优点?

 

ServiceComb基于自身的愿景,一直坚持“将复杂扔给本身,将极简留给用户”,在设计上不断追求能最简单化为用户带来价值,以下粗略地总结了几点:

 

开箱即用

 

(一)开箱即用:集服务注册、发现、通讯和微服务治理能力为一体,并默认提供集中化配置,结合脚手架能力,实现微服务治理能力0编码,开发人员简单配置便可使能微服务常见功能。

 

ServiceComb java-chassis-dependencies集中管理了全部必须的依赖,start.servicecomb.io生成出来的项目既包含示例代码,也包含必要配置的以及微服务治理所需的配置,批量生成全部的微服务后,用户只须要专一于填充业务代码。完成开发后,部署ServiceCenter,启动微服务,一个良好的微服务业务系统就运转起来了,以后只须要专一于运维,后期也可经过动态配置,随时修改配置值调整治理能力。

 

ServiceComb内置覆盖了微服务下绝大多数场景的流量控制、容错熔断、限流降级、故障注入等治理和管控能力。内置支持包括RoundRobin、Random、WeightedResponseTime、SessionStickiness在内的丰富的负载均衡策略,与服务中心ServiceCenter配合,实时感知微服务实例的状态变化,灵敏调节负载。

 

ServiceComb内置轻量级高性能边缘服务,支持Producer端治理,结合扩展路由能力和动态配置能力能轻松实现灰度发布、A/B测试等关键特性,在业务实测中,在同等资源使用下吞吐能力是业界常规方案的2.8倍。

 

在奇蛙智能科技无人机业务的实践中,基于ServiceComb的开箱即用能力,团队开发效率提高1倍,节点扩展部署效率提高2倍+。

 

第一个实现纯异步内核

 

 

(二)第一个实现纯异步内核的微服务框架:实现超低调用时延和高吞吐能力,高性能。ServiceComb底层基于vertx,但在vertx之上进行了进一步封装,同时支持异步及同步模型。

 

异步模型下,业务逻辑直接在eventloop中执行,整个业务流程中没有线程切换,全部的等待逻辑都是异步的,只要有任务,则不会让线程停下来,充分、有效地利用系统资源。

    

 

同步模型下,一个微服务进程中,为transport建立了一个独立的vertx实例;Eventloop是vertx中的网络、任务线程;一个vertx实例默认的Eventloop数为:

2*Runtime.getRuntime().availableProcessors()。

 

 

此外,ServiceComb还经过不断优化,提供了多线程池和隔离仓等相关技术,可在微服务、接口和方法三个维度上进行线程配置并实现不一样业务之间的互相隔离。

 

华为消费者云使用ServiceComb实现1500+集群节点规模的微服务以支持4亿手机用户在线,QPS提高2倍+,时延下降45%,从而节省大量硬件资源。

 

 

两种微服务化方式并存

 

 

(三)同时支持框架式SDK和Service Mesh 0侵入微服务化两种方式,实现两种微服务化方式运维管控统一,下降用户运维管控成本。

 

 

梅斯医学的业务在架构选型上选择了Java做为其新业务软件开发的语言,而其却拥有大量的PHP存量业务应用,使用ServiceComb的这种能力实现了不一样业务的混合部署并协同治理,以实现其基于存量业务的快速业务创新和多语言支持。

 

惟一一个实现契约和代码双向自动生成

 

 

(四)基于Swagger实现契约和代码双向自动生成

ServiceComb是目前全球惟一 一个基于Swagger实现通讯模型与编程模型分离的微服务项目,代码自动生成契约能够实现微服务治理能力与业务代码隔离以使能应用开发人员仅需专一业务逻辑,契约自动生成代码以更好地支持Devops实践和团队协同。

 

微服务化不是一个单点的技术问题,而是涉及到技术、组织和流程变革。在团队协做上,不管是代码先行仍是接口先行,都使用统一标准,经过Swagger在线管理API,服务端和客户端各自基于API定义接口生成代码和模型,实现客户端和服务端松耦合,测试根据API生成测试用例,以防止开发人员绕过在线API定义私自修改接口,设计、开发和测试遵循统一在线API,保证接口、代码、文档的一致性,进而使能基于Devops的流水线团队协做开发效率大大提高。

 

 

分布式事务最终一致性联合创新

 

 

(五)分布式事务最终一致性:ServiceComb联合京东金融  云和中国人保进行创新,提供分布式事务最终一致性解决方案,解决微服务场景下不能依靠单一数据库来实现跨服务事务一致性的难题。用户只须要经过注解方式定义事务的执行方法以及撤销方法,Saga框架会自动保证分布式事务执行的最终一致性。

 

 

 

 

微服务ServiceComb 开放度如何?

 

华为微服务沉淀代码无保留地开源到ServiceComb,ServiceComb由华为微服务ServiceComb开源已近一年半,进入Apache孵化已近10个月时间,孵化期间坚持“Apache Way”,坚持开放、中立、标准、多样化等原则,月均Release1个Apache孵化器软件版本的速度发行版本,8个月共Release 8个软件版本。

 

ServiceComb与业界流行生态互通:Zipkin、Skywalking、Prometheus等Tracing/APM生态,Apollo配置中心生态,Istio生态,K8S生态,Spring、SpringCloud等流行开源框架。

 

开源以来,ServiceComb社区在IT大咖说、Spring Summit、ArchSummit、kubecon、Qcon、LC三、开源中国源创会、Devops沙龙、OSCAR峰会等各种会议中都进行了屡次宣讲,并屡次举办主体Meetup,彻底公开技术路线和细节。

 

ServiceComb更是中国微服务行业标准制定的核心框架参考,ServiceComb 团队做为核心成员深度参与了这次业界首个微服务行业标准意见稿的撰写,已由信通院于8月份发布,ServiceComb也将继续参与该标准规范终稿制定,从而进一步深化微服务在行业中的应用,促进行业健康发展。

 

 

 

 谁在作 微服务ServiceComb?

 

ServiceComb始终保持初心,但愿能协同开源和业界的力量,在本身的技术积累基础上继续将微服务行业发展壮大,为企业、用户、和开发者作些实事,在推广 ServiceComb 社区的过程当中,不只仅推广技术,更是坚持同时布道微服务理念、微服务方法论和Apache开源文化,但愿能竭尽所能在吸收业界智慧的同时为业界尽量地多作贡献。

 

ServiceComb 秉持着赤诚之心,许多企业用户陆续选择使用ServiceComb,覆盖了覆盖IOT、生物医药、金融保险、互联网、地产、教育、高校等行业,华为消费者云使用其实现1500+集群节点规模的微服务以支持4亿手机用户在线,同济大学使用其做为AI人脸识别基础框架,中国人保使用其做为数字化转型的基础框架,教育培训机构传智播客使用其做为微服务教程,新型企业奇蛙智能科技基于其实现无人机智慧控制大脑,梅斯医学使用其实现混合部署协同治理能力实现快速业务创新......

 

ServiceComb社区也日渐活跃,近8个月时间共接收来自各企业的贡献者们的3300+个提交。

 

 

在各开源爱好者和微服务开发者的支持下,在Apache导师们的指导和Apache社区志愿者的帮助下,ServiceComb在Apache的孵化也一步一个脚印,稳健发展,目前已启动顶级项目的毕业程序

 

 

不能否认,ServiceComb 不是业界第一个微服务开源框架,也没有如其余RPC框架等拥有较久的开源历史,ServiceComb在开源社区的每一步发展都离不开开源爱好者和微服务开发者的支持,ServieComb社区惟一能作的是恪守原则,始终如一地保持初心。 

 

致谢过去和如今已关注或贡献ServiceComb的大家,也期待将来有更多的你我他一块儿共建微服务生态和开源社区,相信只要ServiceComb坚持认真地作开源,扎实地作微服务,ServiceComb必将永不孤单。

 

 

 

ServiceComb Meetup - 华为全联接大会

 

开源爱好者和微服务开发者们福利来袭,

Apache 基金会董事 Roman Shaposhnik,

Apache 孵化器主席 Justin Mclean,

Apache 秘书长和赞助商大使 Craig Russell,

Apache 成员及 ServiceComb 负责人姜宁……

 

全球最大的开源软件基金会Apache的大咖们和ServiceComb社区管理委员会成员们齐聚一堂,于10月12日在2018华为全联接大会,上海世博中心416+417会议厅举行Apache ServiceComb Meetup,将从多维度带来干货满满的精彩技术和实践分享。

 

 

时间:10月12日 13:30-16:50

地点:上海世博中心 416+417会议厅

 

 

长按识别如下二维码,观看在线直播

 

 

长按如下二维码,加入ServiceComb讨论群

 

             

相关文章
相关标签/搜索