BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

隋剑锋:中国古典哲学在云计算架构设计中的应用
录制于:

| 受访者 隋剑锋 关注 0 他的粉丝 作者 InfoQ 关注 7 他的粉丝 发布于 2016年12月12日 | QCon北京2018全面起航:开启与Netflix、微软、ThoughtWorks等公司的技术创新之路!
29:59

个人简介 隋剑锋,华为云平台首席架构师,完整经历了互联网从门户、媒体、博客、微博、电商、O2O等多个阶段,大规模大并发高流量快速发展业务系统有较多的实战经历,从事近十年的架构的设计和开发工作。喜欢用中国哲学思想解决技术架构面临的未来和未知问题。现就职于华为电信软件业务部,致力于提升运营商的系统和产品竞争力,支撑运营商系统在云化浪潮下的快速演进。

全球架构师峰会(International Architect Summit,下简称ArchSummit)是由InfoQ中文站主办的一次全球性架构师峰会。ArchSummit专门针对架构师人群,讲述与架构和架构师相关的各方面趋势、技术和案例。这也是继QCon之后,InfoQ中文站主办的又一次高端技术盛会。

   

1. 各位InfoQ的网友大家好!现在我们是在ArchSummit深圳大会的现场,作客专访间的是华为云的隋剑锋。第一个问题是这样的,能否举几个在您从业经历中技术架构与中国哲学思想相结合的例子?诸子百家您更喜欢哪些流派?

隋剑锋:我做架构近十年了,有很多机会去做系统,随着系统越做越大,一开始学习别人的工具,学会了每种工具再组装出一种整体的能力,就是拼装、集成。对集成的东西越来越熟悉以后会遇到更深层次的问题,随着解决问题,对架构和它的思想就有更深层次的理解。再往后自己开始设计,设计是创造性的解决未来和未知的问题,不是解决当前和过去的问题,应该从更高的高度和视角解决未来的问题,未来还没有发生,我们怎么预见?需要思想的引导,就是哲学,用的是比较多的。我最喜欢的还是道家的老子和庄子,比如说上善若水,华为的一个运营商的系统有几千万行的代码,我称之为岩石,当时我们软件是打包卖的,以硬件为主,软件用的资源越少越好,但是随着业务的发展,底层I层被更多的运营商侵入,以前是整体的端对端解决方案,后来它的I层、P层、S层都可能被分包出去,我们系统里有很好的东西是个整体拆不出来,所以要演化的像水一样,两个石头放在一起还两个石头,但是两堆水放在一起是一堆水,这就是上善若水,需要更柔性的解决问题。还有比如庄子“无用之用”或者老子“无中生有”,对架构来说,“无”是哲学里最难、最重要的,今天不展开讲。

   

2. 其它的呢?像墨子呢?还有像儒家的中庸之道,在系统架构里有没有什么体现?

隋剑锋:我觉得中庸之道非常重要,我们现在可能认为中庸是非常贬义的词,实际上中庸是非常厉害的解决方案。我自己抽象它叫“第三法原则”。

   

3. 在上个季度,我们曾在企业上云这个话题中讨论到企业云化有三个阶段,第一个阶段是资源与环境的云化。您能否点评一下国内企业在这个阶段的现状?

隋剑锋:从我看来,国内一直说C2C(copy to China),我们很多概念都是美国的概念,不得不承认美国的战略是很高的,资源I层的概念是从国外引进的,所有的企业都走着相同的路,都是从I层构建,我个人不是很认同完全走这条路,从一个时间点和时空来看,这条路对很多企业是一个必然的过程,比如像阿里、京东这种电商公司,包括腾讯有一个概念叫毛刺,峰值流量往往比平时的流量高很多倍,像阿里的双11至少上万倍的峰值流量,需要更多的资源来解决这个问题,如果资源被像钉子钉在一个一个的系统里,那就需要大量的资源解决峰值的问题。所以才有了把资源拉在一起形成更大的资源池,一起解决业务问题,这样可以大大降低资源。但是这条路并不是所有公司都应该这样走,传统的企业,电信包括银行,他的流量相对稳定,不是像互联网那样有毛刺,从这个层面切入我觉得有点邯郸学步了,当然学习是必然的,但是如果每一个都完全照搬成本就太高。

   

4. 就变成重资产了?

隋剑锋:对。我觉得云现在变成一种新的形式的奢华,未来一定是更少的公司掌握更大的云资源,现在全部云化的企业未来可能还要转型。

   

5. 我们把业务形态变身为Cloud Native App视为企业上云的第二个阶段,在您看来这个阶段的难点有哪些?企业应该怎么克服?

隋剑锋:云本质来讲是用更少的资源解决更多的业务需求,需求包含表面的需求,还有需求背后支撑的一切,云特别适合解决支撑业务的一部分,比如说安全、性能、稳定、可扩展性以及让别人更容易编程,让别人写完代码一提交剩下的事情不用管了,直接就在线上运行。云就是解决这些层面的问题,一定要把工具做的很好,更重要的是怎么和现有的东西兼容,我提了一个概念叫维新式革命,我们要打造新的模式,未来和现在是不一样的,但是演进过程一定要平滑。云在现有的模式下,支撑现有模式,并且能演进成未来,要有未来明确的方向。比如说我现在觉得程序、编程这些JIT技术越来越通用了,LLVM引领着整个JIT的潮流,近几年的LUAJIT很多互联网公司用Ng+LUA的模型可以做出很多高性能,很快速,更重要的是上云之后一部分业务是我们平台去开发的,或者是高端的人才,互联网公司的产品都是自运营的,而运营商和传统企业不是自运营,他们的水平不足以到现在技术的高度,我们要更好的理解现有的编程模式和代码逻辑,搬到云上面,甚至我们更希望不写代码也可以解决他们的需求。他们在行业里沉淀了十几年,业务水平很高,但是现在面临新的形态需要去对接,这需要我们这些云的公司提供一些能力和工具来支撑,让他们快速转型到云上。

   

7. 那企业应该怎么做?如果我是一个企业,要迁到云上去,现在应该怎么克服这些问题?

隋剑锋:云的模式变了之后,我们首先要定位云平台和企业,云平台主要是制定标准,并且运行规则,企业是理解标准,根据规则自己编写业务逻辑。就像操作系统一样,我拿C写的代码,只要编译就可以,但是他并不知道代码是干什么的,必须把云和业务系统剥离开,这也是传统企业包括华为现在在做的最大的困难,以前我们的思维是整体解决方案,现在拆成很多层面,这个拆一定不是一刀切,而是结耦,结耦要遵从一种标准,现在云还没有非常好的规范,只能用openapi这种规范来解决云的问题。我们可以大胆的预想一下,现在我们的分层是I层、P层和S层,这不是用户业务想知道的,是技术问题,业务只关注我的应用能用,并不想知道底层解决方案,就像我们提供中间件能力、数据库那样,我认为数据库语言是很难的一种语言,把它开放给业务、开放给用户提高了难度,你应该封装起来,无非就是CRUD几个操作,对用户来讲就是获取信息,说白了就是说人话,现在很多系统都是给专业人用的,我们希望云更多是给非专业人用。

   

8. 以我目前了解到的情况为例,运营商更关注资源编排能力而非业务形态的转变。这是一个合理的和正常的现象吗?我接触过一些运营商,他们不关心底层,注重资源编排的能力,不关注业务层面,这样正常吗?

隋剑锋:我觉得任何事物都需要一个过程,就像我一开始就提出的观点,他们从I层做起本来就是错的,因为他对新兴事物完全不了解,这也是没有人给他一个很明确或者成功的案例说应该怎么做,大家都在摸索,一般选择常规的路径或者大公司怎么做的,然后再去演进。你刚刚提的很好,应该专注于业务领域的事情。从我看到的互联网公司迭代是很快的,用户体验是很好的,运营商的套餐、产品用户体验很差,连异地办业务的基本能力都没有,这就是没有站在用户的视角,他们以前是以客户的视角。华为价值观第一条就是以客户为中心,以前我们服务大的企业或大的运营商,服务好一个或者有限几个企业就可以活的很好。现在的模式越来越走向用户,相信运营商包括大型的传统企业未来也会越来越从客户走向用户,思想理念上的变化一定会带来产品本质上的变化。如果没有这种理念上的变化,他们很多的产品都是我们做的,但不是我们的用户,我们其实不care用户体验怎么样,像互联网很关注首屏加载的时间,但在运营商根本连首屏的概念都没有,他追求的是整个端对端的时间,没有站在用户使用角度,端对端的时间可能很快,但是因为业务流程太复杂,用户的体验就快不了。这个东西没有极致,只能说站在这个视角思考自然会驱动业务,或者他们对云的需求的变化。

   

9. 刚才您谈到DevOps,这也是最近一段时间大家比较关注的方向,它不是一个新的概念,企业的组织架构在云化的过程中,也有一个Cloud Native的改造,比如现在的运维部门。在您看来,企业组织架构Cloud Native化的挑战有哪些?我们应该怎样推进这个转变?

隋剑锋:从我经历的企业或看到的行业情况来讲最重要还是思想的转变,devops、云、编程语言几乎都是很陈旧的模型,不同的历史时空下对技术的需求不一样,我还是认为云始终要站在用户的视角,为什么会产生云?最核心的还是两个字“规模”,以前的业务系统大家各自干各自的,现在IT和CT融合了,跨界的东西越来越多了,运营商以前是很封闭的系统,现在谷歌的热气球、光纤进入到你的领域,如果不迈出来你的范围会越来越小。但是跨界你的思想意识就要有变化,你的形态原来是不变就ok了,现在你要拥抱变化,因为你不知道下一刻用户需要什么。随着新的形态或新的服务的出现,人们一定会对这个东西产生更高的要求,如果不能快速的适应变化,你的产品是无法适应市场的。我们以前给运营商做运维系统,五年前,十年前他们用的非常好,因为我们很先进,现在他们也都是互联网用户了,他们觉得自己的系统也不满意,他们的意识形态也在演进,devops无非还是要更快、更轻量,更快的从用户视角满足客户的需求。运维运营人员也有内部用户,也要满足用户多变的需求,快速灵活,我们现在几千万行的代码构建一次需要很长的时间,这就迫使你必须把时间降下来,因为别人已经不能接受,需求会驱动变化。

   

10. 您现在主要负责电信这边的业务,华为在推进运营商CT与IT的融合过程中,最大的竞争力或者说优势是什么?

隋剑锋:第一个是对业务的理解,华为也有好多云,从我的角度讲,现在这些云还没有真正互联起来,一开始的云是资源层面的融合,现在大家提的更多的是服务层面,未来应该是云端互联,像阿里云和亚马逊的云也许未来是可以互联的,就像互联网公司一样,抛开业务,他们的技术大同小异,技术框架80%,90%是一样的,没必要再去搞那么多系统,应该归一,facebook也在提网络身份唯一性,我们叫实名制,我自己管理自己的帐号就很困难。未来的云端互联就是用一套系统解决通用领域的问题。华为在这块的优势是我们各个层面做了很多积累,再就是华为是CT出身的,天然的在路由器、交换机、CPU各个领域上非常有优势。云最重要的是连接的能力,华为的价值观就是“建立全连接的世界”,这也是我们的愿景,如果朝这方面演进,华为在这方面优势是很大的。

   

11. 最后一个问题我想问下云上的应用依赖。随着容器技术和微服务架构的普及,大量的应用迁移到了云端,由于业务系统的不断扩大,分布式服务和低耦合使得应用与服务、应用间的依赖问题日趋严重。您觉得在上云过程中如何提前规划以避免这个问题?

隋剑锋:我们以前一直提SOA总线,现在提RPC这些机制,认为总线消耗太大,我认为未来还是要走向总线,叫总线可能不太准确,应该叫路由,无论是service rooting也好,api网关也好,等等这一类的。未来并不需要知道我的服务在哪里,这还是技术问题,不是业务问题。如果不能把问题封装好,你就必然要抛给用户去解决。云要解决非业务的部分,要比解决业务部分更重要。我觉得还是需要各个层面重新回到需要一个资源就直接申请,不需要在意它在哪里,当然这个资源不是简单说存储、计算、网络资源,我认为服务、数据,还有各种组件、中间件等等都是资源,只要把资源唯一标识,输入输出确定就OK了,不需要关注它具体在哪里以及够还是不够。未来上云还是要云本身够强,云要做更多的事情适配现有的模式,而不是让企业来做更多的事情。国家提出互联网+,意味着传统企业在这方面是落后的,不能指望落后的推动新事物发展,这不符合规律,还是应该由新事物推动潮流发展,这才更有可能。所以我认为云公司/云平台应该做更多的事情,而不是把很多事情抛给业务系统去做。

   

12. 你刚才提到SOA和RPC这两种模块理念,RPC作为消息队列时业务量上来是不是会有堵塞的问题?

隋剑锋:是。还有未来的路由一定是分布式路由,不是集中性的,当然它也是有层级的。另外,未来可能云的网络模型都会变,刚才提到服务和业务并不一定离的多远,甚至有时候为了性能必须让它很近,我们现在的业务模型层次是非常深的,从二层网络到三层的IP、四层的TCP、到七层的HTTP,load balance,webserver,再挂上tomcat这些容器……一直到业务,业务又要调各种中间件,还要调服务,还要调支撑服务的微服务,再有数据,要构建一个系统这个层级太深了。我认为未来的路由一定是多合一的,因为是分布式的,它天然能解决性能的问题,路由、load balance、web server、容器这些可能是n合一的。再就是数据,服务必须跟着数据走,因为如果服务离数据很远,安全性和性能不能保证、延时也一定很大。未来可能出现新的模型,数据本身就是计算资源,你看现在的PostgreSQL、区块链技术,未来数据不单纯是数据,是数据和计算的融合,减少抽象的层次,从业务的视角来说是一个原子的,并且是完整的能力呈现出来,用更少的层面也许我们的服务会更好,这可能会是一个新的形态。从我看到的现象我觉得多合一是有意义的。

InfoQ:我很认同,您刚才说的问题是大家说的痛点,是遇到的瓶颈。好的,谢谢您,我们的采访就结束了。

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT