11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

无服务器 TOP3 大关键问题及解决方案

  • 2019-02-12
  • 本文字数:1478 字

    阅读完需:约 5 分钟

无服务器TOP3大关键问题及解决方案

无服务器计算风靡一时,遵循以下提示可消除其中的非计算瓶颈,避免程序限制和任务排队,并保持功能的及时响应…


无服务器计算提供了一个基础架构,允许将服务器资源应用于系统,以便扩展并有效提供计算能力,但省去了服务器管理带来的麻烦,这意味着没有人需要在运行时关心单个服务器(坦率地说,没有人真正关心过),这使得将一组服务器外包到云提供商具有成本效益,而无服务器界面通过最小化合同使外包关系变得尽可能简单。


关于无服务器,许多人的直接反应是尝试用图表和与其各自无服务器功能相关的告警来替换附加到服务器的图表和告警。然而,这并未从根本上解决应用程序管理挑战。正如没有人真正关心服务器一样,没有人真正关心无服务器功能。


大部分人关心的只是系统为用户提供的服务水平,这意味着有价值的监控必须关注可能出错的事情,并且在无服务器的情况下,出错不再关注服务器层面,因为服务器容量耗尽等错误已经被有效隐藏。那么,典型的无服务器问题是什么?又是如何表现的呢?


冷启动成本

这是无服务器系统经常出现且被频繁讨论的问题,为了最大限度提高利用率,无服务器提供商有时会选择完全关闭非活动功能。当负载恢复时,启动成本会导致响应时间延长。当一个业务功能由链接在一起的许多无服务器功能组成时,这种效果可能会复杂化。


解决方法:许多用户人为 ping 功能以确保服务活着。要通过链式服务网络有效应用此策略,必须了解它们之间的端到端关系,以便依赖链中的所有服务保持活动状态,从而使业务的端到端跟踪必不可少。


资源请求

无服务器平台会限制无服务器功能将执行的并发请求数,通常是在某个帐户和单个功能级别。一旦达到并发限制,进一步的用户请求将排队,从而导致响应时间延长。虽然限制有效计算资源池似乎有悖常理,但这确实可以防止潜在花销(不要忘记,容量按消费基础计费)。


解决方法:提高门槛或者确保合理设置资源以满足响应时间和并发方面的任何非功能性要求。同样,需要端到端的可见性,因此可以快速确定受限制的内容,以及限制对最终用户体验的影响。


非计算瓶颈

如果解决了所有无服务器限制,就可以支持尽可能多的并发请求。根据具体情况,这并不意味着麻烦彻底解决,如果等待读取或写入数据,就需要无限缩放 lambda 等待数据访问,同时需要为非生产性等待付费。


功能悬挂的确切原因随持久性存储的不同而有差异:


  • 云数据存储:云数据服务变得越来越有弹性,但许多仍需要根据并发读写卷配置资源。

  • 传统系统:没有哪个功能是孤岛,许多做无服务器的用户正在使用无服务器功能(有时是大型机,有时是传统的基于服务器的部署)包装现有系统。虽然很容易提高阈值以允许功能扩展,但这只意味着很容易压倒无法轻易扩展的后端。


解决方案:为了确保后端系统能够承受理论上的最大负载,请将它们与功能限制器一起调整。这有助于确保系统端到端地顺利运行,从而避免不必要的成本和客户不满。在某些情况下,可能需要复制数据以使不同的系统从不同的位置访问(当然,这以增加数据管理复杂性为代价,可能导致不一致的风险蔓延到数据中)。


此外,在事务级别了解系统端到端流程,对识别和告警生产瓶颈以及端到端分析至关重要。


无服务器 ops 是 devops

无服务器最普遍的含义是,开发人员配置代码,在无服务器计算中为生产提供整个包,而不仅仅是功能部件,这意味着一旦使用 IDE 调试生产问题,最好熟悉某种性能管理解决方案,因为至少一半“错误”可能会与部署相关。系统命运完全在个人手中,应用程序级别的端到端可见性至关重要。


参考链接:


https://www.infoworld.com/article/3338111/serverless-computing/the-top-3-serverless-problems-and-how-to-solve-them.html


2019-02-12 10:493820
用户头像
赵钰莹 InfoQ 主编

发布了 807 篇内容, 共 502.4 次阅读, 收获喜欢 2540 次。

关注

评论

发布
暂无评论
发现更多内容

计算机编码简析

android 程序员 移动开发

记联想公司的一次Android面试

android 程序员 移动开发

设计模式之行为型模式

android 程序员 移动开发

试用期没通过的原因,居然是被发现了上班偷偷干这事

android 程序员 移动开发

计算机编码简析(1)

android 程序员 移动开发

记一次腾讯社招Android面试(已拿到offer入职)

android 程序员 移动开发

详解-RxJava2-的线程切换原理

android 程序员 移动开发

超新鲜的字节面经,轻取社招Android开发岗

android 程序员 移动开发

蒂花之秀---大神用漫画讲解字符串匹配算法,让你噩梦变美梦

android 程序员 移动开发

设计模式(行为型)之模板方法模式(Template Method Pattern)

android 程序员 移动开发

设计模式学习--观察者模式(Observer Pattern)

android 程序员 移动开发

详解BAT面试必问之ThreadLocal(源码+内存)

android 程序员 移动开发

详解HTTP协议

android 程序员 移动开发

跨平台新潮!打脸,Flutter被放弃了?

android 程序员 移动开发

Linux基金会宣布成立NextArch Foundation基金会 第四范式成为首批共建单位

第四范式开发者社区

nginx 缓存大小的含义

liuzhen007

11月日更

论一个APP从启动到主页面显示经历的过程?

android 程序员 移动开发

详解-RxJava2-的线程切换原理(1)

android 程序员 移动开发

详解Gradle自动实现Android组件化

android 程序员 移动开发

谷歌-在-CI-中使用-Benchmark-进行回归分析

android 程序员 移动开发

资深架构师和你谈谈 Kotlin 的泛型

android 程序员 移动开发

要想工资涨得快,还是得跳槽?一个三本Android程序猿外包到阿里的逆袭之路

android 程序员 移动开发

模块三作业

bob

「架构实战营」

谷歌:使用-Android-Studio-Profiler-工具解析应用的内存和-CPU-使用数据

android 程序员 移动开发

裸辞两个月从Android转战web前端的求职之路

android 程序员 移动开发

解决Fragment多层嵌套时onActivityResult无法正确回调的问题

android 程序员 移动开发

认识ClassLoader

android 程序员 移动开发

跨进程通讯Binder的onTransact方法一定在binder线程池的binder线程中执行吗?

android 程序员 移动开发

致刚入行的小白,或者工作一到三年的Android程序员,如何规避“内卷

android 程序员 移动开发

Java-第一周的第3题

脉动

详解二叉搜索树(BST)的Java实现和五种遍历方式

android 程序员 移动开发

无服务器TOP3大关键问题及解决方案_云计算_赵钰莹_InfoQ精选文章