边缘计算:云原生,devops友好的物联网- Roman Shaposhnik, ZEDEDA
将物联网设备连接到互联网并不新鲜,但使用这些设备在超大规模上部署和运行实时边缘应用程序才是。边缘计算通过保留云模型的优点(开发人员友好的api和软件定义的一切)来发展云计算,但将其应用于传感器和加固的工业pc的恶劣物理和安全环境。观看本次会议,了解ZEDEDA Inc.(后来在LF Edge的保护伞下捐赠给Linux基金会)创建的新型边缘计算平台的设计和实现。探索一个新的、特殊用途的、开源的操作环境,它必须安全地运行在数十亿的ARM和x86设备上,称为EVE(边缘虚拟化引擎),并引导您了解EVE如何使相同的DevOps文化提高边缘上的开发速度。
视频记录
大家好,我是Roman,今天我们要讲的是边缘计算。有多少人熟悉边缘计算是什么?因为,看满了你的手臂,也许这是一个很短的演讲。好吧。还有人吗?哦,好的。至少,你们中的一些人今天会学到一些东西。所以,我希望,至少你们大多数人都熟悉物联网,因为这是一个物联网的轨道。从历史上看,如果你看看物联网,我的意思是,物联网实际上更多的是一个嵌入式领域,对吧?你基本上可以在非常受限的设备上构建。 And it would be a sort of single purpose built piece of hardware. Single purpose built piece of software, typically a realtime operating system, or something like that.
这些都与你们所了解的会议毫无关系。因为说到底,你们今天参加的会议是关于液体软件的,对吧?它是关于我们如何加快速度,在任何一种计算机设备上尽可能快地搅动软件。而现在,在这些物联网设备上,这实际上是遥不可及的,对吧?所以从这个意义上说,我们正在经历一场革命。
事实上,我正在读这本书,我刚得到的,因为我被邀请参加这个会议,我实际上有一个非常好的幻灯片,叫做事物的流动性。某种程度上,预测我们很快就会处理很多物联网,这些物联网本质上是基于相同的一套原则,我们今天在云计算中认为是理所当然的,我们基本上会尝试在飞行中修改软件,我们将尝试进行滚动部署,所有这些都是DevOps社区在过去10年里开发的。
现在,物联网是一个棘手的术语,因为它已经存在了很长一段时间,我认为它起源于大约10年前。很多时候,当人们说到物联网时,他们实际上指的是树莓派,人们在摆弄他们的圣诞灯,对吧?什么的。最坏的情况是,消费者物联网,你的那种网络摄像头,但这并不是物联网真正有趣的部分。因此,物联网有趣的部分是,这些天,我认为这实际上会真正推动整个社区进入更多的流动软件类型部署,这就是这种物联网。
现在我们离边缘计算越来越近了。所以我今天带了一个盒子。这是德国西门子公司制造的盒子。你们应该知道,西门子是世界上最大的,实际上可能是最大的工业制造商之一。它不仅负责工厂和规划,还负责整个城市的基础设施。西门子基本上就是这个盒子,对吧?不比我的手掌大,对吧?稍后你们可以看一下。它基本上有3个以太网连接,4个USB连接和1个显示端口。从它的大小来看,它确实有点像树莓派。 So, I’m sure you all know how much Raspberry Pi costs. How much do you think this box costs? Any guesses? Anybody? It costs 1,100, and that’s the minimum amount of stuff you can put inside the box, like just 2 GB of RAM.
所以当我告诉每个人的时候,每个人都说,“为什么会有人买这个?”当然,你回到西门子,问他们这个问题,他们会说,“我们不知道为什么会有人买它。我们所知道的是,目前这种盒子的交货时间是4个月,因为它大约在2月份才上市。”他们无法满足需求,最便宜的盒子售价为1100美元。为什么?嗯,很简单。因为这个盒子实际上是用来承受树莓派会融化的环境的。这个盒子在那个环境中测试了至少两个月,这是盒子上的辉煌时光,对吧?
因此,现在我们实际上是在谈论可靠的物联网,我认为,这实际上使一切变得不同。因为现在,谈话从“嗯,它只是一个便宜的计算机设备,我们真的不需要支持它,因为它可能很快就会坏掉。”所以我们只是在修补它。”现在,我们正在部署这些类型的盒子,现在我向你们展示戴尔的盒子,因为戴尔也在做同样的业务。现在我们正在部署这些类型的盒子,这是一个真正关键的基础设施。我们将它应用于工厂、交通运输和能源生产。我们希望通过把它们撒得到处都是,我们基本上会到达云外的云,对吧?
现在基本上每件东西都有一个非常可靠的计算机设备,而且实际上是一个非常有能力的设备。因为即使是这个最小的,他们产品线的盒子,就像我说的,它有2gb的内存。它实际上是英特尔的Atom,完全具备Atom处理器的所有功能。它大概有24g的闪存。所以基本上我们现在谈论的是大约七年前我在数据中心使用的计算机的大小,对吧?现在我们终于准备好做液体软件了。这是我的前提。
这就是Simatic IPC127。稍后你可以看一下。我是说,肯定是英特尔。现在,为什么每个人都对部署这些类型的盒子感兴趣的原因,可以在这张幻灯片中总结出来。根据思科(Cisco)和高德纳(Gartner)的各种预测,基本上,Edge生成的数据量很快就会使实际驻留在数据中心的数据量相形见绌。我们都必须面对它,但我们还不知道该怎么做。
我所说的处理它的意思是,我们必须从法律的角度来处理它,因为有些数据甚至不能转移到云端,即使我们想这样做。就像你在拍摄城市基础设施的监控录像,对吧?很多时候,我们只是有法律限制数据可以移动到哪里。很多时候,仅仅是延迟,就会迫使你处理设备本身的数据流。
所以我认为,对于这样的基础设施,这是一个杀手级应用。至于如何打造这款杀手级应用,没人知道。这对那些在液态软件上投入了大量资金的人来说,又是一个好消息,因为液态软件的关键在于不断地迭代,直到你真正构建出人们可以使用的东西,而且非常令人满意。所以长话短说,边缘计算是不可避免的。但如果你看看我们今天是怎么做的,它实际上是非常糟糕的。
还是那本书,我选了这张幻灯片X轴是更新优先级,Y轴是用户控制。你们可以看到,所有的工业设备基本上都沿着轴的底部。这些都没有触及到液体软件。但是,这正在发生。我是说,西门子卖了很多这种东西。因此,作为软件从业者,当然,我们必须想出一个答案。当然,作为软件从业者,我们会想到的答案是,Edge将是巨大的,所以让我们在它上面擦一些Kubernetes,对吗?因为我们在数据中心就是这么做的。这有什么不同呢?功能是一样的,我们来试一下。
你们中有多少人读过这些报道,我想是去年年中,也许是一年前,关于Chick-fil-A的人试图在所有的餐厅大规模部署Kubernetes。比如一个人,还有其他人吗?好吧。所以,Chick-fil-A基本上也面临着同样的问题。所以他们有这些盒子,不是特别的这种盒子,而是这些类型的盒子,基本上散布在零售连锁店和零售地点。然后他们想要精心安排人们进入零售店的体验,对吧?
也许他们希望它是,我们说预测性维护,所以说菜单,对吧?所以如果他们发现有更多的人来买一种特定的鸡肉,他们就会更多地准备鸡肉,对吧?他们想做一些预测性的维护工作。当然,他们希望他们在本地做,没有可用的,所以他们想到了Kubernetes的想法。很快,他们发现Kubernetes并不是为这种环境而构建的。尽管他们做的原型还不错,但我相信现在他们的原型已经被废弃了。
另一个例子,你可能想再看一遍,因为我想说的是,Edge在这里,所以你最好弄清楚如何利用它。让我们向去年做这件事的人学习。另一个例子是KubeEdge。这主要是由电信公司主导的。中国电信设备制造商华为是KubeEdge的重要支持者。KubeEdge有点像电信公司的想法,他们试图标准化Kubernetes在Edge上的样子。
再说一次,我不会说它完全失败了。它实际上一直在迁移到CNCF的孵化器,云原生计算基金会。但它的拥趸并不多。因为每当有人试图将它部署在Edge的电信视图之外的任何东西上,我稍后会告诉你们更多关于Edge的电信,非电信视图。同样,在Chick-fil-A这类用例中使用KubeEdge是非常困难的。
所以,我认为,这实际上是今年推出的,几个月前,所以我认为唯一有价值的竞争者,如果你真的想用一些Kubernetes,是来自trencher的好家伙的K3S。所以我强烈建议你去看看,因为他们第一次意识到,这不仅仅是Kubernetes的问题。那么,Kubernetes的问题是什么?很快地,这个协议是超级健谈的,这个协议绝对不喜欢处理断断续续的网络,而且它的实现非常庞大,对吧?就像如果你把一个特工塞进你的笔记里,它会占用空间,对吧?同样,2gb,但我还是不愿意只在Kubernetes上花费1gb。
所以K3S的人,基本上拿出了这个项目,基本上保持了Kubernetes api,但改变了底层的实现,并针对这种类型的用例进行了优化。这是其中之一,但我认为他们的超级天才之处在于,他们试图把它应用到这样的东西上。他们很快发现,这不仅仅是Kubernetes的问题,因为这是部署的最后一英里。第一步是,在这个程序上运行的是什么操作系统?因为到目前为止,人们一直在构建嵌入式操作系统,以及基于Yocto的操作系统。
所以很多时候,你会发现数据中心是一些糟糕的操作系统,你甚至无法重建。在这一点上,你的Kubernetes完全卡住了,因为突然之间,Lipsey就不像大家期望的那样了,对吧?所以Rancher的好朋友们,不仅是深K3S,它本身就很好,我强烈建议你们去看看。事实上,这个演讲本来是由他们来做的,但是他们退出了。所以我实际上是在帮助他们。但我也强烈建议你去看看K3-OS操作系统。这就是他们试图用一种普遍的方式解决的方法,基本上是第一英里问题。
他们基本上是在说,“好吧,Kubernetes本身必须在某种操作系统上运行。我们必须控制这一点,否则我们就没有能力在我们得到的任何东西上运行。”所以他们建立了一个非常聪明的类似Linux的发行版,他们然后,再一次,这就是他们的努力让我如此兴奋的地方,他们基本上说,“好吧,在这里部署一个操作系统是战斗的一半。因为,还记得液体软件吗?那么我们要怎么更新这个操作系统呢?我们怎么做才能真正保护这个操作系统?”一种选择是,去找今天向您销售所有这些解决方案的供应商,让它们在您的数据中心中运行。但问题是,这些供应商还没有准备好在这些类型的机器上运行。
K3-OS基本上是在尝试说,让我们扩展Kubernetes。我们只是在容器管理的层面上处理,但是让我们扩展API,这样我们就能在均匀偏差的层面上处理。因为,记住,有很多软件你甚至都没想过。有偏见,有UEFI,当漏洞被发现时,也需要不时升级。所以他们基本上说,好吧,让我们尝试将Kubernetes api一直扩展下去,K3-OS加上K3S的组合基本上就是你如何在你的零售场所散布的所有这些计算机上部署Kubernetes api。非常非常有趣的努力。我强烈推荐你去看看。
现在我们简单地说了一下,但是,让我们再退一步来理解一下,为什么Rancher的好人要和所有这些问题作斗争。我向你们提出这个是因为这个。如果你从表面上看Edge的要求,这个盒子看起来很像一个服务器,我曾经在我的数据中心,对吧?七年前,但也不是很久以前,这是右边的东西。但在很多其他方面,这个盒子和我的手机一模一样。为什么?因为这些盒子经常被偷。这些盒子一直在被修补,因为它们不存在于数据中心的外围安全范围内。人们总是走到他们身边,呆在他们身边,使用B棒,他们拆解它们,他们试图窃取秘密,他们试图用它作为攻击向量进入你的it基础设施的其余部分。这样的例子不胜枚举,对吧? So that’s one aspect of it.
就像我的手机一样,如果我忘记带了,酒吧就需要保护,里面的所有东西都需要加密。我们已经开发了一大堆关于如何在手机上做到这一点的操作知识。这是Edge的一大要求。另一大块需求,更有趣的是,又回到了手机。如果你想想传统的数据中心,网络是很好的定义,对吧?你基本上有一个人定义了你的拓扑,你有直接开关的顶部。是的,有时它们会下降,有时你必须处理它。但大多数情况下,这和我的安卓不一样,你不需要在LTE和WiFi之间切换,然后再切换到LTE,然后再切换到另一个LTE提供商,但安卓上运行的应用程序必须窃取功能。这些都与数据中心的设置毫无关系。
所以Edge的挑战在于,我们如何在传统的数据中心环境中交付软件?另外,我们如何保护硬件,以及我们如何保护运行在这些盒子上的软件,以一种非常移动的方式?毫不奇怪,谷歌实际上是最早意识到这一点的公司之一。他们想出了这个叫做Android Things的东西,本质上是想把传统的Android操作系统扩展到Edge上。不幸的是,它有自己的一系列问题,我们今天不会讨论。但我要告诉你的是,从现在开始,我们基本上要处理两种类型的计算机。一种类型的计算机是数据中心内的计算机,它们有一套非常可预测的需求,我们知道这些是什么。
当我说数据中心时,我不是指你的私有数据中心,公共云提供商,比如谷歌,实际上会有一个超大规模的数据中心。它仍然是一个数据中心,对吧?它仍然作为某个数据中心存在。然后,我们基本上会把所有的计算机都放在数据中心之外。这是我们要处理的最大的区别。对我来说,这就是Edge的定义。如果你看看Linux基金会,嗯,Linux基金会顺便说一下,对于那些不知道的人,我的意思是,很长一段时间以来,他们完全在Linux之外做事情。产生了这些开源基金会,非常成功的基金会。其中一个成功的基金会是处理数据中心内的计算机,或者云原生计算基金会,CNCF,对吧?它非常成功,Kubernetes非常棒。
Linux基金会创建了另一个名为LF Edge的基金会,基本上允许业界从本质上满足共同的需求集,即今天的边缘计算。剩下的时间,我们将讨论一下LF Edge,更具体地说,是我正在构建的组件。希望你们会感兴趣。但在此之前,就像我说的,Edge对不同的人有不同的含义。所以,一旦你离开数据中心,你击中的第一个边缘,基本上是边缘,我们称之为部分边缘,对吧?这基本上是电信公司的边缘,但不是真正的边缘。它是电信网络远程部分的边缘。这是所有的中心办公室,就像我们过去用来存放电信设备的那些大楼一样。
这些是co,电信公司还得运营它们。再说一遍,这些计算机仍然在数据中心里,对吧?因为这是一栋受保护的建筑,电信公司拥有里面的一切。但它已经超出了电信公司的传统核心。这是右数第二个。对吧?然后很快从右边开始第三个,那是电信网络的边缘。这实际上是基站,电信公司对即将推出的5G有很多担忧,因为这是受影响最大的。
所有的中心办公室仍将大致保持不变,但基站将会很多。如果现在我们只有一个基站,那么现在有了5G,我们基本上每个街角都有一个基站,对吧?所有这些都需要管理。现在我们讨论的是Edge。因为再一次,这些电脑现在更接近他们的要求像这样的东西。然后,边缘基本上分叉了,它要么是工业边缘,你的城市基础设施,你的电网能源管理公司,所有这些。或者它可以是你的消费边缘,你的房子,你的家,你的车。Linux基金会基本上决定从这一点开始照顾所有的边缘,对吧?
对于电信公司来说,有一个叫做Akraino的项目试图解决一些CO问题,但主要是关于基站和所有这些问题。还有一个项目,我要讲的是EVE,边缘虚拟化引擎,它是为工业边缘服务的。还有一个三星的项目,叫Home Edge,这也不足为奇,因为洗衣机,烘干机,冰箱等产品都是这家公司生产的。在中间,有一点中间件。EdgeX Foundry是一个中间件,如果你知道什么是Cloud Foundry的话。它基本上是一种边缘的云铸造厂,在那里他们试图基本上抽象你作为一个开发人员远离一些问题,但这些只是中间件的问题,对吗?
就像Cloud Foundry和spring在某种程度上会吸引你远离数据库。EdgeX Foundry会让你远离传感器是什么,或者工业协议是什么。因为,很明显有很多工业协议,你需要它们之间的互操作性。如果有一个中间层就好了,它可以在它们之间进行转换。这就是EdgeX。
现在我将谈论EVE,边缘虚拟化引擎。如果你想要更多的Linux基金会项目的功能视图,实际上有相当多的在Edge空间中播放。所以很明显,像Akraino, EVE, Home Edge这样的大项目。但也有一些,我称之为基础设施项目。它们是Acorn的管理程序。有不同种类的操作系统,像Zeefax这样的专用操作系统。还有Photon OS,这是一个更受限制的操作系统。实际上在Linux基金会中有相当多的项目正在一起创建这个LF Edge。顺便说一下,LF Edge是全新的。它是今年二月才成立的。 So we’ve made a big announcement, and all of that.
所以人们总是告诉我,“嗯,它看起来没有CNCF那么令人兴奋。”我说,“CNCF刚开始的时候看起来并不那么令人兴奋。”那么,它会像CNCF一样令人兴奋吗?好吧,如果你加入,它就会。但如果你不加入,它就不会存在。这其实是一个很简单的命题。所以在这个大的生态系统中,我的公司和我领导的开源项目,我们专注于工业用例。像这样的盒子。回顾一下一些基本原则,就像我告诉你的,我们需要建立一个基础设施,它本质上是在运行应用程序的业务中,对吧?
我们要回答的第一个问题是,什么是应用程序?对吧?因为再一次,回到我的Android类比,这是Android给开发者生态系统带来的最大好处之一。因为在Android之前,一个应用程序可以是黑莓应用程序,或者诺基亚应用程序,或者爱立信应用程序。对了,他们每个人都有不同的资料。所以即使在这些家庭中也会有不同的应用。对于Android,是的,当然,有不同的硬件配置文件,但大多数时候它只是一个APK,对吧?我的应用程序作为一个开发人员,我完成了建设我的APK,我会把它上传到play商店,我完成了。
所以我们需要定义Edge上的应用程序到底意味着什么,在Linux Foundation Edge中,我们正在标准化Edge容器的概念。所以每个容器都是一种扩展,是OCI的一种真正的扩展,传统的数据中心,开放容器倡议的容器格式。但它也意味着要包含一些东西,再说一遍,我在数据中心不是很相关。在这些机器上,您仍然必须运行实时或接近实时的操作系统。因此,无论您在打包方面做什么,它都必须支持实时操作系统。现在,我们觉得我们实际上有一个很好的答案,如何统一容器,vm和unikernels,这就是Edge容器的全部内容。
现在,一旦你定义了应用程序,一旦你定义了打包和分发格式,剩下的就很简单了。至少应该是这样。它只需要在某个东西上运行,然后你只需要定义它运行的那个东西的属性。所以对于《EVE》,我们基本上向所有人提出,它实际上必须具有三个基本属性。所以它必须是零接触,在某种意义上,这个盒子,这个特殊的盒子实际上有一个显示端口,很多都没有。而那些没有的,它们甚至没有串行连接。它真的需要零接触。你把它固定在天花板上,打开它,它就能工作了。
所以在我们的开源项目中有一个笑话,我们基本上需要像僵尸网络一样运作,就像那些感染你电脑的病毒一样。因为它们可以在任何地方发挥作用。他们不会真的问你,“嘿,我的WiFi密码是什么?”或者,“帮我做这个或那个。”他们只是跑。所以无论我们为这些盒子构建什么,基本上都必须像僵尸网络一样。它必须跑到任何地方,任何地方,并且绝对是零接触到一个你甚至不知道它在那里的点。就像你不知道僵尸网络在哪里感染了你的电脑一样。
它必须支持任何类型的应用程序。就像我说的,实时应用。有传统的容器。但它也必须支持任何类型的硬件。所以Edge上的硬件异构性仍然很高。情况在好转,但还是很高。它还必须支持任何类型的网络。因为,还记得Android的类比吗?这些小东西,实际上必须一直在LTE和WiFi之间跳来跳去,但这还不是最糟糕的。最糟糕的是,当它在WiFi上时,它基本上肯定在几个网络盒后面。 So sending data to it becomes a real issue. It can make outgoing connections, but actually routing to it becomes a really, really big issue.
正如我所发现的,建设这个项目,显然路由到LTE IP地址实际上也是一个大问题。所以你需要弄清楚这些家伙存在的网络环境,开发者的答案是什么?因为开发人员讨厌弄清楚如何在防火墙上打洞,以及如何遍历网络盒。不管它是什么,你必须给开发者一个能工作的API。最后,这些盒子,就像我说的,它们必须是零信任的。从某种意义上说,就像你的手机一样,这里运行的任何东西都必须受到保护,盒子本身也必须受到保护,不受应用程序的影响。基于这些原则,我们觉得我们对整个生态系统的发展有了一个很好的认识。
举个移动操作系统或云计算的例子,总是有两个,对吧?有开源的,也有闭源的,第一种,对吧?Android和iOS,作为一个Unix爱好者,我说这些很痛苦。但我不得不说,在云计算领域,开放的家伙现在是零,这是真的。我是说,我不得不说。我不想这么说,但这是真的。AWS是一个邪恶的帝国。所以在Edge上,我们觉得作为一个社区,我们实际上会建立Edge虚拟化引擎EVE,谁会成为一个邪恶的帝国?这是一个非常大的问题。我不知道。 I mean, it could be Google, or Amazon could be, but it actually could be somebody like VMware as well. So we just don’t know yet.
现在来看看项目本身。所以,我们考虑的方法是我们现在拥有所有的孤立系统,它们是作为嵌入式开发类型而构建的。所以我们要做的就是,基本上我们要把所有的软件功能从这些孤立的系统中剥离出来。无论是实时操作系统,还是运行在树莓派上的一组容器。我们试着在一个通用的基础设施上运行它,这个基础设施可以在任何像这样的机器上运行。所以这种通用的基础设施,称之为操作系统和操作环境,这就是EVE,对吧?所以《EVE》基本上是在盒子上运行的东西,它启动,它在盒子上运行。然后它可以支持这些类型的工作负载,本质上为这些类型的工作负载提供一个非常好的软件类型的环境。
显然,一旦你建造了这样的东西,它实际上需要被控制。因为突然之间,就像我说的,我的意思是这些书基本上除了网络连接之外什么都没有。对吧?那么如何安排工作负载呢?你如何管理这些盒子呢?实际上,所有这些都必须从云端进行控制。所以盒子本身会有一个到云的API,但是云本身也会有一个用于管理工作负载的API。这就是Kubernetes发挥作用的地方,因为前端API完全可以是Kubernetes,就像你的Kube cuddle可以与天空中的控制器交谈,然后在这些盒子中调度工作负载。盒子和控制器之间的API,是LF Edge正在标准化的东西。
所以,如果你感兴趣,你绝对可以加入我们。这其实很有趣,因为这是一种奇怪的混合体,介于木偶厨师和云朵之间。它的演变过程非常有趣。但最终,我们想要给每个人的体验都非常像云,对吧?所以,你基本上有DevOPS的Diane,她将在这种类型的硬件上部署工作负载,与她在亚马逊或Azure上部署这些工作负载完全没有区别。就像我说的,我喜欢这个前线API的API,对吧?云API,实际上是Kubernetes的标准,这对我来说是有意义的。但是项目EVE和EVE控制器之间的开放API,是非常专业的。记住有两个api。
我的公司只做了很短的宣传,因为我必须要做幻灯片。所以我们自己,基本上在底层投入了大量资金,这是完全开源的。在机器上运行的每一个软件都是开源的。我们自己写的东西,是部分许可。我们从其他开源社区获取的东西,就像GPL滥用了你的许可证。不管怎样,完全开源,没有任何专有的东西。然后公司自己将控制器货币化。所以我们基本上,我们希望建立天空中最具可扩展性的控制器。所以一旦你让《EVE》在盒子上运行,你选择将其连接到的控制器将是默认的。我们的都不是,但我们也完全期待其他公司,比如谷歌、亚马逊和微软,实际上我们正在与微软就这个问题进行谈判,以建立他们自己的控制器,并将它们集成到他们自己的云平台中。 So that’s sort of the overall play.
关于《星战前夜》,我经常被问到的一个问题是,“好吧,你总是拿Android做类比,好吧,那么Android有什么问题吗?”我不会告诉你Android有什么问题,我会告诉你一些相似之处。因为从某种意义上来说,我们在创造《EVE》时也需要回答同样的问题。这一系列问题是,应用程序和操作系统沙箱,如何保护应用程序免受彼此侵害?如何保护操作系统免受应用程序的侵害,反之亦然?应用程序捆绑,又是什么意思,它实际上是一个应用程序?应用程序部署,如何实际部署应用程序。最后,我们支持什么硬件。如果你看看安卓,安卓基本上做出了当时所有合理的选择。对吧?
所以对于App沙箱来说,它是JVM,在当时非常有意义。我们实际上使用的是硬件辅助虚拟化,一种与VMware、Xen或KVM完全相同的风格,这是现在的默认设置,以及所有这些类型的机器。应用捆绑,安卓显然是APK。我们正在使用Edge容器的概念。对于应用部署,我们实际上遵循一个非常相似的模型。我们的想法是为这些类型的应用提供应用商店体验。对吧?
再一次,假设我在管理一个油田,或者我在管理一个风力涡轮机。作为一个在这个领域工作的人,我希望有最好的软件在我的领域进行预测性维护。而今天,每次我要做的时候,它基本上变成了一个巨大的系统集成工作。因为我必须邀请公司,他们必须为我建造它作为警告。如果不是这样,我们基本上有一个市场,这些类型的应用程序可以交易。对于这些类型的应用程序的唯一要求是,只要它能在EVE上运行,这就是我们所需要知道的。只要它是应用商店的一部分,这就是我所需要知道的。
有趣的是,在硬件方面,对于Android,所有的选择在当时都是有意义的,我们坚持使用同样的选择。但有一点不同。所以我们显然同时支持英特尔和ARM,但MIPS变成了RISC-V。有多少人知道RISC-V?好吧。RISC-V是一个非常棒的架构,它是完全开源的。它的血统可以追溯到给我们MIPS的同一个人,基本上是来自伯克利的男孩和女孩。同样是这个研究小组,基本上决定提出一个完全专利和不受阻碍的设计,和VHDL描述这个新的CPU称为RISC-V。
这个行业充满了兴奋。所以像西部数据和希捷这样的大公司,基本上都在大规模地向RISC-V过渡,因为你不用支付任何版税。RISC-V无需支付版税。它都是在开源许可下授权的。对吧?如果你们中有人是CPU爱好者,RISC-V是最好的CPU实现之一。因为他们想到的一件事是,为了引导开源社区,他们就像,嗯,不是很多人会做VHDL。因为为了做VHDL,你实际上必须买这个非常昂贵的工具。这就像当你在这些工具上投入了1万美元的时候,你可能已经不是一个开源开发者了。
所以他们实际上提出了DSL,领域特定语言,它基于标量,它允许你实际拥有CPU本身的实现,而不需要考虑VHDL。这实际上是超级棒的。但我有攻击性。所以,我的观点是,我认为上层的Edge,像这样的东西将属于英特尔。因此英特尔在这个领域的发展非常迅速。我不想这么说,但我认为ARM会输。所以我们仍然会支持它,因为它是存在的,但我认为在RISC-V和ARM之间,我的钱更倾向于RISC-V。这就是为什么我们赌两者都赢。ARM显然在今天非常流行,所以我们必须支持它。所以让我们快速讨论一下《EVE》到底做了什么,或者作为开发者它能为你提供什么。 And then, I would like to make it as interactive as possible, and maybe take some of the questions.
所以,在一天结束的时候,再一次,把它想象成一个非常传统的虚拟化环境,对吧?因此EVE在Type-1管理程序上运行。今天Xen,我们来谈谈Linux基金会的Acorn项目。Acorn是英特尔为英特尔构建嵌入式特定管理程序的尝试。非常酷的项目。所以我们可能也支持这个。但它基本上运行在Type-1管理程序上,并且在Type-1管理程序之上,它支持所有这些类型的工作负载。就像我说的,它们被包装成Edge容器。对吧?现在,很酷的是,因为它在虚拟机管理程序上运行,在这个级别上,我们应该,我称之为虚拟机管理程序的另一边,我们可以做很多今天通常与sidecars相关的技巧。 So how many of you do know what’s a sidecar? Either Kubernetes wise, or like any other? Okay. So at least you know a decent amount here. So very quickly, a sidecar, is a container that is basically a system level container that provides a certain function to your application container.
假设您的应用程序容器不想处理负载平衡。那么,你所要做的就是运行一个sidecar,这个sidecar在本地主机上提供一个监听器,sidecar自己处理负载平衡。应用程序本身只打开到本地主机的连接。它甚至不需要知道流量来自哪里。这就是侧边车的整个概念。我们可以在管理程序的另一边,以一种更有效的方式,做一大堆类似的技巧。我最喜欢的一个,我在这里举个例子,让你们了解EVE正在努力做的事情,基本上就是连通性。当我们部署虚拟机时,这些工作负载之一,对吧?因为我们运行在虚拟机的管理程序之上,所以我们提供给AVM的网络连接看起来就像一个虚拟的以太网适配器。所以当VM启动时,它只看到E2000,如果你们还记得的话。 No, it’s actually different, but pretty similar that it can drive with just a single driver.
很多时候,它实际上是一个IUL驱动程序,这使得它更高效。但它基本上是一个虚拟的网络接口卡。但是应用程序不需要知道的是,我们将在管理程序的另一端实现什么样的魔力。因此,突然之间,虚拟化的网络接口卡,变成了我们将在管理程序的另一边运行的侧车的接口。这让我们可以玩一些新把戏。举个例子,今天Edge的一大亮点是,如果我在这个盒子上运行应用,很多时候我的应用后端会在云上运行。对吧?在亚马逊,微软,谷歌云上。那么问题就变成了,我如何配置我的网络,使我成为VPC的一部分,比如说,它实际上是亚马逊云的一部分?
答案是,如果你运行的是基于Yocto的随机分布,那你就没那么幸运了。因为,很有可能strongswan,也就是IPsec实现,也就是Amazon上的VPC,将与Linux发行版不兼容。这时人们就会陷入困境。他们会说,“好吧,我该怎么办?就像我有这个Linux发行版,它在我的盒子上运行,我必须确保它能与亚马逊上的那些机器通信。”然后EVE出现了,我们说,好吧,很简单,用你现有的应用程序,不修改任何东西,对吧?把它虚拟化,放到VVM中。你的应用程序会认为通过接口卡到达你这里的流量,和其他流量一样。另一方面,我们将确保我们基本上剥离TCP IP上的所有内容,或者TCP IP下的所有内容。我们会将其封装成IPsec流量,发送回你配置的Amazon,你的应用程序甚至不知道我们在做什么,对吧?
所以我们能做的所有这些技巧都能让开发者产生共鸣。因为他们现在面临的最大问题是,他们都是在嵌入式开发的世界里长大的,在这个世界里,资源非常有限,所以做一些有趣而棘手的事情,甚至都不是一个选择。2022世界杯阿根廷预选赛赛程现在他们必须把这些东西连接到互联网上,他们会想,好吧,我们该怎么办?我们能不能至少有一个权宜之计,我们把现有的东西,在某个东西上运行,任何能让我们连接和所有这些其他属性的东西?对吧?
这实际上与引入虚拟化时数据中心所发生的情况并不相似。因为,对于那些还记得的人来说,VMware当时最大的用例实际上是windows NT。windows NT在硬件支持方面快用完了,VMware出现了,说,好吧,你可以采用它,虚拟化它,我们将它作为虚拟机运行,你的基础操作系统,你的主机操作系统,可以是任何东西。比如它可以支持最新的驱动程序,可以随心所欲地联网。但是你的Windows NT甚至不会注意到,因为我们会为你模拟和虚拟化一切。这是那些试图从物联网迁移到真正的边缘计算的人们现在正在努力解决的最基本的用例。
所以《EVE》本身实际上是由多个不同的部分组成的。所以在EVE的网站上有很多文档。如果出现的话,你可以谷歌LF Edge。但这是一个操作环境,现在已经很复杂了,但仍然很小。我们能运行的最小的计算盒,是橘子派,它实际上比树莓派小。但是没有足够的空间留给有趣的应用程序,所以您可能正在寻找这样的东西。就是这样。我想说的差不多就这些了,这样我至少还有时间提问。有问题吗?或者你可以看看这个盒子,然后你就知道了。
嗯哼
比如物联网?
是的。
好吧。太棒了。太棒了。是啊,那太好了。是的。是的,然后我们可以搬到楼上,也许可以加入一个更大的团体。
是的。嗯哼。
你需要一些东西来启动你的设备吗?多少钱?
是的。所以,我认为我们会,这就是为什么我们会非常迅速地接受这个无内核的想法。unikernel就是这样一个想法我们甚至可以更精简容器,对吧?在数据中心,这是一种寻找问题的解决方案。因为容器最终变得足够小,以至于人们不关心把它们做得更小。在Edge上,我认为unikernels将是一个大问题。所以,如果你愿意,我会给你两个提示,就是查找两个东西。其中一个叫做Ataman OS。这基本上是一个Go社区,Go语言。一个允许Go在没有操作系统的情况下运行的社区项目。 And it’s actually really cute how they do it.
如果你有什么是Go,对吧?你知道现在你可以指定Go操作系统,本质上你在为那个操作系统做交叉构建。他们实现了一个基本上是管理程序的操作系统。因此,您可以指定Go OS=Zen,然后弹出的可执行文件将是一个不需要任何操作系统的可执行文件。它是高度优化的。所以,如果我们可以开始向这些类型的可执行文件移动,我完全可以看到很多容器基本上在同一设备上运行。是的。好吧。太棒了。非常感谢。