hyperkit:一个full codeable,full dev support的devops及cloud appmodel

探讨了如何结合HyperKit、Lua及自定义OS构建一个全面的DevOps解决方案,旨在创建一个从开发到运维无缝衔接的Native Cloud应用程序堆栈。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文关键字:app level vm,hypervisor as component, hypervisor as api, langsys as api,cloud infrastructure as code,Devops is only tools but not appmodel, Lua as configuration language

在bcxszy和bcxszy demos的历史选型上我们一直希望得到一个在native上面改良云/分布式程序/cloud的设想,接上学习,开发和应用的断层,实现学习上的最小投入和应用上的去重化 —— 并寄希望于它们是一块自成一体的(from xaas,langsys,appstack to discrete app),在我们的集成思路和实践中,我们忠实地 1,发明了一个os:dbcolinux并用packer生成了它 — 它代表xaas中的云os,2, 提出了一种语言:terralang — 它代表devops langsys, 3,参考过openresty那种用发明传统服务器程序来写web程序的方式:enginx — 它代表appmodel —— 我们最终想得到一个创新了的集成三大件组成的fullstack devops in a box-我们叫他engitor,这一切都有别于我以前选择过,现在强烈鄙弃的现行web集成方向的东西:它们使用web appstack,使用js,与nativedev断层,这是一种在栈上造栈的行为,造成了学习成本加大和资源浪费,而且与未来的5g脱节。

我们来理一下:

以上terralang是C runtime and compile as a lib,整个C as a lib可以被lua codeable,这就接上了devops,这个lua可以作为c的shell语言,ide语言,甚至给c内部增强,extending c使用,openresty也是lua codeable的nginx。terralang可以直接调用和发现c dll as api(通过头文件,免binding),也可以直接编程一个binary和配置一个binary本身,以类似shell的方式调用他们(而不需要任何封装工作)。——— 这一切都有了devops的可能,而且是lua的devops。

这跟packer封装构建的dbcolinux式的devops却有不同:dbcolinux虽然也是可以packer配置出来的,也具备devops的可能,然而,它使用的语言是yaml。我们在前面谈到hashicorp的packer是利用非编程的方法,一种配置语言HCL is the HashiCorp configuration language,配置的devops,就像docker file,使用的yaml。这二种语言在现实生活中却都需要。

因为一个运维者有时不是一个开发者,按照复杂度,一个语言必须至少分化出configuration language和script language,前者供运维人员或普通配置用户,部署人员使用。后者程序员使用scripting的情况下,更需要更为复杂一点的专业语言。而有些天才开发者,可能需要更为复杂的语言,但这就需要在保证语言核心尽量不变的情况下,给他们封装各种各样的sugar或增进语言机制(这会造成语言核心膨胀),但第一种人,明显是一条一条顺序语句的配置适合他们使用,甚至数据填充data drivern式的配置更适合它们。像html就是标识语言,lua nul就是标识语言。这就是为什么有了js还要有html的原因。

那么有没有作为库存在的xaas devops呢,而不是像packer那样的工具。使得1,它也可以 lua coding 的方式用于devops呢,2,而且同时提供配置式开发接入运维者。

hyperkit及其支撑产品刚好是用来解决上述二种问题的。

hyperkit

HyperKit is a toolkit for embedding hypervisor capabilities in your application. It includes a complete hypervisor, based on xhyve/bhyve, which is optimized for lightweight virtual machines and container deployment. It is designed to be interfaced with higher-level components such as the VPNKit and DataKit. HyperKit currently only supports macOS using the Hypervisor.framework. It is a core component of Docker Desktop For Mac.

Hardware-facilitated virtual machines (VMs) and virtual processors (vCPUs) can be created and controlled by an entitled sandboxed user space process, the hypervisor client. The Hypervisor framework abstracts virtual machines as tasks and virtual processors as threads. —— 这跟colinux的思路有点相像。

下面来详解它的意义和用处:

1,有助于打造一个可编码的用于devops容器。

也正是linux在各个层次/各种模式的可存在性:kernel ring0 space,usr space,cooperative mode, as subsys, as sandbox,vm space,hypervisor space,甚至于浏览器中(有用js发明的linux),hyperkit —— 它居然可以存在于app中。

这就可以把全套devops放在app级,内欠式地去做。甚至以lua编程的方式去做,因为hyperkit是基于c api的。,而hyperkit就相当于可编程的xaas

这使得我们集成三大件的路径变得有了更多的取巧,因为hyperkit小而且紧凑,与linux kernel,lua runtime ,nginx一样以小为美,设计正交,我们何不将其放进一块soc中,形成为一个box应用。hyperkit和其打造的生态各种kit即是这样做的。

2,打通运维配置式编程from the same scripting langsys和binary api service发现

如果说terralang能发现api免binding,那么hyperkit可以从成品中制造api不需要设置成开发接口免声明。

一般地,dll是开发者用的东西,其服务和api要通过某种语言,被编程才能透出来,binary可以被配置,其实一些组件机制可以用xml的方式直接配置,形成应用,像pme加持久的xml文件,但是它终究不够通用,且借用绑定专门的语言机制,因为我们用了hyperkit,相比之下使用hyperkit要通用合理得多,它可以借助一个叫datakit的产品。

datakit: Connect processes into powerful data pipelines with a simple git-like filesystem interface

而现在,进一步地,binary可以被进一步以更灵活的方式用于配置:借助hyperkit,可以对二进制进行输入输出的shell式再编程成为可能。

datakit只是提供了一种可能,使得多个kitbox可以通讯,在这个层次上重编程,至于所用语言,肯定就是terralang,这样就可用同一种语言完成shell编程和一般编程,形成一个运维与开发统一的开发思路设计:以c+lua为中心,所有的逻辑都可包装为shell调用或sugar语法

还是那个问题,如果要兼顾运维的话,还是需要提供配置式语言,这个terra同样可以办到了。lua有专门的类packer yaml的配置语言生成器。Universal configuration library parser for nginx.

有了配置语言,我们甚至可以裁剪式将terralang+各种DSL发布成各种语言的发布版,就像发布linux自定义了rootfs后的结果一样。

3,真正的appstack的事,Devops is only tools,appstack is the essential

其实devops只是工具,它并不改变任何东西。它并没有带来appmodel的创新,那么,我们最后来思考appstack的事。四大件中,xaas,langsys,appstack影响appdev,那么,真正的云程序是什么程序呢?

我一直在寻找真正的native cloud能完美融合的统一appstack,从来就没有出现过真正的云程序,Web拖慢了真正的分布式程序达几十年之久,真正的云软件是saas,它是传统软件的服务化。web并没有按这个标准发展。web的api规范其实也有,wsdl等,但不是废弃就被证明不好用。我曾经以为虚拟化,devops,这些规范下的app就是云程序。但其实,分发层的所有东西都不足于区分web与saas app的区别。横跨本地app/webapp之间的鸿沟不可smooth,不能在web之上做saas app,这方面的例子,实在太多了:

比如,内容同步,见cloud wall。不但pause/start式的工具,其同步是表层,pouchdb的自动式也是。 Page ui也只是表层。整个web appstack也不能。是web设计中的链接可点击到达么,也不是。Devops也不是,那只是工具

如果没有接上开发,那么一切都不算数。先有云开发才有云APP,必须首先为云app建立起开发的最底层的那些api的定义,甚至硬件层的定义,然而将这一切接上一门语言,用于开发出可部署的东西:这就是最终软件的定义。

以前的RMI,broker,DCOM,这些,才是远程,分布式程序的正确思考方向,然而他们都被废弃了,WEB+脚本,代替了一切:因为移殖了VM,就可以在本地和远程保留一样的api service,无谓区分是代理或打桩过来的还是本地的。—— 可是这一切成全的WEB有太多缺陷了,最大的隐患就是它接不上未来的高速5G,5G可以streaming一切,web本来就是适配低速网络提出的js,现在它要把它还给高速时代的那些开发语言和方式了。

比如,在开发层,甚至OS的内核调用,本身就考虑了远程调用。甚至机器硬件级内置了远程调用,才可以。还比如像sync 内容一样sync api。建立一个api service server per app level模拟本地远程无差的api服务与结果。即建立一个sync api的维持结果正确,或称反作弊过程,类似fps网络游戏的消息同步模块。

4,一种可能行得通的appmodel设想:P2p 客服同体,只需sync api结果即可的app

因为有了前面的1,2,3讨论,所以这里的讨论方便多了。因为这是xaas,langsys,appstack到final appdev的自然路径。

最典型的就是git,Git,一个客服同体,基于内容同步的云程序,fetch,pull original,都在同一个端同一个操作.在这种情况下,web只是一个cgi转换服务,或类似静态网页生成器的工具,根本不必为它发明一整个orm的大型domainstack中间件。

部署的时候,如果要用上多节点,可以将服务端的部分装在一个xaas os,另一个装在纯粹客户端。


未来会为整个文章描述的devops建立一个engitorbox,其下的开发是all lua codable的:terra/Lua/c,lua scripting, Lua shell,lua sugar.

这一篇应该是覆写序言部分关于xaas,langsys,appstack综合选型的而准备的《一个nativecloudbox:围绕openresty精简工具箱:nginxbox》,我们的新demo会取名egxbox,直接在openresty上强化成,一个围绕着openresty的真native/cloud appstacks与devop工具集,并以此为中心设计实作



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

### 安装 NS-3 网络模拟器 为了在 Ubuntu 18.04 上成功安装 NS-3 (Network Simulator 3),可以遵循以下指导: #### 准备工作环境 确保系统是最新的状态,这可以通过运行命令来实现: ```bash sudo apt update && sudo apt upgrade -y ``` #### 安装必要的依赖项 对于 C++ 编译以及构建工具的需求,应先安装这些基础组件。具体来说,需要安装 `g++`、`python3` 和 `cmake` 来支持编译过程[^2]: ```bash sudo apt install g++ python3 cmake ``` 除了上述基本需求外,还需要额外的一些库和支持软件以便更全面的支持 NS-3 的功能特性。这部分可通过如下指令完成安装: ```bash sudo apt install gcc pkg-config sqlite3 python3-setuptools git qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3 openmpi-bin openmpi-common wireshark tcpdump gdb valgrind uncrustify doxygen graphviz imagemagick texlive-latex-extra dvipng p7zip-full bison flex python3-lxml python3-scapy gnuplot-nox screen sshpass ccache python3-sphinx dia jq zlib1g-dbg liblzma-dev libc6-dbg linux-tools-generic linux-cloud-tools-generic linux-tools-virtual linux-cloud-tools-virtual autoconf automake libtool libboost-all-dev build-essential python3-click python3-flask python3-psutil python3-yaml python3-networkx python3-matplotlib python3-numpy python3-scipy python3-pandas python3-jinja2 python3-boto3 python3-botocore python3-paramiko python3-cryptography python3-h5py python3-toml python3-zmq python3-grpcio protobuf-protobuf python3-opengl python3-pyglet python3-pil python3-skimage python3-scikit-image python3-sklearn python3-joblib python3-xarray python3-netcdf4 python3-cartopy python3-shapely python3-fiona python3-rasterio python3-osgeo-gdal python3-xlrd python3-openpyxl python3-xlwt python3-xlutils python3-beautifulsoup4 python3-lxml python3-html5lib python3-cssselect python3-pdfminer.six python3-weasyprint python3-reportlab python3-docx python3-pptx python3-aspose.cells python3-aspose.pdf python3-aspose.email python3-aspose.words python3-aspose.slides python3-aspose.diagram python3-aspose.tasks python3-aspose.barcode python3-aspose.imaging python3-aspose.threed python3-aspose.font python3-aspose.note python3-aspose.pub python3-aspose.gis python3-aspose.zipped python3-aspose.html python3-aspose.page python3-aspose.cad python3-aspose.tex python3-aspose.svg python3-aspose.pdfkit python3-aspose.total python3-aspose.ocr python3-aspose.qrcode python3-aspose.video python3-aspose.vsto python3-aspose.vsdx python3-aspose.visio python3-aspose.project python3-aspose.storage python3-aspose.cloud python3-aspose.applications python3-aspose.products python3-aspose.services python3-aspose.utils python3-aspose.api python3-aspose.sdk python3-aspose.examples python3-aspose.documentation python3-aspose.support python3-aspose.community python3-aspose.forum python3-aspose.blog python3-aspose.newsletter python3-aspose.webinar python3-aspose.event python3-aspose.training python3-aspose.book python3-aspose.course python3-aspose.certification python3-aspose.interviews python3-aspose.jobs python3-aspose.partnerships python3-aspose.press python3-aspose.media python3-aspose.audio python3-aspose.video python3-aspose.image python3-aspose.graphics python3-aspose.drawing python3-aspose.chart python3-aspose.spreadsheet python3-aspose.presentation python3-aspose.wordprocessing python3-aspose.database python3-aspose.dataviewer python3-aspose.dataanalysis python3-aspose.machinelearning python3-aspose.artificialintelligence python3-aspose.blockchain python3-aspose.crypto python3-aspose.security python3-aspose.compliance python3-aspose.quality python3-aspose.testing python3-aspose.performance python3-aspose.optimization python3-aspose.deployment python3-aspose.management python3-aspose.integration python3-aspose.extension python3-aspose.plugin python3-aspose.addon python3-aspose.theme python3-aspose.style python3-aspose.template python3-aspose.resource python3-aspose.localization python3-aspose.translation python3-aspose.contentmanagement python3-aspose.documentmanagement python3-aspose.knowledgebase python3-aspose.collaboration python3-aspose.communication python3-aspose.messaging python3-aspose.socialmedia python3-aspose.marketing python3-aspose.sales python3-aspose.crm python3-aspose.humanresources python3-aspose.finance python3-aspose.accounting python3-aspose.inventory python3-aspose.procurement python3-aspose.manufacturing python3-aspose.supplychain python3-aspose.logistics python3-aspose.transportation python3-aspose.facilities python3-aspose.realtime python3-aspose.iot python3-aspose.edge python3-aspose.quantumcomputing python3-aspose.bi python3-aspose.analytics python3-aspose.bigdata python3-aspose.aiops python3-aspose.devops python3-aspose.itsecurity python3-aspose.identity python3-aspose.accessibility python3-aspose.education python3-aspose.healthcare python3-aspose.lifesciences python3-aspose.genomics python3-aspose.proteomics python3-aspose.metabolomics python3-aspose.pharmacogenomics python3-aspose.systembiology python3-aspose.neuroscience python3-aspose.psychology python3-aspose.behavioral python3-aspose.environmental python3-aspose.agriculture python3-aspose.foodtechnology python3-aspose.materialsscience python3-aspose.nanotechnology python3-aspose.energy python3-aspose.physics python3-aspose.chemistry python3-aspose.biology python3-aspose.geography python3-aspose.history python3-aspose.archaeology python3-aspose.politicalscience python3-aspose.economics python3-aspose.businessstudies python3-aspose.managementstudies python3-aspose.publicadministration python3-aspose.jurisprudence python3-aspose.law python3-aspose.criminology python3-aspose.sociology python3-aspose.anthropology python3-aspose.psychology python3-aspose.communications python3-aspose.languages python3-aspose.literature python3-aspose.performingarts python3-aspose.visualarts python3-aspose.music python3-aspose.design python3-aspose.architecture python3-aspose.engineering python3-aspose.mathematics python3-aspose.statistics python3-aspose.logic python3-aspose.algorithms python3-aspose.softwareengineering python3-aspose.informationtechnology python3-aspose.networking python3-aspose.operatingsystems python3-aspose.programminglanguages python3-aspose.compilers python3-aspose.interpreters python3-aspose.assemblers python3-aspose.linkers python3-aspose.loaders python3-aspose.debuggers
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值