新闻中心

EEPW首页 > 智能计算 > 业界动态 > 无服务器计算:为云中的下一个重大颠覆做好准备

无服务器计算:为云中的下一个重大颠覆做好准备

作者:时间:2018-08-01来源:网络收藏

  无状态和事件驱动

本文引用地址:http://www.eepw.com.cn/article/201808/389854.htm

  无计算有两个显着特征,既有强大的吸引力,又面临着更广泛采用的障碍。

  首先,无功能是无状态的,这意味着没有用于交互的上下文。它们不存储历史记录,因此仅使用随附的信息处理每个请求。“每次都像一块白板,但非常高效,因为你不需要应对重重的复杂应用逻辑,” Wikibon分析师James Kobielus说。

  另一个显着特征是无是事件驱动的,意味着会对用户或程序生成的动作做出响应,事件可能包括查询明尼阿波利斯当前温度的请求、搜索引擎查询或数据库记录更新。

  事件驱动的应用是非常高效的,因为在不使用的时候不会消耗资源。这种应用编程简单,易于扩展。“你可以设置应用,这样如果有事件进来,那么功能运行起来。如果有一百万个时间进来,你就可以应对一百万个,”Lowery说。但是,并非每个应用都可以被提炼为一系列无状态事件。

  综合起来,这些让无服务器计算成为某些请求的理想平台,例如查看美国明尼阿波利斯的热或冷。然而,对于其他例如管理购物车或制作账单来说,并不是那么好用。

  Kobelius说:“有人点击‘购买’,整套数据库和运行时功能做定价,最终确定订单,并发送确认。所有必须以严格的方式发生,带有状态和事务流”,这使得它无法与无服务器执行相匹配。

  目前尚不清楚是否会有新的工具和扩展程序让无服务器技术在更为传统的应用中变得可行。无状态应用可以扩展或改进以展示有状态的行为,就像容器一样,轻量级虚拟机可以抽象消除底层基础架构的差异。容器也是无状态的,但商业和开源扩展让容器可以用于上下文敏感的应用中。

  微软的目标是消除功能即服务和平台即服务之间的界限,让开发人员能够混合搭配各种不同的平台。特别是,微软强调所谓的“虚拟Kubelets”,这个在12月推出的技术能够使容器运行各种功能或完整的应用,但有了微计费和自动基础设施配置,无服务器提供了很多企业客户想要的灵活性。AWS在11月底推出了Fargate,可以在不管理服务器或服务器集群的情况下运行容器。

  微软Azure容器项目管理负责人Gabe Monroy在去年12月的KubeCon + CloudNativeCon北美会议上表示:“这实际是最好的无服务器,如果基础设施消失,我们将在基础设施领域开展工作。”

  Wikibon的Kobielus甚至认为,区块链这种去中心化的数字记账技术对数据库密集型场景中的无状态来说是一种补充。他说:“你可以随时回滚一个完整叙述,关于谁在什么样的联合框架中调用了什么。”

  因此,无服务器的拥护者认为,这项技术有广阔的前景,特别是对于那些有着“提升和转变”心态的企业,他们试图将旧应用转移到一种新模式上,并积极拥抱构建和运行这些应用的新方法。

  例如就在几年前,房利美(Fannie Mae)公司运行蒙特卡洛(Monte Carlo)模拟分析其抵押贷款组合的风险。现在,他们正在运行所谓的第一个在金融行业中使用无服务器的高性能计算平台。在大约2000万抵押贷款的模拟中,该系统的工作速度比以前快了4倍多。

  “我们认为没有任何固有的技术限制可以阻止任何主要工作负载在Lambda上的使用,”AWS的Gilbert表示,他有趣地称Fannie Mae将无服务器当做“云中的超级计算机”。他说:“无服务器将是最简单、最简单的,对许多客户来说是主流计算的首选方式。”

  开发者的爱

  无服务器模型有一个优点,不容易被提炼为投资回报指标:开发人员喜欢这项技术。无服务器架构使他们摆脱了基础架构部署的负担,他们只需要编写代码就行了。

  Braze的Poliandro说“无服务器技术让我们的应用和运营工程师能够以对他们更有意义的方式思考他们的责任。他们可以更快地部署,不必担心周围的基础设施。”

  但是,在无服务器平台上构建应用,需要对开发人员如何考虑执行任何的方式进行重大改变。“选择Lambda意味着要为代码进行重写,”Ryland坦言。

  无服务器架构的粉丝说,这种局限性不在于技术,而在于开发集成应用已有60年的历史。 Gartner的Lowery说:“无服务器技术挑战了软件应该如何开发的一些假设和已有的模式。客户看到其中有很多价值,但他们不得不学习一种全新的编程方式。”

  针对无状态、以事件驱动的环境进行开发,并不一定比开发单一程序更容易。无服务器架构“将复杂性从应用转移到连接中,”Atchison说。“这不是万能的解决方案,也有自身的问题,也要解决这些问题。”

  微软建议,开发人员要熟悉基于事件的异步模式的编程,并学习使用功能协调器(如Durable Functions编程模型和Logic Apps连接器),创建长时间运行的操作和状态管理。

  但是倡导者们说,这些好处值得陡峭的学习曲线,所需要的不仅仅是更多工具,还有更具创造性的软件开发方法。

  “大多数应用所做的,绝大多数都可以呈现为无服务器功能,”Kobielus说。容器有助于将功能封装并作为服务提供给用户,它们可以独立扩展。”

  传统应用仍然可以通过修改以利用某些无服务器功能。本质上由事件驱动的各种功能是可以与主应用分开封装的。

  例如,“随时在数据库或文件系统中创建数据,这是一个事件,”Lowery说。“这意味着你可以将其设置为独立于主程序执行其他操作。这样做让应用生命周期更长,”因为应用可以通过使用应用程序编程接口进行扩展,或者挂接到其他应用中。

  企业组织可以调整各个组成部分以便受益于无服务器执行,并分阶段迁移,而不是从头开始重写现有应用。“将新的应用功能作为微服务,将用户界面组件从业务逻辑和数据访问层拆分,并将现有的微服务转换并拆分为无服务器功能,”Simform技术顾问Rohit Akiwatkar这样说道,Simform是一家移动和物联网服务公司,已经围绕服务器做了广泛发布。“随着时间的推移,功能的数量将会增加,开发团队的敏捷性和速度将会提高。”

  最佳时机

  现在是CIO加入无服务器阵营的时候了吗? Lowery认为是的。“我告诉CIO们,这项技术不会消失,这不是一种流行时尚。企业应该开始让员工熟悉这项技术。”

  Simform的Akiwatkar建议采取三个步骤:了解使用无服务器架构的最佳实践;确定高ROI的应用;在低风险环境中尝试无服务器功能。

  所有这些让现在成为开发者采用无服务器技术的最佳时机。从容器、微服务到现在的无服务器计算,过去五年在应用的构建和部署方面引入的创新数量比过去20年的总和还多。

  在一个极度缺乏人才的经济体中,对下一个重要事件保持谦逊可能是吸引最优秀人才的唯一途径。 “你必须有一个长期采用这项技术的计划,否则你将无法获得所需的人才。开发人员会对这项技术充满期待,”Lowery说。

  对于那些仍在努力应对如DevOps等无穷无尽创新(例如云、容器和微服务)的组织来说,无服务器计算似乎又是一个令人头痛的问题。 但在这个所有公司都想成为软件公司的商业世界中,没有跟上这个最新趋势可能会让你犯下存在感减少的错误。


上一页 1 2 下一页

关键词: 亚马逊 服务器

评论


相关推荐

技术专区

关闭