2019独角兽企业重金招聘Python工程师标准>>>

无服务器计算,虽然神秘,但一定会成为IT行业最有力的工具之一。这种可能改变游戏规则的技术虽然不是全新的,但就像之前的容器技术一样,有一些神化和误解。

1什么是无服务器(Serverless)计算?

无服务器计算允许企业构建、运行应用和服务而不用去考虑服务器。无服务器应用不需要管理任何服务器,而且任何类型的应用或后端服务都可以构建为无服务器应用。运行应用以及应用高可用所需要的一切,都由云服务商来提供。

无服务器应用程序有四大优势:

1)不需要管理服务– 不需要提供或维护任何的服务器,不需要安装任何的软件或运行时。

2)弹性扩缩–应用程序扩缩能自动完成或是通过调整其资源使用量来调整容量,而不是通过增减服务器的数量。

3)高可用-无服务器应用程序内置高可用和容错。无需考虑高可用,运行应用的服务默认提供高可用。

4)没有闲置损耗-不需要对计算和存储之类的服务预留容量。如果代码没有运行,就不会收费。

构建无服务器应用程序意味着开发者可以专注在产品代码上,而无须管理和操作云端或本地的服务器或运行时。

2无服务器(Serverless)计算如何工作?

与使用虚拟机或一些底层的技术来部署和管理应用程序相比,无服务器计算提供了一种更高级别的抽象。因为它们有不同的抽象和“触发器”的集合。

拿计算来讲,这种抽象有一个特定函数和抽象的触发器,它通常是一个事件。以数据库为例,这种抽象也许是一个表,而触发器相当于表的查询或搜索,或者通过在表中做一些事情而生成的事件。

比如一款手机游戏,允许用户在不同的平台上为全球顶级玩家使用高分数表。当请求此信息时,请求从应用程序到API接口。API接口或许会触发 aws 的Lambda函数,或者无服务器函数,这些函数再从数据库表中获取到数据流,返回包含前五名分数的一定格式的数据。

一旦构建完成,应用程序的功能就可以在基于移动和基于 web 的游戏版本中重用。

这跟设置服务器不同,不是必须要有Amazon EC2实例或服务器,然后等待请求。环境由事件触发,而响应事件所需的逻辑只在响应时执行。这意味着,运行函数的资源只有在函数运行时被创建,产生一种非常高效的方法来构建应用程序。

3适用于哪些场景?

无服务器计算适合于任何事件驱动的各种不同的用例。这包括物联网,移动应用,基于网络的应用程序和聊天机器人。事件是由人的动作(比如按下按钮),传感器或者系统中的数据流产生。

这方面的一个例子是,Thomson Reuters(人名)使用AWS Lambda来加载和处理数据流,而无需提供或管理任何服务器。Thomson Reuters建立了一个解决方案,使其能够捕捉、分析和可视化其产品所生成的分析数据,提供帮助产品团队不断改进用户体验的见解。

AWS Lambda只在通过与其他AWS服务、Kinesis和AmazonS3集成的新数据条目触发时运行代码。

在事件驱动下,当代码运行时,公司只收取计算处理的费用,这是非常节约成本的。

4不适用哪些场景?

对于已经构建的遗留应用程序来说,这不一定是一个完全的解决方案。如果是一个单体应用或者应用需要运行在操作系统级别,这样的应用就不适合在无服务器平台上运行。这并不意味着这样的应用没法实现无服务器架构,它只是意味着需要重新构建应用程序。

一个很好的例子是web应用程序,可以在应用程序服务器(如Tomcat)中将其作为一个大型的单体job运行。如果要将应用程序分解为复合函数集,则可以使用无服务器模型实现所有的新功能。随着时间的推移,旧版本应用程序的使用级别越来越小,这些新的无服务器组件的使用率随着使用量的增加而增加。对于这样的客户,都有一个过渡模型,客户可以遵循这种过渡模式,将传统的基于机器的应用程序架构迁移到基于功能的架构。

5无服务器(Serverless)计算贵吗?

并不贵。只需要支付企业所使用的部分,没有任何与无服务器计算相关的成本。特别对于小的用例,应用程序使用随时间变化大的企业是非常划算的。

对于希望管理工作负载和操作的客户来说,它也非常划算,因为它可以使客户避免成本,例如容量规划或部署工具。许多AWS的客户,现在正在尝试用服务器来提高敏捷度,同时也节省了成本。健康零食公司Graze有许多使用for AWS的方法,包括将分析数据实时上传至亚马逊RedShift、管理备份和检查GitHub拉请求,希望在未来几个月内将其使用量增加两到三倍。

6无服务器(Serverless)的行业炒作

无服务器计算得到了开发人员的积极响应。在以资源有效的方式交付应用程序时,它提供了更多的选项和可能性。

很多大型的企业,比如Netflix,已经在探索无服务器计算,希望解放开发人员的时间。Netflix使用AWS Lambda来构建基于规则的自我管理基础设施,并替换低效的流程,减少错误的速率,为开发人员节省宝贵的时间。

以前,云开发者必须使用那些耗费大量人力和时间的机器。无服务器技术允许开发人员在几分钟内运行测试和产品。开发人员直接控制部署时间以及如何部署,通过建模框架控制应用架构。还允许发布自己的产品并亲自体验。

2

容器和无服务器(Serverless)

无服务器计算和容器之间正在酝酿一场战斗——当尘埃落定时,谁会倒下?会是容器吗?

如前所述,无服务器具备一些明显的优势。比如节省成本,提高IT支出的效率,减少资源和维护需求,允许开发人员和IT人员专注于高价值的任务等等。这也是为什么人们会对这项技术充满热情的原因。但是,通往无服务器的路径并不轻松。

SetfiveConsulting 的合伙人 Ashish Datta 说,将基于容器的架构迁移到无服务器通常需要重新架构系统的重要部分。

“与从虚拟机到容器的转换相比,从容器到无服务器的转换更有戏剧性,因为容器和无服务器之间的计算环境发生了根本性的变化。”

相反,从虚拟机到容器的迁移更为直接,因为这实际上只是部署哲学的变化。

Stackery CEO Nate Taggart说,最大的障碍是企业无法轻易地迁移到无服务器架构上。

“(无服务器应用程序)必须是为无服务器基础设施设计的。这对于新的开发来说可能是相当经济的,但是迁移遗留应用程序将是很繁重的,在某些情况下甚至是不可能的。

今天的无服务器产品有资源的限制,Taggert解释道,包括内存、计算和时间限制;有限的语言支持;以及在请求之间管理状态的特殊考虑。所有这些都必须“从一开始就融入到应用程序设计中”,Taggert说。

PubNub的产品营销总监James Riseman说,迁移到无服务器架构还需要对现有基础设施进行重大的反思。

“无服务器计算需要一个非常现代的、组件化的架构。系统和应用程序必须被分解成离散的逻辑函数,而要保证这样的质量企业会失去控制。” JamesRiseman 表示。

无服务器的另一个问题是定价。“公司是按照每笔交易或每秒钟计费,而不是按照传统的基础设施条款,”Siseman说。“这使得定价更加难以预测。”

除了地址迁移需求之外,转向无服务器计算还会导致思维模式的改变。

“最大的障碍之一是,需要考虑在离散的单元中计算资源,而不是始终占用进行计算。”这与对内存使用量和运行时等框架的限制相吻合,比如Amazon Lambda这样的框架。“Atta说道。

1对手还是盟友?

撇开正反两方面的因素不说,在面对面的交锋中,容器和无服务器是相互排斥的解决方案。但是每个人都说这样想是错误的。

SwymSystems CEO兼首席顾问Todd Millecam 表示,这是一种苹果和橘子的比较。“两者都有使用,如果观察大多数无服务器技术的运行方式,它们只是在后台运行容器。”

无服务器和容器是互相补充而并非重叠的角色。Taggart说,虽然两者都可以用于计算任务,但每个任务都有其优缺点。无服务器是一种理想的、可预测的、具有小型资源需求和短期事务的工作负载。

容器对于长时运行的流程和可预测的工作负载具有优势。容器在应用程序设计方面也提供了更多的灵活性,但需要对底层基础架构进行更多的管理。

“作为一个无服务器操作控制台产品,我们有一个几乎完全没有服务器的后端,”Taggart补充说,但是仍然使用容器来处理某些工作负载,在这些工作负载中,它们是更好的工作工具

2 Serverless是未来吗?

看来,关于容器式微的谣言被夸大了。

Datta说,不同的架构和应用程序总是需要不同程度的抽象,同样,不同的团队也会对做出不同的权衡。

正如容器没有取代虚拟机,虚拟机也没有取代裸金属的服务器。抽象不会成为“更接近金属”的解决方案的生死存亡的威胁。

无服务器,应该被看作是技术的进化。大多数观察者警告说,无服务器仍然不成熟,还没有建立架构模型和健壮的开发工具。这意味着将企业应用程序的命运与特定的云供应商绑定,将带来自身的风险。

因此,尽管它有巨大的潜力,但可能需要数年才能在企业中获得广泛的应用。

同时,无服务器将会对创业公司产生重大影响。

“无服务器计算提供了一种托管代码的方法,并以很低廉的成本在web上可用。在拥有活跃的用户基础之前,无服务器是构建web应用程序的一种划算的方式。”Millecam说道。

不过,数字机构POP CTO Jake Bennett 表示,随着无服务计算技术的成熟,架构师会发现无服务器将越来越难以抗拒。“无服务器计算解决了太多被忽视的问题。将对可伸缩性问题的关注转移给第三方供应商,是每个开发人员的梦想,让别人关心服务器维护是IT运维人员的一种幻想。”

原文链接:

1、Everything you need to know about Serverless Computing

https://www.tuicool.com/articles/yMZVfev

2、Serverless and containers: Is a throw down under way?

https://www.tuicool.com/articles/BvUziyY

转载于:https://my.oschina.net/shurenyun/blog/1601457

关于无服务器(Serverless)架构你要搞懂的8件事相关推荐

  1. 无服务器Serverless总结

    文章目录 背景 先了解下什么是云计算 什么是无服务器计算? 无服务器计算就是没有用服务器吗? "无服务器"架构--Serverless介绍 Faas介绍 优势? 无服务器Serve ...

  2. 架构师必须搞懂DNS,一篇文章就够了。

    转载自 架构师必须搞懂DNS,一篇文章就够了. 概念 DNS,全称Domain Name System,即域名系统,搞清楚,它不是DNF地下城与勇士. DNS是怎么来的,我们知道要访问一个服务器的资源 ...

  3. 无服务器Serverless详解

    前言 最近关于 Serverless 的讨论越来越多.看似与前端关系不大的 Serverless,其实早已和前端有了颇深渊源,并且将掀起新的前端技术变革.此次分享根据个人理解和总结,从前端开发模式在s ...

  4. 苹果6在泰国显示无服务器,在泰国上网一定要注意的3件事儿

    原标题:在泰国上网一定要注意的3件事儿 去泰国旅游,主要有三种上网方法,开通国际漫游,租赁WiFi设备,购买泰国上网卡.本文就为前往泰国旅行的朋友,聊聊在泰国上网要注意的那些事儿. 一. 泰国网络哪家 ...

  5. 大家可能经常搞混的一件事:电信带宽与实际速率

    大家申请ADSL或光纤专线时,电信给出的值经常是512K.1M.2M.10M等等,这里的速率值如512K是指为用户提供的带宽数值,单位是bps(调制速率),这个带宽实际是指从用户端接入设备(如ADSL ...

  6. 【成为架构师系列】领导力就是两件事:断物和识人

    领导力--是战略与执行的原动力 所以执行力和战略一定要结合起来. 战略的执行和落实需要掌握核心能力的人,所以领导力--是战略与执行的原动力. 简单地说,领导力就是两件事--"断物" ...

  7. 2023亚马逊云科技中国峰会引领无服务器架构新潮流:Serverlesspresso Workshop

    序言 在今年3月,我有幸接触了一个项目,也因此结识了 亚马逊云科技无服务器架构 Serverless.在陆续了解 Amazon 产品的过程中,我逐渐发现它所带给我的惊喜远远超出了最初的预期. 今天,想 ...

  8. Serverless无服务器架构

    Serverless体系结构是一种应用程序设计,它包含第三方"后端即服务"(BaaS)服务,和/或包含在"功能即服务"(FaaS)平台上的托管临时容器中运行的自 ...

  9. 微服务架构 性能提升_如何通过无服务器架构提高性能

    微服务架构 性能提升 by Domenico Angilletta 通过多梅尼科·安吉列塔(Domenico Angilletta) 如何通过无服务器架构提高性能 (How to boost your ...

最新文章

  1. java事务设计iofo,Spring事务最佳实践
  2. ConcurrentHashMap源码学习
  3. WARNING: YARN_ROOT_LOGGER has been replaced by HADOOP_ROOT_LOGGER. Using value of YARN_ROOT_LOGGER
  4. time、random以及序列化模块
  5. 【MFC系列-第16天】企业信息管理软件开发
  6. 【POJ - 2594】Treasure Exploration(floyd传递闭包 + 最小路径覆盖,图论)
  7. common.inc.php源码,inc.common.php解决错误
  8. ArcEngine 9.3.1与64位操作系统 80040154
  9. 数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器(转)...
  10. MyEclipse could not redeploy(不能重新部署)的解决办法
  11. siege 测试post_使用Siege进行Web App性能测试:计划,测试,学习
  12. Vue单文件组件TypeScript写法
  13. sogou/workflow入门(windows版)
  14. 3D模型动画素材来源
  15. leetcode常用思路总结与文章索引
  16. js实现点击按钮切换图片功能_☆*往事随風*☆的博客
  17. HTML 学习手册(常用的标签)
  18. Vue2构建项目实战
  19. 高德地图的基础使用(三)绘制点标记
  20. 杰理之杰理音箱方案选型【篇】

热门文章

  1. Java通过泛型的模板类型实例化对象
  2. 利用服务器修改服务器数据,用Jquery实现可编辑表格并用AJAX提交到服务器修改数据...
  3. Python—sqlalchemy
  4. Cortex-A9 UART
  5. 如何使用jQuery向asp.net Mvc传递复杂json数据
  6. PowerDesigner连接Oracle数据库生成数据模型【本地连接方式】
  7. 使用AppleScript播放指定时间的电影片段
  8. Project interpreter not specified(eclipse+pydev) (转)
  9. memcached failed to listen问题解决以及 结束daemon的方法
  10. VC.NET扩展Windows磁盘清理工具的功能