登录 / 注册
IT168技术开发频道
IT168首页 > 技术开发 > 技术开发资讯 > 正文

AWS Lambda: 2017年无服务器状态报告

2017-11-29 16:22    it168网站 原创  作者: 编译|三文鱼 编辑: 单文彦

  【IT168 资讯】本文将通过AWS Lambda和无服务器计算的状态,来看看眼下最流行的语言、大型无服务器功能以及其他相关的东西。

  AWS Lambda已经成为2017年最受关注的云服务之一。因此,我们研究了New Relic客户使用AWS Lambda开箱即用仪器的情况,并发现大多数人开始尝试并熟悉这项技术。

  现在看来,使用毫秒级脚本语言编写的轻量级函数,比大型长时间运行的函数要普遍得多,监测功能的平均持续时间仅为510毫秒。随着越来越多的人通过运行实验和原型来熟悉无服务器体系结构,我们希望看到每个账户的功能数量增加,整体功能复杂性也能得到增加。如果有超过75%的帐户使用多种编程语言,那么使用多语言AWS Lambda环境的趋势是否会加速?我们对这个问题充满了好奇。

  这只是从更好地理解并利用New Relic、AWS Lambda组织的配置和使用模式中所得出的几个结论。在庆祝New Relic Infrastructure及其AWS Lambda仪器发布周年之际,分析了在AWS Lambda上使用New Relic Insights的匿名数据。尽管“无服务器”这个术语包含了多个云提供商的各式各样的服务,但本报告,仅探索了AWS Lambda中的数据。

  这个分析是我们最近的一项关于动态云和DevOps实现无服务器调查的延伸。结果表明,43%的受访者已经在使用AWS Lambda、Azure Functions或Google Cloud Functions等功能的服务(FaaS)平台。

  除此之外,还研究了公司是如何使用AWS Lambda的?我们发现,像Node.js和Python这样的最常用脚本语言运行时,功能往往具有相对较小的代码大小(Java函数除外),功能配置设置似乎没有针对成本和性能进行调整,而且账户通常在单个地区部署功能。

  数字背后有什么含义呢?

  像Node.js和Python是最常用的脚本语言。

AWS  Lambda: 2017年无服务器状态报告

  AWS Lambda允许开发人员使用任何一种语言编写其功能。这种灵活性使团队可以使用他们熟悉的语言,并使现有的框架和库适应新的功能。但是,令人惊讶的是,很多组织使用了不止一个运行时类型;在创建函数时,有超过76%的人使用了一种以上的编程语言。

  脚本语言是最常见的运行选择。对于11月份某一周内调用的函数情况开看,Python 2是最受欢迎的,有一半的函数都在使用它。Node.js第二受欢迎,其中超过三分之一的功能是使用Node 6.10或4.3编写的。与Python 2相比,开发人员很少会选择Python 3(只有2.73%)。

  使用多种语言编写功能的大部分账户可以尝试有多个运行。对Python和JavaScript的偏好也可能反映了流行的框架支持(如无服务器框架),或简单地开发和本地测试用这些语言编写的功能。

  除了Java函数,其他函数趋于有相对较小的代码大小

AWS  Lambda: 2017年无服务器状态报告

  根据现代软件标准,AWS Lambda函数的总代码大小(即代码磁盘空间和函数的依赖关系)往往很小。将近一半的监控功能几乎都可以安装在3.5英寸的软盘上。

  Java函数显然具有异常值。他们的平均代码大小超过了20MB,这意味着比Node.js或Python函数的功能部署大小都大得多。

  对较小函数代码大小的偏见表明,在AWS Lambda中运行的新功能里,大多数都包含相对较少的捆绑依赖关系或广泛的业务逻辑,指向潜在更简单的功能。

  值得注意的是,大约4%的非Java函数大小也大于20MB。我们可以推断,这些工作负载可能是打包了大量的代码,或依赖于运行时不能单独解释的函数。随着AWS Lambda用户探索更多的用例,这种情况是否会随着时间的推移而增加呢?

  中值功能超时设置为60秒

  AWS Lambda功能以100ms为增量进行计费,通常设计得很快。考虑到这一点,新功能的默认超时值仅为3秒。令人惊讶的是,所看到的大部分功能都超过了这个限制。

  我们没有看到超时配置和内存设置之间的明确关系,大内存与短超时值之间没有关联。但是,分配比例CPU功率的内存设置可能会对整体功能性能产生重大影响。随着更多的CPU功率和内存被分配给一个功能时,调用该函数的调用时间也会减少,这可能会降低运行该函数的成本。

  与默认值(128MB)相比,.NET、Java和Python 2.7函数更有可能被配到更大的内存设置(512MB)。

  这些数据表明,对于大多数功能而言,内存并没有得到广泛的管组。这是一个性能优化和成本优化的潜在机会。当研究调整AWS Lambda功能的内存时,我们发现使用数据来验证内存增长,实际上最终降低了功能每月的运行成本。

  函数是全局分布的,不是多区域的

  AWS Lambda现在几乎遍及了全球所有的AWS地区,对欧洲、北美和亚洲运行并不意外。当然,因为这些数据来自New Relic使用Lambda的客户,所以可能会影响我们联合全球客户群的分布。

AWS  Lambda: 2017年无服务器状态报告

  我们还探讨了有多少账户将功能部署到多个全局区域。在本报告发布之时,大多数组织仅部署在一个地区。然而,少数账户(少于1%)在九个以上AWS地区部署了功能。简单的功能部署模式是否会使全球地区的高度分布式功能更为普遍。

  我们想知道您是如何使用AWS Lambda和无服务器的?

  虽然对AWS Lambda的试用和试验,似乎是大多数AWS Lambda用户的关注焦点,但这些数据也表明,许多不同类型的组织都成功创建了利用无服务器架构和定价模型的功能。通过查看数据中的异常值,我们可以看到使用多种编程语言在世界各地运行功能的可能性。

  • IT168企业级IT168企业级
  • IT168文库IT168文库

扫一扫关注

行车视线文章推荐

首页 评论 返回顶部