边缘计算:云原生,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.

所以当我告诉每个人的时候,每个人都说,“为什么会有人买这个?”当然,你再去问西门子,你问他们这个问题,他们会说,“嗯,我们不知道为什么会有人买它。我们所知道的是,现在这个盒子的交货时间,因为它大约在2月份才上市,得到一个这样的盒子的交货时间是4个月。”他们无法满足需求,最便宜的一盒要1100英镑。为什么?很简单。因为这个盒子实际上是为了承受树莓派会融化的环境而建造的。这个盒子被测试在那个环境中至少两个月,这是这个盒子上的辉煌时光,对吧?

所以现在我们实际上在谈论可靠的物联网,我认为,这实际上会带来很大的不同。因为现在,谈话从,“嗯,这只是一个便宜的计算机设备,我们真的不需要支持它,因为它可能很快就会坏掉。所以我们只是在修补它。”现在,我们实际上正在部署这些类型的盒子,现在我实际上向你们展示戴尔的盒子,因为戴尔也在做同样的生意。现在我们正在部署这些类型的盒子,这是一个真正关键的基础设施。我们将其应用于工厂、交通和能源生产。我们希望通过把它们撒在各处,我们就能得到云外的云,对吧?

现在基本上每件东西都有一个非常可靠的计算机设备连接在上面,实际上也是非常有能力的设备。因为即使是这个最小的,他们产品线中的一个盒子,就像我说的,它有2gb的RAM。它实际上是英特尔凌动处理器,完全具备凌动处理器所具备的任何功能。我想它有大约24g的闪存。所以基本上我们现在谈论的是我七年前在我的数据中心使用的计算机的大小,对吧?现在我们终于为液体软件做好了准备。这是我的前提。

这就是Simatic IPC127。你可以稍后再看。我是说,肯定是英特尔。现在,为什么每个人都对部署这些类型的盒子感兴趣,可能可以在这张幻灯片中总结。根据思科(Cisco)和高德纳(Gartner)的各种预测,Edge生成的数据量很快就会完全超过你的数据中心中实际存在的数据量。我们都将不得不面对它,但我们还不知道该如何应对。

我说的处理它的意思是,我们必须从法律的角度来处理它,因为有些数据甚至不能转移到云端,即使我们想要。就像你在城市基础设施里拍摄监控录像,对吧?很多时候,我们只是对数据的移动地点有法律限制。很多时候仅仅是延迟,就会迫使你在设备本身处理数据流。

所以我认为,对于这样的基础设施,这是一个杀手级应用。至于如何开发这个杀手级应用,没人知道。对于那些在流动软件上投入了大量资金的人来说,这实际上是一个好消息,因为流动软件的全部意义在于不断地迭代,直到你真正构建出人们可以实际使用的东西,而且它非常令人满意。长话短说,边缘计算是不可避免的。但如果你看看我们今天是怎么做的,实际上是非常糟糕的。

同样,在同一本书中,我在幻灯片中X轴上是更新优先级,Y轴上是用户控制。正如你所看到的,所有的工业设备基本上都在轴的底部。这些都没有接触到液体软件。但是,这又发生了。我是说,西门子卖了很多。因此,作为软件从业者,当然,我们必须想出一个答案。当然,作为软件从业者,我们会想到的答案是,Edge将会变得巨大,所以让我们在它上面涂抹一些Kubernetes,对吧?因为这就是我们在数据中心所做的。这能有什么不同呢?功能是一样的,我们来试试。

你们中有多少人读过这些报告,我想是去年年中,也许是一年前,关于福来鸡试图在所有餐厅大规模部署Kubernetes。比如一个人,还有其他人吗?好的。所以福来鸡也面临着同样的问题。所以他们有这些盒子,不是特别的这种,而是这些类型的盒子,基本上遍布零售连锁店,零售地点。然后他们想要精心安排人们进入零售店的体验,对吧?

也许他们想要的是,比如说预测性维护,比如菜单,对吧?这就像如果他们发现有更多的人来买某种特定类型的鸡肉,他们实际上会更多地准备鸡肉,对吧?他们想做一些预测性的维护工作。当然,他们希望他们在当地做,但没有任何可用的东西,所以他们想到了Kubernetes的想法。很快他们就发现Kubernetes并不是为那种环境而设计的。尽管他们做原型还行,但我相信现在他们的原型已经报废了。

另一个例子,你可能会想再看看,因为我想说的是,边缘在这里,所以你也可以弄清楚如何利用它。让我们向去年这样做的人学习。另一个例子是KubeEdge。这主要是由电信公司主导的。中国电信制造商华为(Huawei)是KubeEdge的大力支持者。所以KubeEdge有点像电信公司的想法,有些人试图标准化Kubernetes在Edge上的样子。

再说一次,我不会说它完全失败了。它实际上一直迁移到CNCF(云原生计算基金会)的孵化器。但它的追随者并不多。因为每当有人试图将它部署在Edge的电信视角之外的任何东西上,我稍后会告诉你们更多关于Edge的电信视角,非电信视角。同样,KubeEdge很难用于Chick-fil-A类型的用例。

所以,我认为,这实际上是今年推出的,几个月前,所以我认为唯一有价值的竞争者,如果你真的想把一些Kubernetes放在它上面,是K3S的好家伙,trencher。所以我强烈建议你们去看看,因为他们第一次意识到,这不仅仅是Kubernetes的问题。那么,Kubernetes有什么问题呢?很快地说一下,这个协议非常健谈,这个协议绝对不喜欢处理断断续续的网络,而且实现非常庞大,对吧?就像如果你把一个特工写在你的笔记上,它会占用空间,对吧?同样是2gb,但我还是不愿意只在Kubernetes上花费1gb。

所以K3S的人,基本上推出了这个项目,基本上保留了Kubernetes api,但改变了下面的实现,并针对这种用例进行优化。这是其中之一,但我认为他们的超级天才之处在于,他们试图把它部署在这样的东西上。他们很快发现,这不仅仅是Kubernetes的问题,因为这是部署的最后一英里。第一个问题是,在这上面运行的操作系统是什么?因为到目前为止,人们一直在构建嵌入式操作系统,以及基于Yocto的操作系统。

所以很多时候,你会发现数据中心是一些糟糕的操作系统,你甚至无法重建,这并不罕见。在这一点上,你的Kubernetes完全被卡住了,因为突然之间,Lipsey就不是大家所期望的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上。不幸的是,它有自己的一系列问题,我们今天不讨论。但我要告诉你的是,从现在开始,我们将主要处理两种类型的计算机。一种类型的计算机是数据中心的计算机,它们有一组非常可预测的需求,我们知道那些是什么。

当我说数据中心时,我并不是指你的私人数据中心,一个公共云提供商,比如谷歌,实际上会有一个超大规模的数据中心。它仍然是一个数据中心,对吧?它仍然作为数据中心存在。然后,我们将拥有数据中心之外的所有计算机。这是我们要处理的最大区别。对我来说,这就是“边缘”的定义。如果你看看Linux基金会,顺便说一下,Linux基金会,对于那些不知道的人,我的意思是,在很长一段时间里,他们完全在做Linux之外的事情。催生了这些非常成功的开源基金会。一个成功的处理数据中心内计算机的基金会,或者云原生计算基金会,CNCF,对吧?它非常成功,Kubernetes绝对很棒。

Linux基金会已经创建了另一个名为LF Edge的基金会,基本上允许行业在今天的边缘计算的通用需求集上工作。在接下来的演讲中,我们会稍微讲一下LF Edge,更具体地讲一下我正在构建的组件。希望你们会感兴趣。但在此之前,就像我说的,不同的人对边缘有不同的理解。一旦你离开数据中心,你的第一个边缘,基本上就是边缘,我们称之为局部边缘,对吧?这基本上是电信公司的边缘,但不是真正的边缘。它是电信网络远程部分的边缘。这些都是中央办公室,就像我们过去用来存放电信设备的大楼一样。

这些都是COs,电信公司仍然要运营它们。再说一遍,这些都是数据中心里的计算机,对吧?因为这是一栋受保护的建筑,里面的一切都归电信公司所有。但它已经超出了电信公司传统的核心业务范围。这是右数第二个。对吧?然后很快地从右边第三个,那是电信网络的边缘。这实际上是基站,电信公司对即将推出的5G有很多担忧,因为这是受影响最大的地方。

所有的中心办公室仍将大致保持不变,但基站将会很多。如果现在我们只有一个发射塔,现在有了5G,我们基本上每个街角都有一个基站,对吧?所以所有这些都需要管理。现在我们谈论的更多的是Edge。因为这些电脑现在更接近他们的要求了。然后,边缘基本上是分叉的,它要么是一个工业边缘,你的城市基础设施,你的电网能源管理公司,所有这些。或者它可以是你的消费者Edge,你的房子,你的家,你的车。Linux基金会基本上决定从现在开始负责所有的edge,对吧?

因此,对于电信公司来说,有一个名为Akraino的项目,试图解决一点CO问题,但主要是关于基站和所有这些问题。然后是我将要谈论的一个项目,叫做EVE,边缘虚拟化引擎,它是为工业边缘服务的。还有一个三星的项目叫Home Edge,这并不奇怪,因为它生产了几乎所有的洗衣机,烘干机,冰箱,等等。现在在它的中间,有一点中间件。EdgeX Foundry是一个中间件,如果你知道什么是云铸造的话。它基本上是一种边缘的云代工,他们试图将你作为开发人员从一些担忧中抽象出来,但那些只是中间件的担忧,对吧?

就像Cloud Foundry和spring在某种程度上会吸引您远离数据库的本质一样。EdgeX Foundry会吸引你,比如说,什么是传感器,或者什么是工业协议。因为,显然有很多工业协议,你实际上想要它们之间的互操作性。如果有一个中间层就好了,这样就可以在它们之间进行转换。这就是EdgeX。

现在我将谈论EVE, Edge虚拟化引擎。如果你想更多地了解Linux基金会项目的功能,实际上在Edge领域有很多这样的项目。显然,像Akraino, EVE, Home Edge这样的大项目。但也有一些,我称之为基础设施项目。它们是Acorn的管理程序。有不同种类的操作系统,像Zeefax这样的专业操作系统。还有Photon OS,这是一个更受限的操作系统。实际上,Linux基金会中有很多项目正在一起创建这个LF Edge。顺便说一下,LF Edge是超级新产品。它是在今年2月创建的。 So we’ve made a big announcement, and all of that.

所以人们总是告诉我,“嗯,它看起来没有CNCF那么令人兴奋。”我说,“CNCF刚开始的时候看起来并不是那么令人兴奋。”那么,它会像CNCF一样令人兴奋吗?如果你加入,就会很好。但如果你不加入,它就不是了。这其实是一个很简单的命题。在这个大的生态系统中,我的公司和我领导的开源项目,我们专注于工业用例。像这样的盒子。回顾一下一些基本的原则,就像我告诉你们的,我们需要建立一个基础设施本质上是运行应用程序的业务,对吧?

我们要回答的第一个问题是,什么是应用?对吧?因为,再次回到我的Android类比,这是Android给开发者生态系统带来的最大好处之一。因为在Android之前,一个应用程序可能是黑莓应用程序,或者诺基亚应用程序,或者爱立信应用程序。对了,他们每个人的资料都不一样。所以即使在这些家庭中也会有不同的应用。Android当然有不同的硬件配置文件,但大多数时候它只是一个APK,对吧?我的应用程序作为一个开发者,我完成了我的APK,我将上传它到播放商店,我完成了。

所以我们需要定义什么是真正意义上的应用程序,在Linux Foundation Edge中,我们正在标准化边缘容器的概念。所以每个容器都是一个扩展,只是OCI的一个真正的扩展,传统的数据中心,开放容器的初始容器格式。但它也包含了一些东西,我在数据中心并不是特别相关。在这些机器上,你仍然需要运行实时或接近实时的操作系统。所以无论你在包装方面做什么,它都必须支持实时操作系统。现在,我们觉得我们实际上有一个很好的答案,如何统一容器Vms和unikernels,这就是边缘容器的全部。

现在,一旦您定义了应用程序,一旦您基本上定义了打包和分发格式,剩下的就很简单了。或者至少应该是这样。它只需要在某些东西上运行,然后你只需要定义它所运行的东西的属性。所以对于《星战前夜》,我们基本上向所有人提出,它必须有三个基本属性。所以它必须是零接触的,在某种意义上,这个盒子,这个特殊的盒子实际上有一个显示端口,很多盒子都没有。而那些没有的,它们甚至都没有串行连接。它真的需要零接触。你只要把它拴在天花板上,打开它,它就能工作了。

在我们的开源项目中有个笑话,我们基本上需要像僵尸网络一样操作,就像那些感染你电脑的病毒一样。因为它们可以在任何地方发挥作用。他们不会问你,“嘿,我的WiFi密码是什么?”或者,“帮我做这个或那个。”他们只是跑。所以无论我们为这些盒子构建什么,基本上都必须像僵尸网络一样。它必须运行在任何地方,任何地方,并且绝对零接触,以至于你甚至不知道它在那里。就像你不知道僵尸网络在哪里感染了你的电脑。

它必须支持任何类型的应用程序。就像我说的,实时应用。有传统的容器。但它还必须支持任何类型的硬件。所以Edge的硬件异质性仍然很高。情况正在好转,但还是很高。它还必须支持任何类型的网络。还记得安卓的类比吗?这些小家伙,实际上一直在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拥抱基本上可以与天空中的控制器对话,然后在这些盒子中分配工作负载。盒子和控制器之间的API,是LF Edge正在标准化的东西。

所以,如果你感兴趣,你完全可以加入我们。它实际上很有趣,因为它是一种奇怪的混合,像是木偶厨师类型的东西,像云类型的东西。它的演变过程非常有趣。但在一天结束的时候,我们想给每个人的体验都很像云,对吧?所以,你基本上有DevOPS的Diane,她将在这种类型的硬件上部署工作负载,与她在Amazon或Azure上部署这些工作负载完全没有区别。就像我说的,我很喜欢前线API,对吧?云API,实际上是Kubernetes的标准,这对我来说是有意义的。但是EVE项目和EVE控制器之间的开放API是非常专业的。记住有两个api。

对我的公司来说,这只是一个很短的宣传,因为我必须有必要的幻灯片。所以我们自己,基本上在底层投入了大量资金,这是完全开源的。在这个盒子上运行的每一个软件都是开源的。我们自己写的东西,是部分许可。我们从其他开源社区获取的东西,就像GPL滥用了你的许可证。不管是什么,都是完全开源的,没有任何专有的东西。然后公司自己就可以从控制者身上赚钱。所以基本上,我们希望建造空中最可扩展的控制器。所以,一旦你让EVE在盒子上运行,你选择将其连接到什么控制器将是默认的。我们的是两者之一,但我们也完全期待其他公司,比如谷歌、亚马逊和微软,实际上我们正在与微软讨论这个问题,建立他们自己的控制器,并将它们集成到他们自己的云平台中。 So that’s sort of the overall play.

关于《星战前夜》我经常被问到的一个问题是,“你总是拿Android做类比,所以Android到底有什么问题?”我不会告诉你们Android有什么问题,我会告诉你们一些相似之处。因为在很大程度上,我们在创造《EVE》时也必须回答同样的问题。问题是,应用程序和操作系统沙箱,如何保护应用程序彼此不受伤害?如何保护操作系统不受应用程序的影响,反之亦然?应用程序捆绑,应用程序是什么意思?应用程序部署,即如何实际部署应用程序。最后,我们支持什么硬件。所以如果你看看Android,它基本上做出了所有当时有意义的选择。对吧?

所以对于App沙箱,它是JVM,在当时是非常合理的。我们实际上是在使用硬件辅助虚拟化,和你在VMware, Xen, KVM中使用的风格完全相同,这是现在的默认设置,以及每一个这些类型的盒子。应用程序捆绑,Android显然是APK。我们正在使用边缘容器的概念。对于应用程序部署,我们实际上遵循一个非常相似的模型。所以我们的想法是,我们会有应用商店的经验,为这些类型的应用。对吧?

假设我在管理一个油田,或者我在管理一个风力涡轮机领域。作为运营该领域的人,我希望有最好的软件来对我的领域进行预测性维护。现在,每次我要做这件事,基本上都变成了一个巨大的系统集成工作。因为我必须邀请公司,他们必须为我建造它作为警告。如果不是这样,我们有一个可以交易这些类型的应用程序的市场。对这些类型的应用程序的唯一要求是,好吧,只要它在EVE上运行,这就是我们所需要知道的。只要它是应用商店的一部分,我就知道这么多。

有趣的是,在硬件方面,对于Android,所有的选择在当时都是有意义的,顺便说一下,我们坚持同样的选择。但有一点不同。所以我们显然都支持英特尔和ARM,但MIPS有点变成了RISC-V。你们中有多少人知道RISC-V?好的。所以RISC-V是一个非常棒的完全开源的架构。它的血统可以追溯到那些给我们MIPS的人,基本上就是来自伯克利的男孩和女孩。这是同一个研究团队,他们决定为这个叫做RISC-V的新CPU设计一套完全专利和不受阻碍的设计,以及VHDL描述。

这个行业充满了兴奋。所以像西部数据和希捷这样的大公司,基本上都在大规模地向RISC-V过渡,因为你不用支付任何版税。RISC-V使你无需支付任何版税。这些都是在开源许可下使用的。对吧?如果你们中的任何一个人是扩展家族的CPU极客,那么RISC-V是最适合开发的CPU实现之一。因为他们想出的其中一件事,为了引导开源社区,他们就像,嗯,不是很多人会做VHDL。因为为了使用VHDL,你必须买这个非常昂贵的工具。这就像当你在工具上投入了1万美元时,你可能还不是一个开源开发者。

所以他们想出了这个DSL,领域特定语言,它是基于标量的,它让你可以在不考虑VHDL的情况下实现CPU本身。这真的非常棒。但我要挑衅一下。所以,我的观点是,我认为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管理程序之上,它支持所有这些类型的工作负载。就像我说的,它们被包装成边缘容器。对吧?很酷的是,因为它在管理程序上运行,在这个级别上,我们应该,我称之为在管理程序的另一边,我们可以做很多现在通常与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试图做的事情,基本上就是连接。当我们部署VM时,这些工作负载之一,对吧?因为我们是在虚拟机管理程序之上运行的,所以我们提供给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上或下的所有内容。我们会把它封装成IPsec流量,把它发送回你配置的Amazon,你的应用甚至不知道我们在做这件事,对吧?

所以我们所使用的所有技巧都能与开发者产生共鸣。因为他们现在最大的问题是,他们都是在嵌入式开发的世界里长大的,在这个世界里,资源非常有限,所以做一些有趣而棘手的事情,甚至不是一个选择。2022世界杯阿根廷预选赛赛程现在他们必须把这些东西连接到互联网上,他们就像,好吧,我们该怎么办?我们能不能至少有一个临时的解决方案,我们把现有的东西,运行在其他东西上,任何能让我们连接和所有这些属性的东西上?对吧?

它实际上与数据中心在引入虚拟化时所发生的情况并不相似。因为,你们可能还记得,当时VMware最大的用例,实际上是windows NT, windows NT在硬件支持方面有点枯竭,VMware出现了,说,好吧,你可以把它虚拟化,我们把它作为虚拟机运行,你的基础操作系统,你的主机操作系统,可以是什么。比如它可以支持最新的驱动程序,可以随意上网。但是您的Windows NT甚至不会注意到,因为我们将为您模拟和虚拟化所有内容。这是最基本的用例,那些试图从物联网迁移到真正的边缘计算的人现在有点挣扎。

所以《星战前夜》本身实际上是由多个不同的部分组成的。所以EVE的网站上有很多文件。你可以谷歌LF边缘,如果它会出现。但这是一个操作环境,到目前为止相当复杂,但仍然非常小。我们能运行的最小的计算盒,是橘子派,它比树莓派要小。但是没有足够的空间留给有趣的应用程序,所以您可能正在寻找类似的应用程序。就是这样。这差不多就是我想告诉你们的了,这样我至少还有时间提问。有问题吗?或者你可以看一下这个盒子,然后你知道。

嗯哼

哦,比如物联网?

是的。

好的。太棒了。太棒了。是的,那太好了。是的。我们可以搬到楼上去,加入一个更大的小组。

是的。嗯哼。

你需要一些东西来为你启动一个设备。多少钱?

是的。所以,我认为我们会,这就是为什么我们会非常迅速地接受单核的想法。因此,unkernel的理念是我们可以更精简容器,对吧?在数据中心,这是一个寻找问题的解决方案。因为容器最终已经足够小了,以至于人们不在乎把它们做得更小。在the Edge上,我认为单粒玉米将会是一件大事。所以,如果你们愿意,我给你们的两个建议是,查两件事。其中一个叫做Ataman OS。所以这基本上就是一个Go社区,Go语言。一个允许Go在没有操作系统的情况下运行的社区项目。 And it’s actually really cute how they do it.

如果你有Go的东西,对吧?你知道现在你基本上可以指定Go操作系统,本质上你是在为那个操作系统做交叉构建。他们实现了一个操作系统,基本上就是一个管理程序。所以你可以指定Go OS=Zen,弹出的可执行文件,将是一个不需要任何操作系统的可执行文件。它是高度优化的。所以,如果我们可以开始向这些类型的可执行文件前进,我完全可以看到很多容器基本上运行在同一个设备上。是的。好吧。太棒了。非常感谢。

试试JFrog Artifactory免费!