一种matecloudos的设想及一种单机复杂度的云mateapp及云开发设想

简介: 本文关键字:可编程的os/os kernel/os rootfs,os as service,os as service,mateos。cloudsubos,,客服同体,api/runtime共体,将os api化,headless os core for cloud api,融合云app

本文关键字:可编程的os/os kernel/os rootfs,os as service,os as service,mateos。cloudsubos,,客服同体,api/runtime共体,将os api化,headless os core for cloud api,融合云app

matecloudos,matecloudapp:真正的分布式

在前面我们谈到《enginx,engitor》系列,还谈到《Plan9:一个从0开始考虑分布式,分布appmodel的os设计》,这些文章共同点都是对已有分布式app(一类跨OS/OS进程的APP)的思考和未来创新设想,可以拿来从各个方向类比:前者是传统os+lamp,lnmp方案,以OS上安装的分布式软件作为OS服务子组件(多见于服务器OS环境)透出它们的服务,在这上面打造出一个web appstack(比如apache之于page gui,mysql之于持久db...),在这里,可利用的服务,和API存在于这些组件抽象给语言的后端(非OS固有部分),而后者plan9的本质不同之处则在于提出了一个devable os,将内核中的对象和os本身作为可编程对象,透出这些API服务,直接在已有OS组件上作分布式不提出LAMP之类的多余结构,在这上面打造分布式APP。

后者显然更原生,也更好用,(如上,传统的os只是api runtime/c dlls,api服务也是离线的另起一层,且并不面向分布式,并不是与开发一起被设计。是先把os用起来的原则建起来的,os与api分离。以前,为了达成跨语言跨OS的API,是靠给API打stub完成的。这种方式粗鄙无用已被淘汰不单是rpc技术改良就可以完成的)。而新时代分布式程序和分布式开发的固有特点是:分布式开发要求开发接口与程序本身共体不分离,也就是脚本语言和web开发中,“srcfile即程序组件”那套,------ 当然,现在的web分布式是从lamp上搭建的,现在的OS kernel也都基本不是plan9这类。但我们可以在现存传统的os结果下进行改造。比如,我们可以另外铺设API。将OS作为一种headless api被调用环境。类似传统方式铺lamp服务那样的方式进行:只不过这次向上提升到针对os的组件进行。也即,我们利用plan9思路和方式,从传统OS本身开始做而不下放到lamp,OS服务要作为基础被分布式服务化,发展基于OS分布化之下的分布APP。而且不必涉及到统一使用者的OS跨OS。,如果成功。本地开发和分布式分开完全可以统一。------ 引申开来,即:os/os kernel as serivce,api和api runtime天然一体。组件即demo即api。本地组件即远程服务(自动API化,无须再次面向不同语言作显式API化)。

新mateable分布式用于最小实践教育路径和降低实践门槛考虑

这样做具体有什么意义呢。

matecloudos和matecloudapp,由于OS都是自带文件系统,GUI,和持久的一类综合体,这些服务不必再搭建,作为客户机和作为服务器环境的作用可以统一彼此互为mate,这些理念对于APP开发的统一作用和难度降低作用不言而喻:

首先,(1)第一条,如上所述,本地开发和分布式开发将共享同样的技术基础,变成单机复杂度,我们现在的分布式分开几乎都是统一后端和webapp这二种理念:由于webapp是现在唯一的真正跨端的模型。。我们现在大部分移动端和一些native端应用都是通过分离前后端为统一后端+不同的客户端APP技术完成的,将所有分布式开发视为前后端分离,后端统一API化,都是web形式的调用,比如某个网站后端,或一个天然的cloud function,前端则利用统一的ajax,reactive,pwa技术构建。即所谓的MVC模型。这些都在《一种设想:在网盘里coding,debuging,运行linux rootfs作全面devops及一种基于分离服务为api的融合appstack新分布式开发设想》说过,如果os本身被api和服务化了,那么完全可以用native app逻辑。不必另造一个webapp出来。来达成分布式APP,简化后端。

(2)甚至,我们完全可以在类plan9的理念下统一,使分布式APP和本地native APP开发理念同源,再度降低APPDEV的难度,我们的开发一般都是某种app层次的dev,需要呈现为一个APP形式,比如web在是webapp,移动端是mobileapp,桌面就是nativeapp,软件和编程就二种逻辑和抽象:一个业务逻辑,一个关于APP本身的appstack逻辑。appdev的本质是三种stack(一般是gui,持久,网络)的形式在所处不同形式下的演化。比如文档数据库。就是视图模式下的“文档”,区别于存在于磁盘中的文档。appstack占了一个app逻辑的大部分,可以极大得到简化。

一个例子是类似p2p性质的gitcore客户端程序即是服务端程序,可以以同步的方式代替协议交互。也可以同步的方式来处理数据交互。比如,直接把原生GUI透出为分布式API服务,客户端也可以是远程桌面remote app这样的东西,如果客户APP也是服务端一样的OS,则GUI无须渲染(只需像那些远程桌面协议一样传送位移量)提出一种新的类web的remoteappmodel。天然分布式。

(3)还有,如果是plan9这种kernel,由于整个os内核都是构建于基于对象上。所以可以以编程的方式来调用和共享,以OS抽象和语言统一的方式(这个作用不得了,见《一种shell programming编程设想》,统一问题域和抽象域,甚至语言方案域)同步二个OS间的对象。这样在OS的构建过程中,就穿插预埋了对未来这种OS上的APP编程的设计,甚至统一了APPDEV和这种OS上的系统APP开发。

(4)更多,在线IDE就随处可放。调试也不再基于堆栈跟踪这些反工程层面。。。。。。


我们的设想是基于deepin做一个这样deepincloudos,再在这上面发展一些好用的matecloudapp(集成云开发IDE和云LAMP,首要的就是在线IDE和mineportal apps:如file explorer内置同步,如果能在jupyter上写程序,那么这是一个天然debug backend app,已有这样的产品,不过这是工具层面的,我们就是要将其做到与OS级天然集成。


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

qrcode.png

相关文章
|
22天前
|
数据挖掘 项目管理
打破传统管理瓶颈,6个技巧让项目顺利交付!
本文探讨了在快速变化的商业环境中,如何通过现代项目管理思维与工具提升项目执行效率和团队协作水平。文章详细介绍了项目管理的定义、核心思维、具体步骤及工具应用,强调了明确目标、任务分解、实时跟踪、跨部门协作、风险管理与成果复盘的重要性。通过这些方法,团队可以更高效地完成项目,避免传统管理中的常见问题。
|
4月前
|
Prometheus 监控 Java
微服务架构下的服务治理策略:打破服务混乱的惊天秘籍,开启系统稳定的神奇之门!
【8月更文挑战第7天】微服务架构将应用细分为可独立部署的小服务,提升灵活性与可扩展性。但服务增多带来治理挑战。通过服务注册与发现(如Eureka)、容错机制(如Hystrix)、监控工具(如Prometheus+Grafana)、集中配置管理(如Spring Cloud Config)和服务网关(如Zuul),可有效解决这些挑战,确保系统的高可用性和性能。合理运用这些技术和策略,能充分发挥微服务优势,构建高效应用系统。
67 1
|
4月前
|
微服务
软件设计与架构复杂度问题之理解软件复杂性的递增性如何解决
软件设计与架构复杂度问题之理解软件复杂性的递增性如何解决
|
5月前
|
测试技术 开发者
对抗软件复杂度问题之系统架构对软件复杂度的有什么影响,如何解决
对抗软件复杂度问题之系统架构对软件复杂度的有什么影响,如何解决
|
安全 数据可视化 Java
Jmix - 业务系统高效开发的少代码平台
少代码具有低代码产品的所有优点,但是又没有任何低代码产品的缺点。[Jmix.cn ](https://www.jmix.cn/)从定位、产品设计方面把低代码平台的缺陷都抹平并且提升为优点。我们称它为 “少代码”。
501 2
Jmix - 业务系统高效开发的少代码平台
|
消息中间件 资源调度 分布式计算
任务调度系统就该这么设计(万能通用),稳的一批! 下
任务调度系统就该这么设计(万能通用),稳的一批! 下
|
负载均衡 NoSQL Java
任务调度系统就该这么设计(万能通用),稳的一批! 上
任务调度系统就该这么设计(万能通用),稳的一批!上
|
资源调度 分布式计算 Kubernetes
技术抉择:阿里云13年后重构全部核心调度系统
在阿里云十三年的发展历史上,重新设计调度系统算得上是一个重要的技术抉择。
1377 11
技术抉择:阿里云13年后重构全部核心调度系统
|
7月前
|
SQL 缓存 Java
如何做好大促时的系统高可用
如何在大促中做好系统高可用是大家都非常关心的一个问题,特别是在双十一之前,在大促过程中做好系统高可用保障是有双十一大促的客户都会了解的一个内容。大流量、系统内部/下游不稳定、单机故障、热点请求等等一系列的问题都会导致一些非预期的情况。那么今天就围绕大促来谈谈,如何在非预期的情况下,始终保持我们的系统...
如何做好大促时的系统高可用
|
设计模式 程序员 测试技术
系统困境与软件复杂度,为什么我们的系统会如此复杂
读 A Philosophy of Software Design 有感,软件设计与架构复杂度,你是战术龙卷风吗?
系统困境与软件复杂度,为什么我们的系统会如此复杂
下一篇
DataWorks