我所遇见的微服务演进这十年

编辑IT大咖说

阅读字数: 1951 用时: 10分钟

嘉宾简介

王晔倞,现任职好买财富平台架构部技术总监。负责好买中间件及平台化的研发及运营,团队管理和实施重大技术决策。2011年在大智慧担任测试负责人期间,针对互联网产品技术核心和重点,DevOps的倡导者与实践者,曾建立大智慧数据平台“云测试平台”。2013年加入好买财富,参与了整个公司应用和技术架构变迁,参与很多和系统建设,辗转过不同的业务团队,对技术与业务都有一定的深入了解。

视频内容

摘要

如今的微服务生态百花齐放,新的关键词不断涌现,而这都得益于“互联网+”在中国这十年的蓬勃发展。有人说微服务概念不断兴起,是不是意味着SOA重要概念企业服务总线ESB的死亡呢?它们是否是两个矛盾的选择呢?

早在十年以前,微服务这样的设计思想就在各大系统中运行或被灵活运用,IT系统或IT平台也伴随着互联网和移动互联网的盛行,海量的用户一次又一次的在微服务的道路上摸索与洗礼着。好买财富平台架构部技术总监王晔倞希望通过这次分享,与大家聊聊,在这十年间所遇见的微服务架构演进历程中的挑战与实践。

津津乐道的微服务究竟是什么?

关于微服务常见的四个问题

我们使用微服务的目标就是降低成本,提高效率,屏蔽调用(跨进程)复杂。RPC的职责是远程调用,它基本上等同于本地调用,分布式服务的一种表达方式。也就是说RPC并不能代表微服务,RPC的微服务是一种实现基础。

SOA属于企业领域,微服务则是基于互联网领域。企业之间的业务比较复杂,需要靠SOA去解决它的问题。而互联网拼的是快,所以会出现微服务的概念。SOA大部分概念是基于企业服务总线。微服务是架构思想的角度,是SOA互联网化的隐身。

微服务架构能更好地帮助实现系统和每个服务支撑的一种独立扩展。使用微服务框架,帮助你的服务能够得到更适合于服务资源需求的硬件资源。耦合度松不松,关键看你的系统纵横向怎么拆分,业务层级如何分层。

系统服务化不代表需要治理,如果是单独的模块,而且调用少,服务治理将显得笨重。如果单个模块被其他多个模块依赖,或单个模块需要做主备或者负载均衡,需要对各个服务做治理。服务规模大了才需要治理,并需要“带有服务治理功能的框架”,dubbo就是其中之一。

我眼中微服务

微服务是“互联网+时代”催生的一种设计思想和理念,并非什么高大上的技术。

微服务不是一场技术革命,它其实是一场对人的革命。

微服务给业务带来福利的同时,却给传统测试和传统运维带来了一场“革命”。

不同时期的服务,不同目标的追求

①“IOE”时期 - 面向单一的项目化客户群

我们当时和国内知名的金融公司有一个CRM系统项目。在整个系统和SOA微服务实现的过程中,CRM是一个非常好的体现验证。因为CRM中有大量以客户为维度的相关服务建设。

我们来看当时的技术基因是什么。

Oracle,这个项目里有1000万用户,每日批处理在三个小时内要完成。

Weblogic只要稳定就可以了。

IBM Power需要AIX玩得溜,出问题能迅速解决。

EMC是良好的存储方案,让它能快一些。

决定因素很重要。

能力:“超级”技术个体,它对单个的技术个体要求极高。

共用:丰富多彩,而且好用的开发组件。

业务:快速理解需求,不需要抽象。当时“IOE”时代对于服务化的概念,要求的是解决业务本身,不需要过多的去技术地深入。

编码:快速敲打键盘,最好写个生成器。

②“SOA”时期 - 面向多元的产品化需求源

随着客户增多,从项目化转变为产品化。

SOA最大的价值在于用一套系统、一套代码,在快速的配置化和非开发的一些技术动作上,能够同时满足十个客户的不同需求,这叫面向服务。

③“服务化”时期 - 面向独立的互联网业务线

多条业务线需求不同,小步迭代,快速试错。遇到这样的情况,就要求服务化。

服务框架给我们带来什么呢?

首先应用开发很简单,数据模板化。

其次就是技术栈多样化,利用各自的特点解决问题。

独立资源扩展,可按业务线自动化横向扩展。

可用性较高,具有多层级及冗余的技术保障。

但这样的架构也让我们失去了一些东西。

运维成本居高不下,矛盾日益剧增。

技术栈较多,给(持续)部署与(快速)排障带来了难度。

过多的链路,数据一致性。

未使用虚拟化,交付速度大打折扣。

传统金融服务在微服务转型过程中的那些事

为什么要转向微服务?

业务需求和用户行为互联网化了,交付与排障要求速度要快。

传统行业转微服务难在哪?

业务驱动性极强,历史孤岛多,资源投入少,全产品的业务复杂性。

目前给运维带来了什么?

服务之间的依赖,排障效率的提升,服务水位分析。

目前给研发带来了什么?

可以向测试“甩锅”,只需要关注业务本身,技术栈单一。

设计思想

运营:透明部署、持续交付、统一监控、统一配置。

平台:容灾/降级、负载均衡、灰度管理。

框架:RPC开发框架、中间件无缝连接。

资源:快速扩展、容器化。

总结

做个微服务平台其实不难,但上微服务平台,就好比西天取经。

设计思路是核心,devops和docker是工具、是手段。根据自己的业务去选择。长路漫漫,大家要在实践过程中自己去体验。

我的演讲到此结束,谢谢大家!

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

原文发表时间:2017-06-22

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏顾宇的研习笔记

云原生 DevOps

技术雷达是ThoughtWorks每年出品两期的技术趋势报告,新一期即将在5月15日正式发布。本人有幸第三次参与技术雷达的汉化发布工作,并借此机会一览技术前沿的...

21310
来自专栏云计算D1net

2015年IT发展四大趋势与云计算三大预测

存储资源日益减少 对于大多数人来说,预测未来是非常困难得。但是人们总是喜欢关注未来会发生什么事情。在IT领域,人们同样喜欢关注趋势发展。到了2014年底了。又该...

337100
来自专栏腾讯社交用户体验设计

聊出一个未来 - 腾讯ISUX

10330
来自专栏AI科技评论

动态 | 首个应用到大规模真实工业场景的神经网络控制系统在谷歌上线了

AI 科技评论按:即便深度学习和其它机器学习方法近几年已经取得了不小的发展,但是把它们直接应用在真实工业场景中、让它们直接控制工业系统还未曾见到。深度学习本身缺...

10210
来自专栏飞雪无情的博客

什么是专业

当我们看到一个人做事的时候,我们可以很快的判断这个人是否专业?哪怕这个人从事的行业和我们相去甚远,甚至千差万别,我们也可以很快的判断出来,不过「专业」这个词的表...

12240
来自专栏携程技术中心

职位推荐 | 一大波技术岗来袭~

23140
来自专栏ytkah

微信小程序与传统APP十大优劣对比

        随着微信公众平台的开放,微信端小程序涌现市场,带来很很多便利和简单的原生操作,询:微信端小程序是否会替代传统的APP应用?两者的优劣如何?我们一...

2.3K50
来自专栏DevOps时代的专栏

DevOps 实践的10个误区

? 译者:suren,本文由 DevOps时代高翻院翻译发布。 (下面的列表是基于我们的 CTO Rob Zuber 和 Andrew Homeyer 在 ...

29350
来自专栏芋道源码1024

年薪50w+的阿里p7专家,顶尖的技术人才,只因做到了这几点

最近部门招聘,很多工程师,包括我在内都参与了内推和面试的过程,经过这次招聘,我发现能够最终拿到offer的人,基本上在看到简历的那一瞬间就已经定下来了,后续的面...

23450
来自专栏Java帮帮-微信公众号-技术文章全总结

【大牛经验】如何成为一名优秀的全栈工程师

如何成为一名优秀的全栈工程师 什么是全栈工程师 全栈工程师一词,最早出现于Facebook工程师Calos Bueno的一篇文章 - Full Sta...

36560

扫码关注云+社区

领取腾讯云代金券