ServiceComb的前世今生

摘要

从最开始立项之初,公司整个大的架构要向Cloud Native进行转变,面临着很多问题。对于企业级的微服务架构,解决思路和设计方案是什么?以及在ServiceComb之上,我们对于微服务构建从软件到服务的简单介绍。

【直播视频回顾请点击文末阅读原文】

我们一直在很认真地做微服务

ServiceComb开源前,在公司内部已经存在了两年的时间,在这段时间里,同时还有在用其它的产品。华为内部使用的产品非常多,根据华为公司的特点来看,它的应用大多都是企业级的应用,很少有互联网应用。所以我们一直会面对着各种各样企业级应用的需求。公司内部各种产品的要求也是不同的,比如我们有IOT类的应用、商城类的应用等等。但我们在坚守着微服务架构原则的基础上,也在尽量满足公司各种各样产品苛刻的要求。

企业IT技术应用曲线

2014年被很多人认为是企业上云的元年。从这一年开始,很多企业把应用搬到云上。

2014年几乎企业应用都没有考虑的Docker。到了2015年开始,很多大型企业就已经把Docker列入了采购或使用计划里面。

微服务在2016年成为仅次于物联网和认知计算的第三热门技术。近几年有越来越多的大型企业开始使用微服务,渐渐地把应用重构成微服务架构。

传统企业应用开发模式

传统企业应用的开发模式的特点是统一制定产品发布计划,然后把产品发布分成几个小的组件,每个人负责一个小组件进行开发。开发完统一时间进行集成,最后打包发布成一个复杂的应用。

这个过程技术实现单一,需要想办法用一种技术解决所有问题。发布时只能按大颗粒系统发布版本,响应周期会比较长(小特性版本3-6个月,每年1个大版本)。无法做到永远在线,大版本升级时,要停机中断服务。

上图是微服务架构下应用的构建和发布流程。它最大的特点就是把大的应用拆成若干小的部分,每一个微服务所有的发布计划和构建技术都是非常灵活的,每一个服务各自制定自己的发布计划,用最合适的技术进行实现,我们整个系统的上线周期和更新周期会比较快。

Speed & Safety

“快”是现在所有企业和用户实施微服务架构的第一原因。但是“快”的同时如果做不好防护,会变得非常危险。尤其是现在的企业应用,它和互联网应用有一些不同的地方,它的要求就是必须要安全。中断的时间可能会出现一些问题,所以安全一定是在微服务架构之后的重点强调的第二点。

面临的问题

我们最初在做微服务的时候并没有在企业应用中应用微服务架构的经验,这时微服务的概念更多的是来源于互联网。我们要思考的是来自互联网的应用业务形式和企业应用有何不同。

在一个大型的企业应用里,通常情况下它的应用是由ISV来进行开发的。站在企业的角度来说,如何做到不同ISV的应用互联互通统一管理,是我们在开发时需要考虑的一个非常好的问题,同时也是一个急需解决的问题。

微服务主要是让业务变得更快,反映到开发上,就是让开发足够快。那么怎样才能加快微服务的开发?

使用微服务会出现很多问题,性能问题就是其中之一。原来的单体应用都是方法间的调用,当然很快。但它变成微服务以后,微服务之间的调用一定会影响到性能。微服务化后如何保证性能,把影响降低到最小?

在企业应用中强调统一的管理,如何进行统一的路由控制也是我们面临的一个问题。

企业应用和集成

API First:

面向契约而不是逻辑;

解耦服务提供者和消费者的开发顺序;

契约定义为语言中立;

规范化系统接口,让实现与文档的同步成为必须;

通过工具简化整个过程。

增速微服务开发---降低学习门槛

降低学习门槛也是增速微服务开发中非常重要的一点。在我们的框架中是支持SpringMVC和JAXRS的方式去写微服务。

SpringMVC:

JAXRS:

性能保证

我们把通信变成了全异步的方式,性能方面提升了很多,具有标准、开放、协议健壮性。开发框架的性能在于细节,而不仅仅是协议。

更细致的服务路由管控

统一的路由策略管控;缓存以提升性能;支持pull/push两种模式监控实例变化;实例动态扩容,海量的长连接或者短连接;支持灰度发布、服务分组等高级管理特性。

还远远不止这些...

之前在我们公司的项目中,微服务不仅仅是一个SDK的事情。要想让应用开发和业务上线更快,需要管理的是微服务开发生命周期和微服务运维生命周期。

在内部构建微服务的时候,我们在每一个环节把微服务的开发和运维完全打开,在每一个环节进行优化。

从软件到服务

我们公司内部在做微服务这件事的时候,考虑到了很多方面。现在我们把这些经验做到了云上,做成了一个服务。如果你感兴趣的话可以去看一看我们做的华为云微服务引擎:http://www.huaweicloud.com/product/cse.html

有不同的意见也欢迎来和我们进行讨论,参与到社区工作中:

ServiceComb官网:

http://servicecomb.io/cn/

ServiceCombGithub:

https://github.com/ServiceComb

微服务引擎交流论坛:

http://forum.huaweicloud.com/forum.php?mod=forumdisplay&fid=622。

我今天的分享就到这里,谢谢大家!

原文发布于微信公众号 - IT大咖说(itdakashuo)

原文发表时间:2017-11-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SDNLAB

混合云的未来

回顾过去几年,混合云在IT界异军突起。据许多行业分析师的观点,混合云意味着将组织软件驱动的私有云与公共云的性能、业务流程、自动化和计费功能相结合,以实现在公有云...

38650
来自专栏EAWorld

给DevOps打上最佳实践的标签

本文目录: 一、 再谈DevOps定位 二、谈谈几个实践设计 三、普元DevOps核心 越来越多的厂商开始研发DevOps产品,有的基于项目管理工具衍生,有的从...

37790
来自专栏DevOps时代的专栏

流水线2.0驱动 CD / DevOps

前言 张乐:大家知道 DevOps 这两年提的特别多,非常火,我们希望从社区的角度 DevOps 不仅仅是概念的纬度,更关键是一个可以落地实施的纬度。我们觉得流...

455100
来自专栏云计算D1net

技术人上云的七个重要姿势

现在,业务上云已经成为一个潮流。尤其是对于公司内部的技术人员而言,经常会有很强的技术冲动去让业务上云。同时,云供应商们的大力宣传让公司决策层及业务人员对于上云也...

34560
来自专栏Spark学习技巧

如何成为一名优秀的架构师?

想一下软件架构的评审过程:一位架构师参与进来,俯视一切然后指指点点,高谈阔论。他发表的评论要么过于粗浅,要么严重脱离实际。

19060
来自专栏喔家ArchiSelf

DevOps 全栈必备双刃剑

作为一名全栈工程师,不仅是一个研发多面手,而且必须要关注产品的最终交付,以及线上服务的稳定运行。工具化使开发、交付、运维紧密地联系在一起,于是DevOps 逐渐...

13330
来自专栏WeTest质量开放平台团队的专栏

WeTest适配测试报告2.0化繁为简,为你而来

曾经有一个适配测试报告摆在你的面前,而你可能苦于找不出最重要的问题在哪;如果您能给我们一次机会,我们会对您说四个字“不爽来试”。

13630
来自专栏BestSDK

【详解】微信小程序是如何为APP钉上最后一颗“棺材钉”

微信为什么要做小程序? 微信公众平台有 3 种公众号:订阅号、服务号、企业号,企业号用得比较少,我们暂时不去讨论。过去几年,订阅号的发展可以说超乎了所有人的想...

46950
来自专栏腾讯大数据的专栏

App 数据分析到底要分析什么

DAU、MAU、留存率、频率、时长.....到底产品经理要分析什么数据?笔者结合海外移动端产品的数据分析实践与MTA服务的客户案例,带你从产品初创到成熟不同阶段...

1.2K10
来自专栏BestSDK

如何用数据分析的方法,做好一款小程序?

一、小程序有哪些特点? 小程序最大的特点:只能存活在微信环境中。用张小龙的话来说,触手可及、用完即走。 (一)小程序的4大挑战 为了避免过度营销,小程序在营销环...

35950

扫码关注云+社区

领取腾讯云代金券