无服务器计算,虽然神秘,但必定会成为IT行业最有力的工具之一。这种可能改变游戏规则的技术虽然不是全新的,但就像以前的容器技术同样,有一些神化和误解。web
1什么是无服务器(Serverless)计算?数据库
无服务器计算容许企业构建、运行应用和服务而不用去考虑服务器。无服务器应用不须要管理任何服务器,并且任何类型的应用或后端服务均可以构建为无服务器应用。运行应用以及应用高可用所须要的一切,都由云服务商来提供。后端
无服务器应用程序有四大优点:服务器
1)不须要管理服务– 不须要提供或维护任何的服务器,不须要安装任何的软件或运行时。网络
2)弹性扩缩–应用程序扩缩能自动完成或是经过调整其资源使用量来调整容量,而不是经过增减服务器的数量。架构
3)高可用-无服务器应用程序内置高可用和容错。无需考虑高可用,运行应用的服务默认提供高可用。框架
4)没有闲置损耗-不须要对计算和存储之类的服务预留容量。若是代码没有运行,就不会收费。less
构建无服务器应用程序意味着开发者能够专一在产品代码上,而无须管理和操做云端或本地的服务器或运行时。运维
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运维人员的一种幻想。”
原文连接:
一、Everything you need to know about Serverless Computing
https://www.tuicool.com/artic...
二、Serverless and containers: Is a throw down under way?