关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

使应用程序为无服务器平台做好准备的三种方法

发布时间:2018-07-12 12:04:34

与在更传统的PaaS或IaaS环境中运行的应用程序相比,无服务器平台上的应用程序提供了对性能,存储等的独特要求。

主要的云提供商,包括AWS,微软和谷歌,已经推出了无服务器平台,允许用户将简单甚至高度复杂的应用程序与一组功能结合起来。但要在这样的平台上成功运行云应用程序,开发团队需要改进设计流程。

5802746028ba06fbdf607ba2fd8fd698.jpeg-wh_651x-s_2509012065.jpeg

使应用程序为无服务器平台做好准备的三种方法

构建无服务器应用程序时开发人员应遵循的几个关键原则包括:

    1.开发小型独立应用程序组件。

    2.实现无状态功能。

    3.计划一个寿命短的临时功能。

1.更小,独立的组件

从本质上讲,无服务器功能旨在执行单个任务。这要求开发团队确保功能很小,并围绕这些单独的应用程序组件协调开发过程。

一个好的做法是根据触发器函数的事件类型将函数分解为自己的库。基本上,开发人员应该从一开始就设计每个函数以响应事件。如果同一事件触发多个函数,请将它们包含在同一个库中。这使开发人员可以更轻松地根据触发函数的事件识别函数。

每个单独的功能还应包括配置数据,以确保在开发,测试和生产环境中启动时功能一致。使用npm和webpack等工具声明和隔离每个函数中的依赖项也很重要。

2.选择无状态

开发团队应考虑将功能实现为无状态服务,其中功能的状态存储在应用程序本身之外。您可以配置函数以引用作为配置数据的一部分进行管理并与存储库中的函数一起存储的数据存储和数据库。

一些无服务器平台提供在函数调用之间持续存在的本地存储。虽然开发人员可能无法将其用于更复杂的功能,但本地存储并不总是在函数调用之间保持不变;它可能会不一致,即使它仍然存在。

尝试使用支持服务将有状态数据存储在数据库,单独的存储数据区域或缓存中。支持服务是函数在网络上作为正常操作的一部分使用的任何外部服务,包括缓存服务(例如Memcached),数据存储(例如CouchDB)或数据库(例如MySQL)。

3.规划临时

无服务器功能的一个好处是,与运行在PaaS,容器和虚拟机上的大型应用程序相比,它们可以在几毫秒内启动,这些应用程序需要几秒甚至几分钟,并且可以快速停止运行。因此,很容易添加大量函数来满足要求,或者让并行运行的函数一起完成计算任务,然后,一旦计算完成,就让它们停止运行。

实际上,无服务器应用程序本质上更为临时。

这意味着为了获得无服务器平台的好处,开发人员需要从函数的核心逻辑中删除通常与应用程序绑定的许多组件。

开发人员应该:

        1.预热功能所需的数据源;

        2.建立外部记录并跟踪基础设施;

        3.管理安全。

预热

为了预热该功能,您需要构建在部署之前将功能连接到数据库所需的基础结构。

为此,请将函数处理程序与核心逻辑分开。就像在寒冷天气中闲置汽车以提高性能一样,空闲事件处理程序确保一旦调用该函数,它将以最佳性能运行。 AWS CloudFormation和Azure Event Hub等工具支持预热过程。

外部记录和跟踪

该功能需要能够优雅而快速地关闭。虽然无服务器平台包括一些内置本地存储,但配置外部日志记录和跟踪服务(此服务内置于无服务器框架本身),或设置自定义工具以在函数运行时从函数中收集和存储日志数据。这个非常重要。

AWS X-Ray和Azure Application Insights等工具便于记录和跟踪。

安全

无服务器应用程序为黑客提供了另一种潜在的攻击途径如果未实施适当的安全措施,黑客可能会启用访问敏感数据的功能。开发人员应为各种功能设置安全性,以便他们只能访问执行任务所需的其他应用程序。



/template/Home/Zkeys/PC/Static