找回密码
注册 登录
查看: 1324|回复: 0

微软Azure首席技术官马克Russinovich无服务器和边缘计算之间的交集

[复制链接]
  • TA的每日心情

    2017-12-6 09:14
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2017-11-30 09:39:23 | 显示全部楼层 |阅读模式
    对于Microsoft Azure来说,2017年可能会被记住为无服务器和边缘计算的一年; 这两个概念已经成为其高层管理人员的一个表象,也是其产品战略的一个重要组成部分。

    通常他们会分开讨论,但是我有机会在上周旧金山的Structure大会上跟上Azure首席技术官Mark Russinovich的谈话,我们谈到了无服务器计算技术的交集- 围绕事件和功能设计的应用程序以及边缘计算,越来越多的计算机正在从中央数据中心转移,因为连接的设备和工业互联网不断发展。

    接下来的是我们谈话的一个轻微的编辑版本。

    GeekWire:我有一点麻烦的理解是,无服务器应该为其他云提供商提供一定程度的可移植性(根据一些支持者)。但是,看起来几乎相反,如果围绕某个提供者的函数构建,那么将刚刚完成的工作转移到另一个函数提供者就不那么容易了。

    Mark Russinovich:我认为,如果你看看无服务器产品 - 我们的Azure Functions,(Amazon Web Services),Lambda,Google Cloud Functions,OpenWhisk - 都是不同的。基本上,它们是应用程序环境,所以您需要编写适用于这些特定产品的代码和操作。

    就可移植性而言,我认为当你谈到无服务器的时候,你把“作为服务”作为其关键部分进行讨论。这也反映了利用无服务器的应用程序的操作要求和设计:平台提供什么功能,具有哪些SLA,提供什么样的性能。

    就可移植性而言,意思是“我可以在Azure之外运行这个Azure功能吗?”这是我们的明确目标。它是开源的,所以我可以把它放在任何东西上。例如,我可以在其他云上运行它。但是在那个时候,你并没有那种“服务”的方面。

    如果你看一下无服务器 - 我们已经看到业界采用的纯粹的,规范的定义 - 它是事件驱动的,这意味着它自动扩展,然后它是微观的。但是如果你要在自己的基础设施上运行它,微计费不适用,无服务器不一定适用,因为你将不得不管理下面的基础设施,并写出缩放逻辑。

    实际上,我们相信更广泛的定义,那就是无服务器通常是微型计费,自动缩放(应用程序)。但是自动缩放和事件驱动通常只适用于短暂的代码段。函数通常运行不到一秒钟。

    1.jpg

    我们相信无服务器扩展,然后包括长时间运行的代码。长期运行的代码,在平台正在进行自动扩展,关闭和打开事情​​的时候,因为它学习和理解应用程序的需求。

    如果您看一下Azure容器实例,那么这就是我们扩展无服务器定义的一个例子。您可以使用容器,Docker容器,并将其部署到Azure中。您不指定任何虚拟机。您只支付该容器运行的时间,并且可能是长时间运行的容器,而不是响应某个事件而旋转。

    GeekWire:你认为长期运行?

    Russinovich:分钟,小时。

    GeekWire:在什么情况下你会想要围绕事件或功能运行几个小时?

    Russinovich:好吧,如果你有应用程序的背景方面,你不想专门为它专门分配虚拟机,你想快速地把这些东西分散开来,并让它们在你只支付资源的地方运行你需要他们。而且你并不担心底层的基础设施。

    Azure是否支持一种开放的无服务器模型,可以在不同的云中运行,并且理解我将要管理硬件?

    Russinovich:对于Azure函数,运行时在Github中。有人可以把它运行到任何地方,然后运行自己的东西。

    GeekWire:你认为无服务器是边缘模型吗?这是边缘部署的方式吗?

    Russinovich:不,不一定。无服务器的定义有点[暂停]不明确。

    当我看看我们正在开发的边缘平台时,有一系列的设备和功能 - 从能够运行一小段代码的微小设备到PC级设备,再到Azure等边缘部署Stack是一个非常丰富,高度可用的功能性系统,具有PaaS(平台即服务)服务。如果你看看人们将要推出的计算,那不仅是无服务器的。将会有长期运行的机器学习模块,将会有Docker容器执行长时间运行的代码,这些代码是应用程序的一部分,并且将会是应用程序的一部分,它们是函数。

    如果您现在看看函数适用于云应用程序体系结构的位置,则很多时候它们将作为应用程序与外部世界之间的粘合剂,或者应用程序中不同组件之间的粘合剂。但是功能支持的应用程序有很长的一些方面。

    GeekWire:(漫不经心,回想起来,相当复杂的问题)

    Russinovich:所以你说,为什么(无服务器)的边缘?

    GeekWire:是的。

    Russinovich:如果你看一下边缘,就有你想要回应的事件。有自定义的代码片段来响应这些事件,他们实际上是非常专业的微服务,事件驱动的微服务。因此,将体系结构分解为一个很好的方法就是:“这是长期持续运行的东西,它将会持续不断的执行”,“以下是偶尔执行的东西,这里有一小部分代码负责这个事件。”

    但我认为(无服务器是)更多的开发者体系结构,或应用程序体系结构,受益。特别是当你处于边缘地位时,你并没有充分利用微型云计算和云中的弹性,因为在边缘,你有一个固定的硬件资源。在那里,这只是事件驱动架构的便利。

    GW:有了一套​​固定的资源,没有服务器的方式会给你带来更大的压力,比如果你运行的是更传统的应用程序架构?

    Russinovich:它绝对可以。在设计体系结构时需要考虑一些因素,例如设备上有一定数量的RAM。我可以部署一堆Docker容器,并且(for)每个容器都指定了RAM,而且无论是否需要使用RAM,他们基本上都会分配这个RAM。

    有了功能,我可以让他们旋转起来,然后分享资源:当一个人不活跃,另一个人可以使用它。在设计我的应用程序时,我仍然必须小心,以确保对于边缘设备上的应用程序的吞吐量和延迟要求,我不会遇到许多功能需要或需要运行的瓶颈同时,现在我没有足够的资源来运行它们。

    2.jpg

    我认为我们正处在这个第一步。现在,如果你看一下边缘计算,我们将从一个“固定功能”的世界中走出来。我写了这段代码,它基本上被烧成了东西,而我从来没有碰过它,“现在是这样,”我已经分解了你的应用程序,我把它推出来,它是一个可以动态更新的硬件。 ”

    (然后在未来),“我想实际采取一个现代的微服务应用程序架构,并运行它们,我想这样做是可靠的,我想要这样做的设备可能有不同的资源,水平资源,但我希望有一个高度的信心,当我把这个应用程序推出去时,它确实会表现良好。“

    我们正在开始这个旅程(路径)。现在需要一段时间才能达到这样的成熟程度,但是我认为在未来有一个真正有希望的未来,因为边缘应用越来越具有战略性,能够将丰富的应用推向边缘。

    GeekWire:我会问:有人在做这个吗?

    Russinovich:随着设备越来越智能化,我们已经看到了巨大的兴趣。这其实是一个很大的推动力,就是机器学习的优势。AI在边缘。我们看到了很多的兴趣。这就是为什么你看到我们能够在云中训练模型,采取这种模式,并把它推到边缘。或者将其推送到移动设备并在本地运行。

    该模型通常是较大应用程序的一部分。我想把这个模型作为一个自包含的单元来构建,但是这个单元会和其他的东西进行交互。例如,在一个事件驱动的体系结构中,模型可能会做类似于“我正在检测对象。当我看到他们的时候,有些东西我想采取一些行动。“

    现在,这成为一个事件:“我看到这个对象,我发出一个生成的事件,然后导致一个负责任的功能。嘿,你看到这个对象?执行这段代码。“

    GeekWire:这种情况下的真实应用程序是什么?

    Russinovich:有很多你想要的零售场景。根据仓库环境和商店环境中发生的事件在结帐行中触发操作; 那些肯定是我们见过的客户去利用这个或者想要的地方。





    上一篇:亚马逊网络服务公司为开发者推出了价值249美元的无线深度学习摄像机
    下一篇:微软 Xbox One X是最强大,最昂贵的控制台
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则