2008年,斯坦福大学主导的“NSF M 的Expedition in Computing”项目,通过软件定义的方式将传统交换机变成OpenFlow交换机,开启了软件定义以前的新时代。2011年前后,OpenFlow被用于云计算平台中进行网络管理,并被广泛接受,这种方式被称为“SDN”,并且在随后的发展中,甚至可以从某种意义上说SDN重新“定义”了传统的网络架构甚至通信产业。
但是,不管软件定义有多强大,它的主要目的都主要是要满足信息化发展的新要求。
6月14日,在第九届中国云计算大会上,北京理工大学党委常委、副校长,中国科学院院士,中国电子学会云计算专家委员会副主任委员,中国大数据专家委员会副主任委员梅宏发表了《信息化3.0:软件定义的时代》的主题演讲。
梅宏解释道,所谓的信息化就是指信息技术在我们人类社会生活方方面面综合应用的过程,随着信息技术的发展,以及应用的深入和广泛,我们可以看到信息化应用在技术平台、管理资源和应用模式方面都在逐渐地变化。
梅宏将我国的信息化划分为三个发展阶段:
- 第一个阶段可以成为信息化1.0,这个阶段主要以单机应用为主,这个阶段的应用模式主要是单机处理、数据库为中心的局域网应用,技术平台也只是单机/局域网;
- 第二个阶段以联网应用为特征,应用模式打破了部门或组织固有的边界,强调信息共享与系统协同的网络化应,技术平台从单机/局域网拓展到广域网/互联,到了后期,应用热点演变成互联网向移动互联和物联网延伸,支持系统、组织、人、物之间的广泛联接的深度网络化应用;
- 第三个阶段,也就是信息化3.0阶段,是以数据的深度挖掘与融合应用为特征的智慧化阶,这个阶段的应用模式演变为云感知的软件服务化应用+云计算和端计算的融,技术平台也发展为互联网及其延伸所形成的人机物融合环境(云+端)。
梅宏表示,在信息化3.0的环境下,软件呈现出一系列新的特性和新的形态,即互联网化、网络化。企业不仅基于网络进行开发,软件也运行在网络之上,并通过网络分发出去并提供服务。同时,开发模式也形成了一种基于互用、知识驱动的向上的无序到有序的螺旋增长模型,以及社区化的组织模式。中国学者称之为网构软件,这种软件具有实体的自主性,对于实体之间的协同出现的涌现性、自发性、在线的演化能力,在互联网环境下还有可信性的要求。
这种情况下,需要硬件平台需要满足所有软件发展的新的需求。梅宏认为,软件定义的本质是通过虚拟化及其应用编程接口(API)“暴露”硬件的可操控成分,以实现硬件的按需管理。具体来说,就是将计算、存储、网络等IT基础资源,抽象为系统软件对虚拟资源进行管理和调,在此基础上,用户可编写应用程序,访问资源所提供的服务,进而改变资源的行为,满足应用对资源的多样需求。
随着软件定义的不断延伸,出现了软件定义存储(SDS)、软件定义计算(SDC)、软件定义环境(SDE)以及软件定义数据中心(SDDC)。但是,软件定义并不是软件用在其中,而是透过操作系统这一套的技术手段完成面向某个特定领域的软件应用平台的构建,这些SDI的本质上都符合这两句话,即“基础武力资源的虚拟化、管理任务的可编程”。
信息化3.0时代,企业需要管理的是海量异构的硬件资源所构成的未来,或者现在正在构建的信息基础设施。梅宏表示:“基础设施需要新的资源管理机制,多样化、领域化、个性化的管理资源需求就出现了,比如说我们规模化的资源整合,巨型虚拟机的巨型资源设备,包括现在新的NVM,各种各样新的设备,GPU,还有各种微型化的物,比如说摄像头、手机上的传感器等,这些都要实现统一的管理都需要透过软件构建API的方式实现虚拟化。”
以下是梅宏院士的演讲实录:
很高兴再次有幸来参加中国云计算大会,谈一谈我对当前信息技术发展的认识,所以我这次用了这么一个题目,叫作《信息化3.0:软件定义的时代》,这里面有两个关键词,一个是信息化3.0,一个是软件定义。
首先讲什么是信息化3.0。我们正在进入的一个新时代,而这个时代一个很重要的特征就是无处不在的软件技术和软件应用,正在定义这个时代的一切。软件定义的时代就是说软件定义在这个时代的重要性,也是这个时代很多的场景,我们很多的应用、产业,也都会实现软件技术的深度应用。
信息化3.0是我们正在开启的新一波浪潮,信息被认为是人类社会发展的第三大战略资源,是和物资资源并列的。而所谓的信息化就是指信息技术在我们人类社会生活方方面面综合应用的过程,随着信息技术的发展,以及应用的深入和广泛,我们可以看到信息化应用在技术平台、管理资源和应用模式方面都在逐渐地变化,而三个方面都呈现一定的阶段性特征,我想第一个阶段是以上世纪九十年代中期为代表,此前我们的信息化呈现的主要特征是以单机应用为特征的数字化阶段,随着互联网的商用,我们进入信息化第二阶段,这也是我们信息化的第二波浪潮,我们进入了以联网应用为特征的网络化阶段,我想我们现在,如果以2015年整体为代表,大数据的广泛兴起为代表,我以为从本世纪第二个十年的中期开始,我们正在进入以数据的深度挖掘和融合应用为特征的智慧化阶段。
我们来看一看每个阶段的特征。实际上第一波浪潮始之于八十年代,它是以当时的PC机进入家庭广泛应用为标志,开始了第一波的信息化。这时候的技术平台实际上就是个人计算机,最多到后期成为局域网,单机的数据库,我们使用方式是客户进入服务器模式,点击的应用就是部门级的信息系统,我们文档的处理、表格的处理。我们也可以看到我们部门级系统开始都是以最关键的,比如说资源管理、人事管理、工资管理、库存管理开始,应用的模式是单机处理,数据库与中心的局域网模式。
九十年代中期,随着美国提出信息高速公路建设,我们开启了第二波的信息化浪潮,创造了信息技术在过去二十多年的辉煌,也快速发展。我们看到这个时候的技术平台已经从单机局域网拓展到了广域网和互联网,点击应用包含了联网式的集中电子政务、ERP、电子商务等等,而且全是全域的联网应用,应用模式打破了部门和组织固有的边境,强调在网络上的信息化的共享,系统化的协同,整体进入网络化应用。特别是随着后期互联网应用的深入和普及,人机物之间也开始产生链接这种深度的互联网,这时候成为信息化2.0后期的一种重要的应用热点。
而信息化3.0是以数据的深度挖掘和融合应用为主要特征,我们正在进入一个智慧化的时代,这几年人工智能热潮、大数据热潮充分说明这一点,而大数据的产生作为信息技术,特别是互联网机器延伸所带来的这么一个现象。一方面是摩尔定理驱动着增长,第二是移动宽待互联所形成的人机物广泛的互联,技术低成本所驱动的信息技术的无处不在的应用和万物的数字化,还有今天会议的主题,云模式所驱动的数据的汇聚和集中,由于这些方式实现了数据的快速增长,所以我们出现了大数据。而基于大数据、基于数据分析有这么多成功的应用案例,也激发了人们基于数据,从中间寻找规律,萃取知识,来指导我们社会实践、工作实践的这么一种成功的案例,带来了数据应用的需求,这就进入新的时代,这个时代正在开启。
第一波浪潮的启动带来的还有一个很重要的标准,就是IT基础设施的投入进入新的一波投入高峰。
在这个时代我们可以看到数据深深度挖掘和应用,互联网机器延伸正在形成的物联网、移动互联网,构成人机物融合的环境,也就是云加上广泛的端设备所构成的网络环境。而典型的应用就是大数据应用,我们可以看到互联网公司成为大数据应用的领头羊,有各种各样成功的互联网公司所创造的大数据应用的成功案例,同时大数据应用也正在向传统的领域拓展,为传统的领域注入新的活力,当然我们可以看到这是正在开启的一个时代。
我们的大数据应用还处于发展的初期,才刚刚起步。从应用模式上讲,到底什么是未来信息技术当我们这一波应用的模式。我个人的基本观点就是云感知的软件服务化应用,以及云计算和端计算,包括物联网上的各种设备、边缘计算等等的融合,这会是我们未来几十年飞机重要的应用模式。刚才吴部长也提到了,云感知的软件服务化,我以为就对应支撑着吴部长讲的云的智能服务。
在这种新的环境下,我们可以看到软件呈现出一系列新的特性和新的形态,当我们的软件呈现互联网式的结构、网络化的结构,基于网络进行开发,软件也运行在网络之上,通过网络分发出去并提供服务。可以看到我们的开发模式形成了一种基于互用、知识驱动的向上的无序到有序的螺旋增长模型,同时社区化的组织模式,从使用上讲,不求拥有只求使用的服务华使用模式,这些都是新的特性的变化、新的形态。我们中国学者称之为网构软件,这种软件具有实体的自主性,对于实体之间的协同出现的涌现性、自发性、在线的演化能力,在互联网环境下还有可信性的要求。
随着人机物融合的环境,软件技术就面临着一系列的挑战,从软件技术的技术体系四个主要方面来看。一个就是传统的静态环境下的传统软件正在走向开放动态环境下的复杂软件,从开发方法来讲我们满足功能需求为主要目标,保证正确性为主线,我们现在满足综合需求,从应应用上来讲,只凝练系统的共性,保证高效可靠的运行,需要凝练管理的共性,保证可靠高服务的质量运行。从单一的指标体系只考虑系统的使用质量,需要考虑指标综合性的使用质量,从社会质量转向使用质量。
在这种背景下,我们可以看到过去几十年软件技术发展的主要驱动力就是系统的平台化,但以操作系统为代表的系统软件的发展,就反映基于拱形凝练和沉淀的平台化过程。大家看早期的应用系统是跑在裸机之上,操作系统的出现使得我们的计算机变成了软件机,中间件的出现使我们可以联网、多机协同,而同样的云管理平台也是这么一个走向,我们需要构建在传统的中间件组织上构建新的云管理系统,而这个过程就是不断地把应用中间的共性凝练下来,形成可以复用的资源,这些东西就沉淀为平台,开发工具和应用框架也不断地融入运行平台,战线出开发运行平台一体化的趋势,这几年讲的DevOps也呈现了这种重要的态势。这种系统平台化一直是软件重要发展的驱动力,所以我们说在人机物环境下它的软件平台是什么样,我们可以看到在互联网上的应用,现在这种网络化的应用,应用的需求是多样的,形态也是多样的,而我们下面的服务资源有个人计算机、大型的计算机、手机终端,还有这么多的物联网上的各种计算设备,海量资源的异构性,要构建这么一个平台,就是怎么样凝练这种应用的共性,把下面的东西整合起来,使得大家透过一个软件平台完成你的工作。
进一步,由于应用需求变化平台,很多应用是在线变化的,七乘二十四小时不能停机,一直要服务,应用场景也是动态多变,我们进而就提出一个要求,这个软件平台能不能实行按需的、灵活的、深度的、定制能力,而这种能力靠什么东西来解决?我想软件定义就是提供了这么一个平台按需、灵活、深度、定制的这么一种方式。这是我讲的第一部分。
关于软件定义,我们正在说3.0需要软件定义。大家也知道,如果我们回顾一下软件定义这个词,首先是从SDN开始,它最早的源头是2008难斯坦福大学有一个基金委的项目,在这个项目里POMI,这个项目完成了一个事情,把传统的交换机透过软件的方式把它变成了一个OpenFlow的交换机,把硬件的软件设计层加上控制层,还有上面的应用层,这个结构的分层和我们计算机系统结构是非常的一致,这是它的兴起,但这件事情出来以后,真正的软件定义进入应用还是从云计算开始,SDN是首先在云计算平台里面大家了成功应用。应该说在某种意义上SDN正在重新定义传统的网络架构,按照IDC的估计,2016年全球SDN市场大概是37亿美元,这是它大体上的估计划分。
如果我们回顾来看,软件定义的技术原理它的技术本质是什么。本质上而言,我觉得它就和我们计算机操作系统,处理计算设备、硬件设备和上层应用的关系是一样的,它透过一种API,对底层的基础设施、网络设备可以进行虚拟化,进而可以进行任意的编程,在这个基础之上你就可以实现新型的网络协议,新型的TOP结构,而不需要通过应用逻辑本身去改变网络设备本身。通过一个控制器来实现转发的规则,通过API对相关的FlowTable编程,根据业务构建虚拟网络并实现按需的资源调度。
这个场景似曾相识,我们回过看看计算机的发展,早期的计算机就是硬件计算机,计算机操作系统的出现使得我们的计算系统能够被各个行业当成通用的设备来使用。每个用户看到的计算机是一台软件计算机,是一台操作系统定义过的计算机。操作系统干什么?我们给一个学术的定义,它是向下管理硬件资源,控制程序运行,向上改善人机界面,为应用程序提供支持的系统软件层。给你一个API你可以调用很多东西,操作系统越变越大,也是这么变过来的。而操作系统的目标本质上就是要追求更为高效的,把硬件资源所提供的计算能力发挥出来,透过软件技术实现灵活高效可信统一的虚拟资源的管理,这一直是我们操作系统发展的重要驱动力。在某种意义上也正是因为以操作系统为代表的系统软件平台的不断发展,带来了应用软件市场的快速繁荣。
大家可以试想,如果任何一个应用系统是构建在那么多纷繁复杂的硬件设备基础之上,构建在不同的网络提供商所提供的网络之上,你可以设想你的开发工作量是多大,你的开发复杂度多大,而这种软件平台使得你把这些东西都可以屏蔽掉,构建一个新的平台,这是我们操作系统实现的一个新目标。
因此我们回过来看,从操作系统的角度来看软件定义它是什么呢?从用户的角度,操作系统本质上就是软件定义的计算机,操作系统定义了计算机,从软件研究的角度,操作系统的很多技术原理,包括分层结构,实际上已经体现了软件定义技术概念的一个集大成。所以说我的理解,软件定义的本质是什么?就是把原有的一体化的硬件设施打破,基础硬件进行虚拟化,不同的硬件根据你的力度提供标准化的基本功能,透过一个可编程的流程管控软件,来控制基本功能,提供开放、灵活、按需的智能服务。透过虚拟化及其应用编程接口,暴露硬件的可操控成分,来实现硬件的按需组合和按需管理。
基本的本质,包括存储资源、计算资源、网络资源还有其他各种资源,我们把硬件抽象成虚拟资源,然后用系统软件对它进行管理和调度,然后再向上提供一层API,管理任务的可编程,在虚拟化基础之上,用户就可以编写他自己的应用程序。反问所有的资源提供的服务,进而改变资源的组合,改变资源的行为,满足对资源的多样性的需求。随着SDN的成功,大家可以看到出现了SDS,各种各样的软件定义开始出现,软件定义的存储,软件定义的计算,软件定义的环境,也就说软件定义一切,但我以为软件定义并不是软件用在其中,而是又透过操作系统这一套的技术手段完成我们面向某个特定领域软件应用一组平台的构建,这些SDI的本质上都符合这两句话,基础武力资源的虚拟化、管理任务的可编程。
回到我们讲的3.0时代。3.0时代我们需要管理的是海量异构的硬件资源所构成的未来或者现在正在构建的信息基础设施。你看我们的云、我们的管,到云有各种新型的设备,我们管多网融合的复杂环境,客户端、物联网、互联网,各种各样的计算设备,还有物,甚至还有人,这么多的资源怎么能够实现一个有效的管理。基础设施就需要新的资源管理机制,多样化、领域化、个性化的管理资源需求就出现了,比如说我们规模化的资源整合,巨型虚拟机的巨型资源设备,包括现在新的NVM,各种各样新的设备,GPU,还有各种微型化的东西,比如说摄像头,包括手机上的传感器等等,这些东西要实现统一的管理都需要透过软件构建API的方式实现虚拟化。
完成这些以后,在这个环境下我们就实现软件定义,把对在的资源虚拟化,通过云和端的海量异构硬件资源进行全面虚拟化,所有资源在抽象层次上趋于一致,这就是我们面临的很大的挑战,这样的操作系统很大,怎么把它管理起来。我们在过程中间,同样软件定义还面临其他的挑战,比如说结构的问题,怎么确定受管元素的合理粒度并合理、安全地开放API,怎么界定软硬件的功能分配,并实现组装配置的相关元素。
第二是安全性问题,软件定义本质上是对原来紧密不可分割的硬件进行软化,因此说由于这种东西带来开放性、灵活性的同时,就有可能带来安全的漏洞,特别对工业来讲就极为重要。
第三质量问题,由于软件定义在已有资源上加上一个操控的虚拟层,怎么样能够平衡管理灵活性和虚拟化之后的性能损耗?怎么降低软件实现的复杂性和故障率,能有效定位到你的故障。
还有互操作性问题,大量的厂商提供的同类异构设备,很多设备需要编到一起。
进一步看,软件定义设施,可能目标也在变化,过去我们的方式,已有的硬件构造一个软件平台,支撑上面不同的应用,一旦发生硬件的变化,那我上面的平台,我上面的应用都需要进行相应的调整,是软件跟着硬件走,有没有可能产生一种新的变化,软件和应用能不能不变,硬件设施发生变化,也就说软件平台具有预测和管理未来硬件资源的能力,我们从硬件为核心转到以平台为中心呢?透过深度定制的方式来解决这个。现在我们可以看到这种方式还是可以探讨已经有人在尝试,美国DARPA2015年启动一个BRASS项目,构建这样一个基础设施就希望适应下面各种变化,硬件变化不影响软件平台和上面的应用,我以为这也是软件基础设施化的一个重要的标志。
更进一步的趋势,从软件定义,仅仅对硬件资源的虚拟化正在走向对全栈软件资源的软件定义,有没有可能对软的、对数据的、应用的,也实现新软件定义,我们可以看到这种趋势。比如说泛化智慧城市,智慧城市操作系统通过软件定义手段实现城市各类信息、物理基础设施的开放共享和智能化的互联互通。
第二个例子数字的开放共享,这是我们国家现在讲的主题,大数据行动发展纲要有一个今年构建数据目录,明年统一共享,大家可以看到大数据信息孤岛阻碍了数据开放共享,已经形成一个基本的共识,就是不愿意、不敢、不容易,涉及到很多方面的因素,成本很高,怎么能够构建这么一个东西,所以我们也提出了一种软件定义的方案,透过一种自适应的数据总线,加上系统的智能识配,对已有的应用系统,把它的数据互联互通搭起来。
前期做过一些尝试,比如上个月,我们在贵阳发布了一个结果,用了一个月时间把整个贵阳市的五十多家单位的三百多个系统的两千多个功能进行了梳理,形成一千多个活化的数据目录质量,用了一个月时间,实现了贵阳市政府数据资源的全量的活化,而这项工作是在没有原来系统厂商的支持,没有数据库的开放,也缺乏数据支点的前提下,用一种智能学习的方式来完成的。
这一步大家谈的人工智能需不需要软件定义,人工智能现在正是数据驱动的算法智能阶段,软件平台怎么帮助人工智能应用支撑并允许它的深度定制。进一步说,我们能不能面向智能应用构建所谓的操作系统呢?咱们可以看到,现在一些智能的框架已经开始尝试这么一个路,共性凝练沉淀。
在这么一个时代,我把它称之为软件定义的时代,基本的目标就是万物皆可互联,一切均可编程。这个时代还有多远?可能需要我们学术界、产业界各方面共同的努力,打造未来世界的泛在的、可编程的、按需使用信息基础设施。谢谢大家!预祝我们的会议圆满成功!
原文发布时间为:2017年6月14日
本文作者:作者:赵东
本文来自合作伙伴至顶网,了解相关信息可以关注至顶网。