SAND:A high-performance serverless computing platform

这是一篇来自ATC18的文章。这篇文章主要,介绍了一种高性能无服务器计算平台。有关Serverless的文章之前就有同学进行过介绍。

这是Serverless Computing最简单的一个计算模型。我们看到开发者和平台进行了分工合作。开发者只需要定义触发事件,同时上传函数代码。同时,Serverless 平台将负责计算资源的分配,响应用户的请求,完成用户函数的计算,将计算完成之后的结果返回给用户。

这样的计算模式带来了几条好处。首先,由于用户不用管理后端的服务器,不用管理程序的依赖,不用管理操作系统等等。可以享受云平台提供的连续可扩展性的计算服务。此外,由于用户可以专注于代码逻辑,而不是运维,所以能提升生产效率。开发者可以更快地让自己的产品上线。因此,从开发者的角度来看,Serverless Computing是很好的。

作为开发者,开发应用,就会利用这个Serverless平台,建立很多的应用的计算函数。这里以图像处理应用为例,开发者创建了四个函数,第一个是提取图片的元数据信息,第二个是信息处理,第三个是物体识别,第四个是resize图片大小。函数之间信息传递。形成一个workflow。

这里作者,将这个图像处理的应用,部署在了现有的三大Serverless平台上。通过对比总运行时间,以及任务计算时间,我们不难发现,真正处理计算任务的时间,占比总运行时间的大小,只有一半左右。这就说明,由于Serverless带来中间传递信息,以及函数启动时间等等开销,也就是平台带来的开销时间比较大。这样的结果,不利于应用进行频繁调用计算。会拖累应用的性能表现。

 这里,作者提出了SAND,一个高性能无服务计算平台。主要实现的目标是,达到减少应用延迟的效果,同时高效利用资源。

这里先介绍一下背景,主要是现有的一些平台的情况,以及一些普遍的做法。

  现有的一些平台,通常是使用容器来进行函数的运算和隔离;容器被安排在具有可用资源的宿主机上;容器处理完成任务之后,经过了一段时间之后,就会回收资源;容器与容器之间是通过一个消息总线来进行通讯。消息总线,可以是分布式的消息传递,或者是通过存储服务来实现消息传递。

这些是我们发现的常见做法。其中大多数功能,大多数服务都利用容器来隔离功能,这对功能执行以及这些系统实际处理并发性有一些影响。每当有新请求时,必须从头开始初始化容器,都可以从头开始创建新容器,这被称为冷启动。这不可避免地会导致较长的启动延迟。 当然这样不是最好的做法,我们可以实现热启动,启动了容器之后,继续运行它。这样我们就可以重复利用那些空闲的容器。这是热启动的做法。只要收到请求,我们可以将它们导向已经启动好的容器上运行。

但是,这种方式,不适合处理并发的请求。因为如果我为每一个并发的请求,都实现容器的热启动,那么我们提前保留的资源就会很多,这样不能达到资源的充分利用。如果不能保留热启动的容器,则会带来很长的应用响应延迟。这两点都是我们不希望看到的。

此外,我还发现,Function与Function之间的消息传递,以及数据交换,是通过相同的一个message bus的。总线效率的地下,也导致了系统性能表现的不佳。

两个核心Idea,是应用沙盒和分层消息总线。

 

【论文总结】[ATC '18] SAND:A high-performance serverless computing platform相关推荐

  1. 计算机领域hpec会议,2018 IEEE High Performance extreme Computing Conference HPEC

    The IEEE High Performance Extreme Computing Conference (HPEC '18) will be held in the Greater Boston ...

  2. 如何高效阅读一篇论文?来自18位教授、主编和博士生的最好建议!

    撰文 | Elisabeth Pain (翻译 何伟雄 :审校 魏潇) 文章来源自公众号科研圈(ID:keyanquan) 即便是专业的科研从业者,也无法做到像看小说一样阅读各类研究论文--许多研究者 ...

  3. ATC‘22顶会论文RunD:高密高并发的轻量级 Serverless 安全容器运行时

    编者按:目前的安全容器软件栈 - 包括 host 操作系统中的 cgroup.guest 操作系统和用于函数工作负载的容器 rootfs,都会导致低部署密度和在低并发能力.为此,RunD 作为一种轻量 ...

  4. CHI论文阅读(1)EmoGlass: an End-to-End AI-Enabled Wearable Platform for Enhancing Self-Awareness of Emoti

    文章目录 abstract introduction Related Work 用于健康感知的智能眼镜 情绪感知和检测 通过可穿戴设备进行面部表情识别 Hardware Design Form Fac ...

  5. 【论文解析】Fast Adaptive Task Offloading in Edge Computing Based on Meta Reinforcement Learning

    基于元强化学习的边缘计算快速自适应任务卸载 摘要:多接入边缘计算(multi -access edge computing, MEC)旨在将云服务扩展到网络边缘,以减少网络流量和业务延迟.如何有效地将 ...

  6. Cloud Programming Simplified: A Berkerley View on Serverless Computing笔记

    今天读了一篇加州大学伯克利分校发表的论文 Cloud Programming Simplified: A Berkeley View on Serverless Computing,文章对server ...

  7. Serverless 崛起背后的五大挑战

    作者 | 科技云报道 众所周知,云计算的出现改变了传统 IT 架构和运维方式,而以容器.微服务为代表的技术更是在各个层面不断升级云服务的技术能力,它们将应用和环境中的很多通用能力变成了一种服务. Se ...

  8. aws lambda_AWS Lambda –无服务器编程

    aws lambda AWS Lambda is serverless programming. Serverless programming help to ease out the deploym ...

  9. ACA云原生4微服务和Serverless架构

    1 企业应用架构的演进与微服务架构 1.1 企业应用架构的演进 单体应用 SOA(Service Oriented Architecture),2000年出现 1.2 微服务架构与微服务框架 微服务出 ...

最新文章

  1. @ControllerAdvice注解(全局异常捕获)
  2. kafka 重复消费和数据丢失_刨根问底,Kafka消息中间件到底会不会丢消息
  3. php为图片添加渐变背景,HTML_CSS实例:通过定义渐变边框给图片加阴影,一般我们可以使用背景图的方 - phpStudy...
  4. Vue全家桶 之 Vue基础
  5. android访问静态内部类,Java 内部类详解
  6. EntytyFramework批量更新
  7. 聚类:Python遗传算法
  8. X1000对于camera控制部分的翻译
  9. 网页web腾讯云webIM开发记录(一)
  10. 1.槑 2.囧 3.烎 4.兲 5.氼 6.砳 7.嘦 8.嫑 9.嘂 10.圐圙 11.玊 12.孖 13.砼 怎么读
  11. 模仿QQ空间 网页设计
  12. 帮我写一份情书给在一起200天的女朋友,要求1000字
  13. 【中等】Leetcode-旋转链表//题目分析//首尾相连
  14. MyBatis中的resultMap两个association
  15. Python开发技术—网络爬虫
  16. cortex m3/m4处理器的复位设计
  17. .NET使用MailKit进行邮件处理
  18. 图像处理之Gamma校正
  19. vue js 进来页面自动播放背景音乐
  20. 【华为 OJ】密码验证合格程序

热门文章

  1. 经验之谈,关于HOG调参:对matlab和opencv作对比
  2. Git、Gitee简单操作
  3. 在线传单制作工具介绍
  4. VMware NSX Advanced Load Balancer (NSX ALB) 22.1.3 - 负载均衡平台
  5. 热塑性塑料注射成型中的常见缺陷及产生原因
  6. 爆炸性事件!刚刚,拼多多超越阿里成为第一,黄峥就辞任董事长,要去当科学家!股价一度暴跌9%,承诺三年不减持...
  7. 博物馆文创:打造“最后一个展厅”
  8. django从零开始引入bootstrap模板
  9. 【k8s源码篇之Informer篇4】关于 Informer 的一些困惑点
  10. 京东api接口文档:获取京东APP端商品详情原数据 调用示例