物联网应用和事件驱动计算重塑云服务
2017-07-28 10:52:20 来源:51cto 热度:
如今,一些全球主要的公共云提供商已经为物联网和事件驱动计算推出了新的服务。了解这些服务对企业的IT团队和未来的云计算将有一些重要的意义。
工具总是以其用途塑造的。当云计算首次出现时,它是数据中心托管虚拟化的一种形式,其目标是看起来像裸机服务器。
基础架构即服务(IaaS)形成了最早的云服务,它仍然主导公共云以及私有云软件市场。即使如此,这并不意味着它将成为未来云机会的源泉。
云计算提供商一直在为未来做好准备,他们的计划显示了一个重要的,已经在进行中的转变。每个主要的公共云提供商都添加了处理事件的服务。特别是,提供商正在添加功能来帮助开发人员构建物联网(IoT)的应用程序。这些可以成为自互联网以来最具变革性应用的基础吗?
IaaS将不适用于物联网应用程序
传统应用程序遵循几十年的模式:工作来自于支持它的应用程序。在传统的云计算中,用户支付他们使用的处理资源。这些术语虽然有所不同,但它本质上是虚拟基础设施的租赁。这是数据中心发生的直接反映,服务器域中加载了应用程序,事务将路由到池中的正确服务器。这种方法在工作持续存在时是良好的,如在零售银行应用程序持续运行的情况下。
事件驱动和物联网应用程序改变了这个关键的持久性概念。随时随地都可以弹出一个活动。将IaaS实例用于等待事件浪费,也许是过于浪费。或者实例可能位于事件发生所在的数据中心中。如果所有可能的事件来源与传统的云端主机点相匹配,大多数情况下大部分时间都会闲置,但会增加成本。
为什么有一个特定的对错处理事件的原因很简单:延迟。大多数事件具有特定的响应时间期望。想象一下当物品通过传感器时触发喷漆的机器,或是一辆接近不断变化的交通信号灯的自动驾驶汽车。
事件与接收适当响应之间的信息流称为控制循环。大多数事件需要一个简短的控制循环,这意味着它们的进程需要靠近事件的点。这就是控制循环的问题,这些控制循环强制事件处理过程分散到云端,并且数量增加。
很容易看出,给定点的事件稀缺性会如何影响传统云计算的云效率和定价问题。也可能有太多的事件。云计算可以通过根据需要运行应用程序组件的多个副本来允许云爆发或扩展容量,但这并不容易。
重新思考物联网应用程序和开放式可插拔规范(OPS)
编写为在裸机服务器上运行的很少应用程序可以无缝地缩放或替换失败的实例。这些云功能在传统应用程序运行的数据中心中并不常见。将应用程序移动到云中也不会增加扩展应用程序所需的功能。
应用程序组件的多个副本需要负载平衡,并且许多应用程序没有设计为允许组件的任何副本处理任何事件或请求。如果在一个应用程序的一个副本中,一半的字符串转到应用程序的一个副本,而另一半用于另一个应用程序,那么在背景中假设一系列请求的应用程序不能工作。那么如何使物联网应用程序可扩展性和弹性?他们必须重写。
开发人员正在做这些事情,大型云提供商正在响应。特别是,他们都看到与云计算的相同的物联网和事件未来。他们一直在不断增强云计算,为未来作好准备。云计算巨头不仅提供特殊的Web服务来管理物联网设备和连接,而且现在提供了工具来支持物联网应用程序所需的编程。
函数式或lambda式编程不允许应用程序或组件在使用之间存储数据。因此,组件的所有实例都可以处理事件。云供应商现在提供的功能或微服支持而不是简单地提供基础设施、平台或软件即服务,因为函数云是非常不同的。
用户的函数在函数云中托管在哪里?无处不在。函数在任何需要的地方被激活,在需要时,用户在使用它们时支付。物联网或任何类型的事件驱动计算的函数云代表着极致的灵活性和敏捷性。他们还要求用户注意制定关于托管他们愿意支付多少函数的政策,根据成本和这些麻烦的控制回路长度的组合,他们必须做出决定。
函数云的兴起
亚马逊甚至允许物联网将要求在云端迁移的云应用程序。他们的Amazon Web Services(AWS)Greengrass平台是一个软件和中间件框架,可让用户在自己的硬件上执行AWS兼容功能。此功能将使物联用户对事件进行一些本地处理,以使这些控制回路保持短路,但仍然在AWS云中托管更深层次,更少的时间关键函数。
传统的云模型使用户为其托管实例支付费用。在函数云中,用户不会以通常的方式托管实例。用户可以根据需要即时执行功能。这是什么导致了即时即付或无服务器的功能云描述,但这不足为奇。用户可以根据使用情况为任何云计算服务,运行任何应用程序进行定价,但这并不能使云服务可扩展或轻松优化。没有这些功能,无服务器只是一个定价策略。
开发人员必须对应用程序进行更改以适应物联网和功能云。几乎每个新的程序或服务都存储信息,这使得它难以扩展。功能编程的规则是无状态的,这意味着用户从进程获取的输出仅基于其提供的输入。甚至有编程语言旨在强化对开发人员的无状态行为。
需求的函数
亚马逊网络服务公司的Lambda是第一个上市基于事件的计算服务,而其他几家云计算服务提供商也很快地对外推出类似的服务。微软Azure功能去年11月份推出,IBM的Apache Open Whisk在下个月推出。谷歌公司于4月份将Cloud Functions服务转为测试版,Pivotal预计将于2017年中期开设业务的Spring Cloud功能。
函数云的概念可能会加速已经开始的趋势,以应对移动设备的使用和BYOD策略的实施。企业发现,他们正在创建旨在为移动设备格式化信息的应用程序组件,为各种移动平台编写的进行接口应用程序,并提供通常在数据中心运行的后端应用程序的一致支持。
这些力量结合起来创建一个应用程序的两层模型。设备处理前端在云端,并利用云计算在全球范围内分发应用程序的能力。然后,云计算部分将为核心业务应用程序创建传统交易,无论它们位于何处。
物联网比移动工作人员分布得更加分散,一些物联网事件需要更短的控制回路。因此,应用程序前端部分的云托管可能会得到爆炸式增长。这给这种两层应用程序结构的偏离带来了压力,因为许多事件可能会产生许多事务。这些交易可能让核心业务应用程序崩溃。云计算提供商也在努力。例如,微软公司具有通常用于为业务应用程序提供工作的服务总线的云分布版本。
鉴于物联网还处于起步阶段,而云物联网更加年轻,很容易想知道云供应商为什么已经提供物联网功能。其中有三个原因:首先,物联网可以大大增加IT支出,云计算提供商希望将其中一部分作为潜在的新收入。第二,物联网不是唯一产生事件的东西。例如,很多工作人员的互动看起来像事件处理。最后,功能编程技术正在被推广到各种处理过程中。物联网应用程序需要它们。开发人员工具和会议已经描述了函数编程技术如何使程序更好,更易于维护。
如果由于任何原因编写函数,是不是使用函数云不可避免?
这是每个云计算提供商和云端用户需要考虑的最大问题。完全可扩展的应用程序。可以通过简单加载另一个副本来增加或减少负载容量,并修复自身的应用程序,这对企业非常有用。为物联网应用程序开发的功能编程技术以及支持这些技术的功能云将重构程序。
工具是由他们的用途定义的,那么用户在事件处理中已经看到了未来的云,而物联联将加速这一趋势。物联网具有在广泛领域大量生产事件的潜力,同时要求较短的控制环路将彻底改变云计算的使用。
责任编辑:朱虹瑾