一种追求高度融合,包容软硬方案的云主机集群,云OS和云APP的架构全设计

简介: 本文关键字:兼容多主机硬件设计,兼容多os,兼容native/cloud程序模型,兼容本地程序/分布式程序。网络操作系统,不是x11,不是远程桌面,不是web nas,不是pouch存储同步。不是远程投屏。

本文关键字:兼容多主机硬件设计,兼容多os,兼容native/cloud程序模型,兼容本地程序/分布式程序。网络操作系统,不是x11,不是远程桌面,不是web nas,不是pouch存储同步。不是远程投屏。

云在人们的观念中就是远端,它承诺将计算发展成水电煤一样的可被直接利用的资源,与内容和我们本地的客户端或终端接入(所以有了云存储,云GPU等各种传统资源的云化,以及一些或细分或复用的云资源,如云验证,云游戏,etc..),虽然云技术的背后是一层一层的虚拟化,可是它并没有将这种工作进行到我们日常使用APP方面,作为用户,我们还是停在手机上装APP使用云资源的历史情景下 —— 试想一下,我们老早以前就有网络操作系统,TCP/IP这样的C/S程序。可是一直到现在,我们依然这样子使用云。——— 云程序没有过任何改变。它只是将服务端越做越肥兼带更强大的content streaming的改变(比如即将到来的5G)。

稍微涉及到复杂一点的自建云/云系统管理情形下,比如群晖,ECS,裸金属虚拟化,虽然云装机的方式更灵活多样,但我们发现我们最终还是在使用传统的OS来建立和使用云。还有远程桌面,vnc,远程桌面,局域网投屏,wifi display,ip kvm,x11,web界面,这些永远是我们解决操作远程OS的方式。

云APP进化到现在最高级的形式,也就是webapp,它尝试解决一部分问题,可是它似乎依然不够完善,比如,它如同一些本质是”伪remoteapp“一样,永远基于某种远程界面,一部分逻辑在远端。无权直接访问本地资源,且延时较高。

PS:以上三个问题,表层来看,是因为云APP总有个OS,它与本地分属二个OS二个独立迥异的运行实体,这种现实割裂了我们原来使用本地操作系统操作APP来操作远程APP的习惯。—— 人们一般把兼容多OS称为云OS(如fydeos,openstack,linux,windows,etc..),把分布式APP称为云APP(web算,走socket的也算。。p2p去中心的算,暗网的也算。。)。这些OS从来都是相互的复合,早就被设计成单机OS+tcpip,从来没变过,只是被分布到了网络。所以它不可能有真正的分布式。——— 小到content streaming,vnc,大到开发,甚至一切,都只是权宜之道。。以至我们没有过真正的分布式OS和分布式APP,一直在web的小概念里打滚。见我的《打造一个Applevel虚拟化,内置plan9的rootfs:goblin(1)》,我认为这是因为我们始终把“真正的分布式”做到APP层次。短板理论下所以一切都是伪的。

分布式架构的本质问题是OS和APP的选型和实现问题

分布式架构本质是巨大的问题,这是我们bcxszy一直努力选型与实践的目标,因为有前面文章的铺垫,我们现在深入分析这个问题:

在前文《兼容多OS or 融合多OS?打造基于osxpe的融合OS管理器》中,我们看到,有时为了实用。我们宁愿牺牲少量的性能,选择融合这种折中的方案,而不是严肃意义上的那些破哪补哪直面问题解决问题的打法。 还比如:

1,为了促成能用好用的兼容多OS,从技术层面有二种流派和方案,一种是靠虚拟化,发明一套“OS的OS”,利用这样的元OS来管理guest os,一种是利用经典的再造OS的方法,像龙井,wsl,虽然它也是发展host os/guest os,guest os as subsystem,但与虚拟化流派的做法有着绝对的不同。前者依然是用传统的OS叠加OS,除了hypervisor,容器技术毫无创新,而后者,尝试从问题的源头重新去解决问题,从本生态内去解决问题而不是不断复合/融合(这里没有贬低该文OSXPE+PD方案的意思),如果问题出在最初考虑不周,抽象不够,那么就再抬高一个层次。结果是出来一个单一创新了的全新的OS ------ 这才是主体,其它子OS只是rootfs附属技术。

2,带着这些观点再谈分布式APP,我们发现这种历程正有点像业界对于分布式APP的挣扎和创新,在前面我们不断谈到分布式应用模型的讨论,其中最重要的地方《Plan9:一个从0开始考虑分布式,分布appmodel的os设计》中讨论得最为深刻,在那里,我们提到plan9正是这样的创新。它有别于用传统OS叠加的云化分布式 ——— 正如那些单调的兼容多OS技术一样,而是一种从协议级去创新,去重新发明不同理念OS的一种努力,plan9协议是一种从开发,从内核理念到语言,到APP的变革,去促成不同于现今可见的任一分布式APP的全新分布APP,而谈到协议,它必定是某种上种抽象。刚好在《用开发本地tcpip程序的思路开发webapp》,我们还讲到协议化。使用本地方式开发web程序。将web首先升阶抽象变为协议化的东西这样可以融进“静态web仅为资源”这样的webapp。那文中,我们还坚持一惯贬低了webapp vs 通用分布式app的那些优缺对比,因为它使用传统os,利用appstack层打洞,所以它是分布式OS中极为狭隘的一支,Web绝对是分布式appmodel中最浅层的一个典型。

无论如何,从这二大段说的正是:a,虽然能融合也很不错,不过话说回来。这并不表示能直接解决问题也并不是就不能实现效果最大化,b, ——— OS与APP,本来就是问题的一对最原始中心 ——— 只要先解决这类问题并创新,挖掘发现“真正的分布式APP”才能稍后解决开发,语言和工具。c,而抽象和协议升阶,是软工解决新问题出现的手段。

其中,b是中心的中心。

所以,我们为什么不能做一个真正的OS和分布式呢?

首先来看兼容OS解决多硬件,多主机软硬平台融合:一个多主机环境,跨本地远程,多os兼容的多主机方案设计

前文《兼容多OS or 融合多OS?打造基于osxpe的融合OS管理器》中,我们谈到的是单主机多OS的方案,稍微提到但没有深入多主机方案,我们提到,多OS的需求跟多显示器,多桌面机制一样可笑却实际存在。但其实细说起来一点也不奇怪,我可以在一台电脑上装三系统,一桌面系统用于生产,一类似dsm的系统用于同步文件,人手三件套手机电脑路由器,OS各各不一,未来公共使用的物联网(华为hm os?)。基于容器,OS也不会少。我经常看到和能想到的是,有些人还有二部手机,开发者有二个主机甚至多个电脑,

PS:多主机PC,这些主机可以要么是Computer as unit,便携显示器加nano itx小主机打造新式便携pc(用一个双系统机箱,或定制一个类双盘位的nas铝盒把这二个主板装上,nano itx 二个是24*12,下面刚好有空位上电池+整机箱上面覆盖键盘键盘就更好了,,打造多主机笔电式机箱)或者直接多nano itx PC集群,随身网吧(直接定制长vesa挂架挂墙),都可以带着出远门。,最现实的方案:要不就2台pc,一台带typec的笔记本,一台无屏带typec供电的便携显示器。也可以组成至少二主机环境。要么一台有双vesa的显示器,主机在显示器后,二个位。

无论是使用实体现,还是这些实体主机配合使用一台云主机,或全云主机,或云主机加一台实体主机,兼容多OS管理器都能使它们协同工作,我样可以将这些云主机中的一部分分出来一些,比如,负责某些任务较重的APP可以独占一个CPU较强大主机。负责存储的可以独占一台配有大容量存储的主机,因为我们要谈到的兼容多OS主要是在一台机器上装多个OS,负责路由的分在另外一个台机,etc… 如何将这些平台上的OS,以及平台本身用兼容平台/兼容os方案整合起来,使之协调一体,前提是:这一切受兼容OS管理器的管理,它本身是个融合OS。

前面我讲到使用macmini+oray控控的方案,wifi局域网纯软或借助硬件的投屏技术,内网穿透+VNC桌面,或ip kvm显示技术,都可以被舍弃了。因为这是个:远程OS也能被统一的虚拟机以桌面虚拟机同样的模式被分布式管理的架构,如下:

一种mirror to local的远程投屏操作系统,可放在pd

我们在前面《聪明的Mac osx本地云:同一生态的云硬件,云装机,云应用,云开发的完美集》谈到mac的云是一种很聪明的云,它主要将浏览器直接作为云存储的同步客户端,而且通过server app+描述文件管理器,利用caching as sync在苹果不同终端间建立私有线上线下打通的云,而且客户APP和服务性APP同宿一个osx,有别于群晖这种分二端APP的做法。而且它的IDE自带devops,也是一体化客户/服务性APP模式 —— 利用本地浏览器作同步客户端,利用sync+caching同时建立云content streaming,提倡使用客服一体化app ——— 正是Mac显得聪明的几个地方, 一言以概之,mac将云理解为传统桌面的附属,所以在实现上尽量向它靠近。

为什么就不能有一种OS:它将远程的一切无缝mirror到本地,如果远程OS可以被管理,可以像mac server一样,它作为分布式远端的OS,不只是一个远程桌面,而是一个实实在在的与其它OS等同的OS,只是被mirror到这里,所以在本地,有跟远程一模一样的运行状态和所有资源,如果放到PD下,就跟其它虚拟机一样,也即,我们本地会mirror远程机一模一样的状态,如果可以这样做到,为什么不呢?当然,mac也做得并不完善,反正,群晖这种webos,需要急待改进了。

缺少一个真正的分布式OS外观,正是分布式问题得不到真正解决,麻烦开始的地方,必须要在这里攻克它。

是不是还想到了plan9?它将API和运行状态都用本地/远程统一的协议来保存。它可以将nativeapp的四栈全部协议化,包括上面提到的投屏和界面。最主要还是其存储协议化,这种协议不光是面向本地的,也面向分布式。所以plan9是一种协议化升阶OS,它解决的是API,但是这种抽象和协议要向下兼容,即,把远程OS也弄为跟本地一样。

真正的分布式云程序,其行为要类似本地,不仅要从开发层透出API,api as services.而且要mirror出当时的host环境,才能透出整个对应native app的文件系统,等信息。这样才能以类似编程本地app的方式去编程dist app,比如,上传一个文件,你有界面,也有upload api,但是没有远程机器的磁盘信息。更具体点,远程桌面要有上传下载文件。所以,新的applvl runtime,要整合一个xaas环境,而不仅仅是api这些app本身的东西,要么在每个applvl像go塞进去一个vm一样,可以为每个app像plan9一样集成一套9p rootfs,也可以像plan9一样用相同协议的OS来保证这类远程APP有同样的本地/远程互操作性。

其中,第三种方法就可以将这种OS作为管理远程OS的实例,塞入PD,实现本地管理,而不必受到远程桌面之类的限制。有相同的外观。下面谈APPLVL的文件系统外观。

云APP/本地APP融合:一种uniform navtive/cloud appmodel抽象的appmodel设计

我们现在一些分布式文件系统,或oss,或文档数据库最大的毛病,是因为它们在操作系统的粒度上,没有给用户呈现一个类本地文件的打包视图。这些必须做在OS层面。才能给后来的APP提供统一的外观。应该上升到os层作为os的理念。和applvl虚拟化程度。

就如同plan9协议化了分布式OS交流用的存储协议一样,mac osx用finder作云同步客户端一样,统一的文件系统外观,使得可以结合plan9以操作本地文件和界面的方式来操作这些存储,形成真正的storage backend distapp。比如,用于web,可以有,基于化远程可观文件系统的网盘,可以有基于网盘同步的通用webapp设计。

基本,搞定了PD管理器,uniform navtimve/cloud 存储和界面协议。一个app的栈就被完全定义下来了,关键是,这些是按本地原来的用户开发和应用习惯设计的。而不是像web一样打洞,像虚拟化一样造更多雷同的东西(虚拟化只是解决了通往分布式APP问题的平台层及一些层面。更多其它的工作需要完成),而是重新从0开始,重发明,创新包容。也即,为了制造那种nativecloud体验合一的分布式,唯有像plan9一样。从经典的内核,API这些源头做起。

这样。从装机,OS到语言,开发,app,这些最终才能做到最好融合,对于促成一种真正的一种native/cloud融化方案平台和app这一最终目的,才能达成。

———————

Bcxszy用goblin这种被创造以整合plan9rootfs,工作在applvl虚拟级,可用于linux kernel based兼容多OS装机环境的分布式集群环境和类PD管理器,做到平台和OS级的融合。Bcxszy将最终打造一个网盘app用于说明云app/本地app融合的概念的实践。


(此处不设回复,扫码到微信参与留言,或直接点击到原文)

qrcode.png

相关文章
|
1月前
|
存储 人工智能 运维
|
2月前
|
前端开发 API Android开发
10 大 APP 开发方案比较
本文首发于微信公众号“前端徐徐”,深入剖析了当前最受欢迎的十种APP开发方案,包括传统的iOS和Android开发、跨平台的React Native和Flutter、现代化的CapacitorJS和PWA等,旨在帮助开发者在众多选择中找到最适合的开发路径。通过详细分析每种方案的优缺点及适用场景,文章提供了详尽的比较和实用建议,助力高效、优质的APP开发。
157 0
10 大 APP 开发方案比较
|
2月前
|
安全 Android开发 UED
移动应用与系统:探索移动应用开发和操作系统的融合
【10月更文挑战第8天】 本文深入探讨了移动应用开发和操作系统之间的紧密联系,分析了它们如何共同塑造用户体验。我们将从技术角度出发,揭示移动应用开发的最佳实践,并讨论移动操作系统的关键特性。通过案例研究,我们展示了如何利用这些技术来创建高效、用户友好的移动应用。
48 2
|
2月前
|
开发框架 人工智能 物联网
移动应用与系统:探索移动应用开发与操作系统的融合之道
本文旨在深入探讨移动应用开发与移动操作系统之间的紧密联系,分析它们如何相互影响、共同推动移动互联网的发展。通过阐述移动应用开发的关键技术、主流移动操作系统的特点以及两者在实际应用中的融合案例,本文揭示了移动应用与系统之间的共生关系,并展望了未来发展趋势。
|
2月前
|
Kubernetes Cloud Native 云计算
云原生时代的技术演进:Kubernetes与微服务架构的完美融合
随着云计算技术的飞速发展,云原生概念逐渐深入人心。本文将深入探讨云原生技术的核心——Kubernetes,以及它如何与微服务架构相结合,共同推动现代软件架构的创新与发展。文章不仅剖析了Kubernetes的基本工作原理,还通过实际案例展示了其在微服务部署和管理中的应用,为读者提供了一条清晰的云原生技术应用路径。
82 2
|
2月前
|
安全 API 调度
移动应用与系统:探索移动应用开发与操作系统的融合之道
本文旨在探讨移动应用开发与移动操作系统之间的紧密联系,分析如何通过优化开发策略和系统设计,提升移动应用的性能和用户体验。我们将从移动应用开发的基本概念入手,逐步深入到移动操作系统的核心机制,揭示两者相互影响、相互促进的内在逻辑。通过案例分析和实践指导,本文将为读者提供一套行之有效的方法论,助力在移动应用领域取得卓越成就。
38 3
|
3月前
|
安全 Android开发 开发者
移动应用开发与操作系统的融合创新
本文旨在探讨移动应用开发与移动操作系统之间的紧密关系及其相互作用,揭示如何通过技术创新推动两者的融合与发展。不同于传统摘要的简要概述,本文将从移动应用开发的挑战、移动操作系统的演进历程,以及两者如何相互促进、共同进步的角度,进行深入剖析。
|
3月前
|
人工智能 物联网 数据安全/隐私保护
移动应用与系统:探索移动应用开发与操作系统的融合之道
在当今数字化时代,移动应用与操作系统之间的紧密联系日益凸显。本文将深入探讨移动应用开发与移动操作系统之间的相互关系,分析它们如何共同塑造了我们的移动互联网体验。通过阐述移动应用开发的关键技术、主流移动操作系统的特点以及它们之间的相互作用,本文旨在为读者提供一个全面而深入的理解,揭示移动应用与系统融合发展的趋势。
54 4
|
3月前
|
人工智能 安全 搜索推荐
移动应用与系统:探索移动应用开发与操作系统的融合之道
本文深入探讨了移动应用开发与移动操作系统之间的紧密联系,分析了它们如何相互影响、相互促进,共同推动移动互联网的发展。不同于传统的技术解析,本文以通俗易懂的方式,引导读者理解移动应用与系统背后的技术原理,同时启发思考未来移动技术的发展趋势。
|
3月前
|
存储 人工智能 安全
移动应用与系统:探索移动应用开发与移动操作系统的融合之道##
在当今数字化时代,移动应用已成为人们日常生活中不可或缺的一部分。无论是用于社交、娱乐还是工作,移动应用都扮演着重要的角色。然而,要实现这些应用的高效运行,一个稳定且功能强大的移动操作系统是至关重要的。本文将深入探讨移动应用开发与移动操作系统之间的紧密联系,揭示它们如何共同塑造了我们的数字世界。 ##