互联网时代,操作系统正在面临一些转变,传统的个人时代,PC机、网络系统,每个人每台机器是相对的,主要的运算系统都在本地,网络的目的只是为了强调互联。而在网络时代,互联网成为核心,PC功能成为网络的终端,网络成为计算和存储的中心,各种终端设备是作为网络的辅助交流工具,包括了智能手机、各种上网本等等。而在互联网时代,这样的操作系统要满足互联网的需求,就面临新的技术挑战,管理的资源从单机变成了整个互联互通,使得我们的资源复杂和海量。
第二个,应用的多元化,我们需要大量的新应用,像各种各样的互联网应用,从我们的论坛、邮件到各种服务等等,这些应用要形成,包括我们大量的视频服务,要形成一些共性支撑,同样这样庞大的共性集聚到互联网上,还得满足我们每个个体甚至每一个单位的个性化需求,共性和个性化。
应用模式是以服务的方式提供,对外要提供按需使用的模式,同时也支持用户要有不同的终端能够访问我的服务。所以,这样就构成了我们后期的云或者服务站点为服务端,以我们各种智能手机、PC等为终端的这么一个一体化平台。这就是网络时代互联网时代对操作系统的新要求,我们把它称之为网络化的操作系统。
所以从这个意义上讲,大家可以看到所谓的云管理平台本质上体现为一种新型的网络化操作系统,向下它需要管理调度大规模的网络化资源,虚拟计算、存储、网络和平台等,而向上就要支撑上面的运行在这个平台之上的各种应用,以服务化的方式对外交互。
当前,云管理相关的东西正在全面走向软件定义,首先云管理平台通过软件定义对网络化、规模化的各种资源进行高效灵活的调度,也是各种软件定义技术的一个综合展示平台。我们可以看到所有的软件定义计算、软件定义网络到软件定义存储等等,这个有很多关于这方面的研究。
我们也可以看到,如果说这样的云管理平台通过软件定义面临一系列的挑战,首先,你怎么样确定你被管控的硬件元素的合理力度,到什么样的力度是更合理的,并且针对这样的力度进行虚拟化以后,向上提供API,你怎么样界定一个软件定义的系统它的软硬件的功能划分,并且能够灵活的、更为方便的方式来组装配置相应的构成元素。
第二方面的问题就是系统质量问题。怎么样合理的平衡由于软件定义所带来的灵活性和通过各个层次的软件所带来的性能损耗的关系。通过软件定义实现它带来的复杂性,它有更复杂的东西,可能也会带来更大的故障率。同时,软件里面故障的定位也相对比硬件更为麻烦,这些问题怎么解决。
第三个方面,怎么样能够把系统的能耗通过软件管理进行适当的降低。我们说硬件解决哪怕低功耗的硬件,最终从系统层面还得通过软件管理来减少能耗。第三个方面的问题就是互操作的问题。由于在云环境中间,特别是私有云环境中间,我们存在着不同厂商提供的同类异构设备,怎么样能够巧解这些设备之间的异构性,形成同一个平台,这也是需要软件定义去解决。所以,这是我讲的第二部分,关于云计算式软件定义。
最后,我想讲一下从软件角度围绕互联网计算进行的探索。我们说互联网带来了技术和应用创新,可以看到从2000年以来,人们心目中都希望把互联网看成一个全球的计算平台,在这个意义上讲,也正在形成新的软件产业的形态,就是面向互联网的软件产业。我们从软件的角度希望把互联网看成一个全球泛在的计算机,来探讨它上面的软件应该是什么样子的。
技术方面,怎么样利用以互联网为核心的多网融合,实现高性能价、高效能、高可信的信息化技术。应用方面,如何利用以互联网为核心实现成本控制。
互联网的出现就是一种新的形态,这种形态从它的几个信息,这样的软件首先需要每一个实体的自主能力,实体之间的关系,实体之间协同之后产生的自发性和在线演化能力,所以它体现了按需构造协同行为模式。按照领域社区或者说社会网络的组织模式,以及基于复用、知识驱动、自底向上从无序到有序螺旋成长的系统开发模式,我们需要把过去一个以信息提供为主的网络变成以提供软件能力、计算能力为主的互联网。
从软件质量到软件开发、软件运行、软件范型几个方面,互联网都面临着一系列的挑战。所以,我们认为在互联网时代,需要一种和过去不同的软件范式。我们可以看到未来要进入所谓的网构软件时代。要构造一个网构软件的硬件平台,采用网构软件的思想和理论来演示操作相关平台,支撑互联网的技术。这是我们近期的工作,围绕网构自身平台进行了一系列的探索,从云资源、端设备到物理资源的管理与虚拟化,虚拟资源的管理及编程方向,到上面支撑各种各样的应用。应该说向上面向需求提供服务,向下面对资源提供管理,其中包括IaaS、PaaS、SaaS一系列的支持服务。