CIO时代学院姚乐:微服务架构与原生云应用

2017-02-27 10:43:32  来源:CIO时代网

摘要:CIO时代学院院长、中国新一代IT产业推进联盟秘书长姚乐博士做了题为“微服务架构与原生云应用”的主题演讲。 他从互联网转型、微服务架构以及基于微服务架构的原生云应用三个话题展开讲解。
关键词: 微服务 原生云
  2017年2月23日下午,CIO时代2017年第一场线下CIO沙龙在上海复旦大学老逸夫楼顺利举行。本次活动主题聚焦“微服务与容器云”,来自复旦大学、CIO时代学院、上海电气、上海汽车、港中旅华贸货运、台湾华立集团、上海国家会计学院等单位的专家与CIO们共同围绕微服务架构与容器技术展开了深入的交流与探讨。CIO时代学院院长、中国新一代IT产业推进联盟秘书长姚乐博士做了题为“微服务架构与原生云应用”的主题演讲。 他从互联网转型、微服务架构以及基于微服务架构的原生云应用三个话题展开讲解。以下为演讲实录:

\

  各位领导大家下午好。首先,非常感谢汪院长给我们提供这样一个非常好的环境,在复旦大学。我们今天谈“微服务架构、容器、原生云”也好,这些东西为什么现在这么火?其实与一个大的背景有关,就是跟互联网转型有关。所以我还是从我对互联网转型的角度来谈,然后再谈我对于微服务架构的认识,然后再来看最近在国外热的一个概念,叫“原生云应用”,看它跟微服务、容器是个什么样的关系。
 
  从互联网转型谈起。互联网转型大家都在谈,转型什么?怎么才叫互联网转型?
 
  1.从以职能为中心转向以用户为中心
 
  过去说“信息化”更多的是以职能为中心,这个部门业务怎么做的,我们搞一套系统支持它。我们很少站在用户的角度,看看它在怎样的场景下到底需要什么。不像现在搞移动APP的、搞互联网的,他们是以用户为中心。我觉得从互联网转型,非常重要的就是要以用户为中心。因为互联网随时能连接到每一个人,每一个人随时随地,在他工作的每一个环节,不管是在公司,还是在外面,还是在家里。它在被随时连接的时候,到底需要什么样的服务?我们过去做的以职能部门为中心的系统可能就面临很大的冲击。过去怎么做的?搞一套系统,现在以用户为中心,用户在什么场景需要什么服务。这个时候你的这些流程还适合吗?你过去执行的部门,还适应这样的体系吗?所以我相信它对传统的系统,也会带来变革,甚至颠覆性的冲击,所以很多系统都面临重构,因为都不是以用户为中心设计的,都是以原来的业务流程是什么来设计的。
 
  2.从流程驱动转向数据驱动
 
  我们过去的信息化,大家知道都是从业务的流程设计开始。所以整个的系统基本上都是流程的驱动,都是从我做完这一件事情,下一件事情做什么。今天为什么数据驱动开始变成了一个新的话题,或者更重要的一个方面?就是因为我们在工作中间的每一个环节,不管是用户还是机器设备,所有的这些场景里面的数据,我们可以大量的被采集、可以实时的被采集。也就是说,我们可以用数据来还原一个真实的场景。有了这些场景数据,这个时候我们这个场景怎么用的更好?比如:用户在什么情况下更需要什么东西?这个时候更多的是以数据来说话,而不是过去人为设置的流程。
 
  3.从事后录单转向现场数据自动采集
 
  我们过去的信息化,很多都是事后发生了之后,人为去记录一个东西进去,我们叫“事后录单”。现在互联网时代采集的设备,随时的采集、感知的设备也不断的进步,我们人实时在被连接,用户的信息在被实时的采集。这个时候很多的数据是通过自动采集的。
 
  4.从封闭系统转向开放系统
 
  过去搞信息化,这些系统,我们建它的时候,这个系统可能要被谁调用,这个系统可能跟哪些系统交互要事先设计。你没有设计,这个系统可能就会因为没有接口,不提供这样的接口服务就没法协同。今天的系统如果还是按这样的设计,在互联网时代我们的系统可能随时被调用、随时被连接,你都不知道被谁调用,你都不知道被连接多少。
 
  5.从单机架构转向分布式架构
 
  其实过去的这些系统,从根上来讲,就是一个垂直的系统,从底层一直到上面都是基于单机的。我们所有的应用程序,都是基于单机来写的,我们的数据库、服务器存储,当时都是在单机的结构下面,所以应用也是基于这样的来写的。总体来讲,都是要从基于单机的架构转向分布式的架构。
 
  6.从中心化治理转向去中心化自治
 
  传统的信息化最高的阶段,你们说是什么阶段?如果用我们的技术词汇来讲。其实有一个词,就是SOA阶段。在SOA这个体系里面,大家知道我们服务的从注册到治理,服务的这种交互,我们是需要花大量治理工作的,为什么我们SOA很难去做?因为服务太多了,靠人去治理这些服务是非常难的。互联网这种模式下面是要变成一种去中心化的自治。去中心化的自治,某种程度上就是没有过去SOA总线的概念。虽然可能有类似的概念,至少因为总线ESB实际上是在传统架构里面,它实际上是一个瓶颈。为什么呢?因为我所有的都要通过它去交互,它就成了瓶颈。
 
  这是我谈的对于互联网转型的理解。还有一个,就是我们要从一个实际的例子来看一下。我谈了这么多互联网的转型、传统企业怎么在转型?我觉得最有例子的就是美国GE为代表的公司,他在打造工业互联网的Predix。一个德国工业4.0,一个美国工业互联网,我觉得中国一定要跟着美国的工业互联网的思维去。Predix,美国工业互联网它是完全打破了传统的架构,完全是云和大数据平台下面构建新的应用体系。这一套体系,美国的工业互联网讲的是三个融合。实际上这些融合都是融合到互联网技术上面去,我们过去的信息技术为什么要融合到互联网?过去的信息技术,企业用到的这些信息技术。我们说:是单机的,有些俗称叫IOE的。它要融入到互联网的技术里面去。还有一个是CT,通信的技术。大家知道现在通信也在往互联网技术融合,特别是企业级的通讯,我们越来越多的人在用微信,在用即使通讯这样的方式。还有一个就是OT,就是运营的技术。制造业叫“制造技术、自动化技术”,这些技术也要融到互联网技术里面。为什么?因为机器设备也在被软件应用。
 
  所有的这些技术,最后都要融合到互联网技术的平台上面去,这是美国工业互联网在创造的一个方向。
 

  这是一张图式,就是说所有的都要被互联网连接。

 
  我们过去讲,它不再局限在一个场景里面用。甚至我企业外部、客户、供应商,因为这些都要被连接,都连接之后才能够构成优化。还有一个很重要的就是什么?平台资源是弹性的,就是说你这个场景用多少是多少,你不用了就释放掉了,也是需要有平台。还有一个就是基于平台,我们可以快速的去开发各种各样的应用。在这样的基础上,我们再来提供各种的应用,这是Predix提供的思路。大家看一看,其实完全是互联网架构下的IAAS、SAAS、PAAS。
 
  在这样的平台里面,数据是被怎么样处理的?各种各样的设备、数据,这些数据有的是实时的,有的是批量的,通过一个数据管道传到平台上面去。这个数据管道起的作用,就是数据做结构化、打标签、关联。甚至数据在存储的同时做分析,这也就是不同类型的数据去做不同的存储。关系型的这种持续的数据,非关系型的,各种各样的数据。数据在存储的同时就在分析产生应用,不只是数据导到一个大数据平台里面再去做挖掘、分析。在这样的平台里面,数据在产生的同时,各种模型和算法就是在实时的分析,然后在相应的应用场景提供支持。
 
  在这样的场景里面,为什么是一个微服务架构的应用?首先,需要有快速的创新。在互联网的时代,大家知道“天下武功,惟快不破”。互联网在连接一切,所以需要随时随地的服务,还有网络规模的提供。要多少可以有多少,还有以移动为中心的用户体验。所有的这些东西需要我们,就是说这些是从业务的视角来看,需要我们要基于微服务架构构建原生的云应用。
 
  从业务的视角来看,对于业务来讲业务要敏捷,我想到一个东西马上就能做、做出来。还有用户的体验要好,这些东西,快速的创新、随时随地的服务。
 
  对微服务架构的认识。到底是一个什么样的微服务架构?首先,我们看“微服务”。可能有些人已经了解很多了,我还是谈一下对于微服务,大家都是怎么说的。首先,它是细粒度的,然后是独立的服务。什么叫“细粒度”的呢?就是做好一件事,完成一个单一任务。过去在SOA的时候,到底怎么划分服务?微服务里面,每一个服务就要做一件事情。什么叫独立呢?每一个服务都是独立开发的,独立去测试、部署,独立去变更的。相对于单体的系统架构,其实这张图可以做一个形象的展示。在过去的单体里面,这些单体的应用里面是分了一个个的模块。在微服务架构里面,它每一个服务都是独立的,每一个服务都是要访问自己的数据,就是每一个服务都带自己的数据库。
 
  与SOA比较,微服务架构的新特征是什么?
 
  1.独立部署、快速迭代、持续交付。
 
  因为它是独立去部署的,所以它可以快速的迭代。我这个服务改造的时候,我不用改整个的应用(因为它是分布式的)。这样的话,甚至一天都好几个迭代。
 
  2.只对需要的部分进行扩展。
 
  在微服务架构里面,我什么服务需要扩展,什么服务并发量大?这个时候大家都在登陆了,这个时候大家都要做一个什么样的交易。大量用户在并发的服务,我就把资源多配给它,其它没有用到的服务就休眠了。
 
  3.拥有自己的数据。
 
  每一个服务都拥有自己的数据。
 
  4.去中心化的服务治理。
 
  基于微服务架构的原生云应用。从去年很多人开始“原生的云应用”,什么叫“原生的云应用”?我最早看到的是有一个文献里面谈到了对于“原生云应用”的一些东西。什么叫原生的云应用?原生云应用天生就是弹性可扩展的、可自我迭代的应用,且适应互联网模式下随时被调用、随时支持高并发的需求。
 
  既有原生云应用,也有非原生云应用。原生云应用是轻量级运行环境:容器、PaaS平台微服务在云上开发的应用。非原生云应用是重量级运行环境:物理机、大模块,传统应用迁移到云上。
 
  现在好多公司说上阿里云为什么上的那么困难?硬要把自己迁到阿里云上去。为什么?实际上那个应用本身不是原生云应用,所以我们就要花费很大的力气。
 
  在这样的一个背景下面,我们要怎么做好这件事情?我们首先回到这个背景,互联网的连接在变革一个个应用场景。这样的场景下,传统的应用系统都将面临重构。在这样的背景下,我们又有了云基础设施和微服务架构,它实际上为原生云应用的快速创建和快速迭代提供了条件。所以是两个为我们提供了基础设施:一个是云的平台,有了云的基础设施,然后有了微服务架构这些新的理念、方法,可以为我们快速的创建和快速迭代提供条件。这个时候我们就要基于微服务架构重构应用系统,支持业务的互联网化转型及快速创新。
 
  怎么来做这个事情?我们怎么处理好遗留系统?因为我们每一个企业都不是“从零开始”。怎么处理好我们的遗留系统?我觉得有两大策略:1.卡住遗留系统,给遗留系统像微服务一样创建API协议;在旧系统边缘逐渐创建一个新系统,让它慢慢生长几年,直到旧系统被卡死。”2.新功能用微服务,所有的新功能用微服务去做;逐渐在遗留系统周围创建一个原生云系统。
 
  如何做好原生云应用?我觉得在几个方面:
 
  1.文化上。
 
  从烟囱式开发走向开发运营模式(DevOps);从大项目交付走向持续交付,从中心治理到去中心化自治。其实很多过去的系统还没有做完,那个系统的生命周期就已经结束了。
 
  2.组织上。
 
  从项目团队到业务能力团队,过去是做一个一个的项目。到业务能力的团队,就是说我们做的是一个一个的业务服务,这些能力都是独立的业务能力团队。打造平台运营团队,因为这些业务的运营还需要一个平台来支撑,我们要给业务运营团队提供自服务的、敏捷的基础设施平台。
 
  3.技术上。
 
  拆分应用,拆分数据,容器镜像,从ESB编排到事件驱动。也就是说,在微服务架构里面,事件驱动。过去是通过总线的编排,事件的驱动,甚至一个模型、一个算法去驱动一个什么,下一步的流程是什么?都是事件的驱动。
 
  4.分布式。
 
  其实互联网的架构里面核心的就是“分布式”,一点一点的拆、拆到现在的微服务。通过API Gateway这样的方式去做交付,还有AppStore应用商店。谢谢大家。

第三十五届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:fanwei

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。