导读

随着云计算的发展,以及各种大型业务系统趋向成熟,云平台的模式广泛应用于各种类型的大型企业,一些政府部门也开始建立云平台来服务于辖区的企业或个人。与此同时,我们也经常能听到或看到各种操作系统的概念,包括商业操作系统、城市操作系统等。本文对这两个概念,特别是在可互通的场景中,进行分析和比较。

01

云平台

云平台(cloud platform)本质上是云计算三层架构中的PaaS(Platform as a Service,另外两层分别是IaaS和SaaS)。

首先云平台一定有一个提供商,比如:

Google云平台(https://console.cloud.google.com),

SAP云平台(https://cloudplatform.sap.com),

亚马逊云平台(https://aws.amazon.com),

阿里云平台(https://account.aliyun.com);

其次,云平台提供的服务通常是提供商定义好的服务集合,有较好的通用性,在这组服务集合之上可进一步建立各种应用。

云平台与客户之间实际上是服务提供者和服务调用者的关系。云平台提供商在自己的数据中心里提供计算、存储或网络传输等服务,客户通过网络连接,使用云平台提供的服务。图1显示了云平台的基本架构。

图1 云平台基本架构示意图

云平台提供商负责运营和维护数据中心里的硬件和软件,包括软件升级等。客户付费享用所提供的服务,两者之间的商务协议除了云平台提供的功能以外,也包括性能或可用性承诺(称为SLA,Service-Level Agreement)以保障客户业务的可预期性。云平台往往是一些通用的服务,或者针对行业的通用服务;如果这些服务不能直接满足要求,可以在云平台上再开发应用,通常称为SaaS云服务。这是典型的云计算实现业务需求的模式。

对于某些大型的客户,他们可能更希望在自己的数据中心里建立云平台。在这种情况下,云平台提供商提供的是建立云平台的技术,而建立起来的云平台通常称为私有云,意指这个云平台是这家客户私有的。私有云平台的运营维护和升级也依赖于云平台技术提供商。

云平台的通用技术已经成熟。另外有一些具有行业或专业领域特性的云平台近几年得到快速发展。譬如,IoT平台、工业互联网平台是典型的专业云平台,图2显示了这两种专业云平台的典型案例:

(a) 亚马逊IoT云平台

(b) 西门子MindSphere云平台

图2 专业云平台案例

02

操作系

操作系统是一个技术术语,wikipedia.org上关于操作系统的定义基本为业界所公认:

An operatingsystem (OS) is the system software that manages computer hardware and software resourcesand provides common services for computer programs. The operating system is acomponent of the system software in a computer system. Application programsusually require an operating system to function

操作系统的概念与计算机系统紧密相关,它有如下显著的特征:

  • 是计算机系统的一部分,负责管理硬件和软件资源;

  • 为计算机应用程序提供公共的服务。

操作系统需要有足够的抽象性,从而允许各种不同规格的硬件能够接入到计算机系统中,这些硬件通过操作系统可被各种应用程序使用。像Windows和Android正是典型的操作系统,它们能够适应不同品牌的硬件环境,又可以支持大量的应用程序。

操作系统既有独立性,又与硬件和应用紧密关联在一起。独立性来自于操作系统的高度抽象,与硬件和应用的紧密关联使得它们在实例层面上被当作一个整体来发挥作用,形成一个计算机系统。

当我们面对一台实际的计算机时,不管是大型服务器、PC机、平板电脑,还是像智能手机、智能手表这样的计算设备,都有一个具象化的软件——操作系统,安装在计算机中。在这样的情景下,操作系统起的作用是驱动硬件,管理资源,承载上面各种应用的功能需求。图3显示了操作系统与软硬件的关系,其中应用市场作为操作系统的一部分,即应用生态。

图3 操作系统基本架构示意图

有一个术语“内核(kernel)”我们经常会听到,这是指系统运行环境中最核心的一个组件,它负责硬件资源的管理和调度、外部设备的接入(通过驱动程序)、系统对环境的响应(中断和异常)、数据存储和文件系统、网络接口等等。本文对内核不作进一步讨论。

操作系统的概念可以推广到更广泛的场景中,于是就有了各种冠以操作系统名义的说法,比如云操作系统、商业操作系统、城市操作系统、汽车操作系统,等等。对这些概念的合理理解方法是,把整个场景想象成一台“计算机”,使这台“计算机”工作起来的核心基础软件就是操作系统,其上可以运行各种“应用程序”,从而该场景成为一个软硬件整体系统。譬如,云操作系统的“计算机”是数据中心,汽车操作系统的“计算机”是汽车。

由于操作系统的抽象性,以及对于“计算机”的硬件有较好的适应性,操作系统的实例与计算机的实例有显著的对应关系,即一台计算机对应一个操作系统实例。这很关键,用操作系统的思路解决的不是一台计算机能够工作的问题,而是大量计算机都能够工作的问题。对于操作系统,实例是一个重要的概念,每一份具体的安装是一个实例。当一个操作系统被安装到两台计算机上时,就形成了两个实例。这两个实例可以有不同的配置,安装不同的应用程序集,服务于不同的需求。在运行过程中它们可以选择升级到操作系统的新版本,也可以选择不升级。

在前一篇文章(“浅谈物联网操作系统”)中提到的物联网操作系统,即指在一个物联网场景中,如何让物联网设备协同起来解决这个场景中的信息和计算需求。当用于工业制造场景时,这个物联网操作系统扩展成一个智慧工厂操作系统。

03

云平台 vs. 操作系统

前面两节解释了云平台和操作系统这两个基本概念。从本意来讲,云平台体现的是云的开放能力,可以解决上云客户对于计算资源的各种需求;而操作系统解决的是如何让一台计算机更合理地发挥价值。它们各有适用的场合,某种程度上并不适合拿来做简单的对比。但是当同一件事情既可以用专业的云平台来解决,又可以用泛化的操作系统来完成时,拿来做对比分析就很有意义了。在这种情况下,云平台和操作系统代表了两种架构思路。

我们以物联网云平台和物联网操作系统来对照说明这两种架构。按照文章“浅谈物联网操作系统”中的定义,物联网操作系统可以让特定场景中的各个IoT设备协同起来。有一个具象的操作系统软件实例被安装到这个场景中的计算设备(比如PC服务器)上,它将IoT设备连接到一起,并按照定义好的规则或者学习得到的模型来协同这些IoT设备的运行。图4显示了物联网操作系统的逻辑架构。

图4 用物联网操作系统架构的场景

拿智能家居为例,一个客厅里有几个或者十个以上的IoT设备,按照云平台架构,这些IoT设备连接到云平台,在云平台上通过配置规则让这些设备协同工作;按照操作系统架构,在一台计算设备上安装一个操作系统实例,并且让这些IoT设备连接到该操作系统实例中,然后配置规则让它们协同工作。这一计算设备既可以是一台单独的PC计算机,也可以是某一个计算能力较强的设备,甚至是云计算环境中的虚拟机。

其次拿酒店的场景举例,酒店中的IoT设备,包括房间里的设备和公共区域的设备,都需要更有效地进行管理和控制。通过云平台的规则可以控制这些设备,并且需要跟酒店的业务或管理系统联动才能实现预期的智慧酒店效果;用操作系统架构,可以与酒店业务系统更紧密地结合在一起,打造可在本地环境运行的智慧酒店,避免酒店业务依赖于外部网络环境。

用云平台或操作系统架构,在基础功能上可以相互替代,但是在现实场景下,两者有显著的区别,见表1。

表1 云平台与操作系统架构的区别

以下是进一步解释:

  • 开放性。云平台通常是一个开放的平台,理论上可以满足客户潜在的各种需求,然而,由于云平台是共享的,客户的个性化需求要么通过云平台的服务层(SaaS)来满足,要么客户自己叠加上层功能。譬如,酒店的场景化需求在通用的IoT云平台难以满足,可在酒店管理系统或者单独的应用系统中实现。
    操作系统也是开放的,它的抽象程度更高。客户的个性化需求通过上层应用或者额外的系统服务来满足。通用的操作系统加上行业定制的组件(服务或应用)可以形成行业版本的操作系统,譬如从物联网操作系统发展成智慧酒店操作系统。尽管云平台也可以通过SaaS服务来满足智慧酒店的应用需求,但是智慧酒店操作系统是一个更为直接的行业方案。
    云平台的开放性在于能通过对一个共享实例的扩展来服务各种客户的需求;操作系统的开放性在于,不同实例可以使用不同的扩展形式和内容,从而服务于该实例所在的场景。

  • 数据保护。对于商业或者工业场景,数据保护是一个关键事项。云平台获取到客户的设备的运行数据,必须尽责保护好这些数据,不得泄漏或者滥用。
    在操作系统架构模式下,数据由客户自主控制,他们可以有选择地与合作伙伴或者主管部门交换数据。

  • 部署形式。云平台提供商在云端部署其服务,客户的设备或者应用系统连接到云平台,客户自有的应用系统可以灵活选择部署在本地或者云上。大多数云平台只提供了一个部署地来提供服务,但也有云平台提供多个部署地为不同区域的客户提供服务。例如,西门子的MindSphere云平台分别部署在Amazon的AWS、Microsoft的Azure以及Alibaba的公有云上,服务于各个地区的工业企业。
    操作系统的部署较为灵活,对于商业或者工业场景,客户可以选择本地部署,也可以公有云部署,或者混合部署(譬如,核心系统在本地,扩展部分在公有云)。

  • 业务可靠性和性能。在可靠性方面,云平台的优势是有专业的团队来维护,劣势是中间的依赖链路较长,有物理上的不可控因素。另外,云平台自身的逻辑复杂性也潜在地影响客户业务的可靠性。受链路长的影响,性能和延迟是客户在选择云平台来承载其业务时的一个重要考虑因素。
    操作系统架构的优势是,在本地部署的情况下,客户对于操作系统及其上的应用系统有完全的控制权,但需要有专业人员或者授权专业团队来维护系统的稳定性。

  • 迭代发展。无论是云平台还是操作系统,都存在迭代演进的需求和过程。云平台的迭代相对而言,影响面大,一个功能的迭代有可能影响到很多正在使用的客户,回退机制复杂,要全面考虑数据一致性问题。对于客户而言,涉及到云平台内部实现逻辑的功能调试比较复杂,甚至依赖于云平台的响应。
    操作系统的迭代与应用系统的迭代可以分开进行,这得益于操作系统的抽象程度更高,并且可以按实例进行测试、调试和迭代发展。

以上这些区别的根源来自于架构不同(层次划分、实例存在形式和数据共享方式),以及部署方式不同。这些不同点带来的影响是系统性的,并且对客户不透明,最终造成两者的商业运作模式以及生态建立路径也有显著差异。

顺便也提一下,云平台的多实例化成本高,甚至需要重新设计(有一个现实案例:某个政府机构请一家云平台提供商搭建一个独立的实例,服务于该政府机构所在辖区中的企业或个人,此项目金额达到上亿元,时间周期为一年);而操作系统天然按照多实例化来设计。

然而,云平台与操作系统也有相互融合之处。当大型客户碰到云平台时,可能会要求独立部署,或者私有云部署,在这种情况下,云平台向操作系统的架构靠拢;当客户需要建立自己私有的云平台时,可以选择用操作系统来搭建。也正是基于这样的原因,在大型客户的场景下,可能同时存在操作系统和云平台的架构模式。云平台带来的好处是,服务能力可以伸缩,用户可以随时随地访问云平台的服务;操作系统带来的好处是,整个云平台可以复制到相似的场景下,并且随着操作系统的迭代升级,原有的客户有机会继续享受新版本的功能增强。

智慧城市是一个超大型的客户场景。根据城市的管理职能,它需要有众多的专业平台来服务于城市居民和城市管理者,每个城市都建一套相似或不相似的平台,这是极大的重复性智力投入。若能把城市的管理职能抽象出来,形成操作系统的设计,就有机会将先行实践的智慧城市经验带入到后来的智慧城市建设中。这正是典型的需要融合两种架构的实际场景。

04

结束语

本文首先介绍了云平台和操作系统这两个基础概念。虽然这两个概念原本不具有可比性,但是当它们分别作为架构模式应用到一些特定的场景中时,比如物联网场景,对它们进行分析和比较就有意义了。因此,本文重点比较了这两种架构,同时也提到了在有些大客户场景下融合这两种架构对技术发展和资源投入是非常有益的。

指令集TM智能科技(Instruction SetTM)成立于2018年8月,由计算机工业界领军人物潘爱民博士创立,集结了来自国内外顶尖高校或著名公司的技术及行业专家,目前在杭州已经建立了上千平米的总部及研发中心,并在上海、重庆布局子公司以便提供更好的本地化服务。

指令集TM智能科技(Instruction SetTM) 既是一家商业公司,也承载着让世界更加互联和智慧的美好愿望。通过打造安全可控的自主智能操作系统(iSysCoreTMIntelligence Operating System),为数字化智慧转型提供智慧、安全、开放和易用的底层基础软件设施及配套解决方案,助力政企提升效率和价值。

云平台与操作系统两种架构的分析相关推荐

  1. x86跑android,ARM跑Win,X86跑安卓,为什么两种架构互相“踢馆”?

    原标题:ARM跑Win,X86跑安卓,为什么两种架构互相"踢馆"? 最近,Android X86项目终于升级到了Android 11底层,基于安卓的Bliss OS 14也因此让X ...

  2. 数据集成的两种架构:ELT和ETL

    数据集成的两种架构:ELT和ETL 集成是数据工程师要做的工作之一.一般来说,数据工程师的工作包括了数据的ETL和数据挖掘算法的实现.算法实现 可以理解,就是通过数据挖掘算法,从数据仓库中找到&quo ...

  3. 视频网站服务器架构,适用于视频直播网站开发的两种架构

    原标题:适用于视频直播网站开发的两种架构 为了保证直播的顺利进行,技术人员在开发过程中可没少费了功夫.其实直播架构的设计对于直播来说,也是决定直播能否稳定运行的因素之一.通常,为了能够很好的应对实时交 ...

  4. 百度服务器自动重启,百度云服务器重启的两种方法介绍

    百度云服务器重启的两种方法介绍 发布时间:2020-04-15 13:39:07 来源:亿速云 阅读:315 作者:小新 本篇文章和大家了解一下百度云服务器重启的两种方法介绍.有一定的参考价值,有需要 ...

  5. 在HPUX中IA64和PA-RISC两种架构下Oracle数据文件

    最近刚购回一台IA64的HP小机,装好Oracle后,经测试可以把PA-RISC架构下的oracle数据文件直接copy 过来使用.之前有看过一个在HP小机上RAC的异构就是说PA-RISC和IA64 ...

  6. Hotspot虚拟机的两种架构模型

    市面上的java虚拟机有很多种,整体来说分两种架构特点:栈.寄存器 一.基于栈架构的特点(市面上常见的java虚拟机大多的架构方式) 设计实现更简单 不需要考虑寄存器分配问题(使用零地址指令方式分配) ...

  7. 利用好手头的资源解决海量语料资源收集以及利用哈工大的LTP云平台解决依存句法和语义依存分析

    一.利用好手头的资源解决海量语料资源 基于语料做机器学习需要海量数据支撑,如何能不存一点数据获取海量数据呢?我们可以以互联网为强大的数据后盾,搜索引擎为我们提供了高效的数据获取来源,结构化的搜索结果展 ...

  8. Android AsyncTask两种线程池分析和总结

    转自:http://bbs.51cto.com/thread-1114378-1-1.html Android AsyncTask两种线程池分析和总结 (一)    前言 在android Async ...

  9. python怎么模拟浏览器交互_干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏)...

    今天为大家带来的内容是:干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏) 文章主要介绍了python爬虫模拟浏览器的两种方法,结合实例形式分析了Python爬虫模拟浏览器的两种常见操 ...

  10. Android之AsyncTask两种线程池分析和总结

    Android AsyncTask两种线程池分析和总结 (一)    前言 在android AsyncTask里面有两种线程池供我们调用 1.    THREAD_POOL_EXECUTOR, 异步 ...

最新文章

  1. Python数据分析工具:Pandas_Part 1
  2. Visual C++ 菜单
  3. java hadoop api_Hadoop 系列HDFS的Java API( Java API介绍)
  4. django新建utils文件夹与导入方法
  5. mongodb数据库显示obj_Mongodb使用
  6. DateTime 格式相比较,timestampdiff() 函数的运用
  7. mysql geometry 维度_使用MySQL的geometry类型处理经纬度距离问题的方法
  8. 什么是同步异步?阻塞非阻塞?
  9. 校友录管理系统设计c语言,校友录管理系统分析设计分析.doc
  10. Hibernate映射组件属性为集合(二)
  11. 【NumPy基础】100道numpy练习——进阶篇
  12. The Tao of Programing-编程之道
  13. 如何使用JavaScript重定向到其他网页?
  14. 图像特征提取现成的方法
  15. Axure教程(中级):网易云音乐听歌识曲效果模仿
  16. 使用跟踪查看器查看 ASP.NET 跟踪信息
  17. [Asp.Net Core]鉴权授权
  18. 谁能最后享受到胜利成果?
  19. c++栈的基础应用,括号匹配、逆波兰表达式求值
  20. 命令行操作MySQL - 《表索引》汇总

热门文章

  1. 云计算的三种服务模式:IaaS、PaaS、SaaS
  2. Nature综述:宏基因组时代的病毒分类
  3. vs2005+sql2005的新一天
  4. Win Server 2003搭建Sql注入环境
  5. 使用Python发送邮件(图片、表格、附件) 系列二: 同时发送图片和附件实际案例
  6. 服务器三块硬盘missing,服务器阵列崩溃、硬盘损坏、分区表丢失、红屏,还好数据救回来了...
  7. 什么叫TEM、TE、TM电磁波?有啥区别-史上最明白的解释
  8. vue中表格统计金额,前面设置美元符号,并设置颜色
  9. 利用python通过站长之家查询ip地址归属地
  10. 中科大计算机辅助图形实验室,Prof. Ligang Liu at USTC (中科大刘利刚教授)