查看原文
其他

Serverless Computing 是公共云的下一站吗?

2016-05-17 云头条

如今,无服务器计算(serverlesscomputing)在云服务提供商当中颇为流行,AWSLambda等工具有望改变资源的使用方式,不过眼下仍处于早期阶段。


Serverless架构在云服务提供商当中大行其道,但是这种利用公共云资源的新兴方法也许是一股名至实归的趋势。


2014年,亚马逊网络服务公司(AWS)发布了AWSLambda,最先推出了所谓的事件驱动型serverlesscomputing资源。直到今年,这项服务的地位依然不可撼动,IBM、谷歌和微软都发布了各自版本的服务。这些巨头都试图领跑市场:在这个市场,用户日益把责任移交给云服务提供商,同时又寻求对资源分配拥有粒度更细的控制权。


这种serverless服务背后的想法是,开发人员没必要为采购、配置或管理任何底层资源而操心,只要一心部署代码。当然,在公共云提供商庞大的数据中心中某个地方的serverless架构中还是有服务器,但是这种抽象机制让用户和提供商都可以获得更高的效率,专注于各自最擅长的方面。


弗雷斯特研究公司的首席分析师戴夫·巴尔托莱蒂(DaveBartoletti)说:“这种情况下,围绕serverlesscomputing的炒作绝对名至实归。”


应用程序传统上采用整体单一的方式来设计,把所有代码包装成一大块软件。Serverless架构则让开发人员可以将应用程序分割成比较小的部分,然后以高度扩展的方式将它们部署到弹性基础设施上――甚至比使用容器还要来得容易,巴尔托莱蒂如是说。


证明这种serverlesscomputing模式具有的优点的一个常见例子是,将照片上传到网站。一个实例可能被启用,开发人员可以编写负责处理一大堆任务的一长串代码,包括启动文件夹,调整照片大小,进行备份拷贝,以及确保照片顺利加载。


另外,开发人员也可以编写一个代码片段,使用Lambda函数来观察目录,执行代码,并上传照片。该用户只要为该函数使用的时段(几毫秒)支付费用,而不是云平台原本运行实例所需要的几分钟或几小时。


市场研究公司451Research的研究主任安德鲁·赖克曼(AndrewReichman)解释,如此一来,Serverlesscomputing不太注重技术,而是注重定价和包装。它有望改变资源的使用方式,将基础设施和应用程序开发平台更紧密地联系起来,存在于基础设施即服务(IaaS)和平台即服务(PaaS)之间。


赖克曼说:“这是向按小时或按分钟租赁服务器迈出的一大步,但是实际上,连这样的粒度也不如你需要的粒度来得精细。”最终,用户想要“处理所需的计算任务,为实际使用资源的时段支付费用,而不是付费后坐等任务。”


赖克曼表示,由于需求方面具有不确定性,可能很难知道为某项任务选择哪台服务器。尽管可能不是专有数据中心的典型五年合约,但开发人员仍被迫做出决定、该使用哪台服务器为工作负载编程。


谷歌、微软和IBM紧跟亚马逊的步伐


Lambda仍是证明serverlesscomputing巨大潜力的最佳例子,那是由于亚马逊在市场的领先优势明显,有着更悠久的历史,而且在用户当中声誉更佳。谷歌已在今年2月开始测试CloudFunctions,但是一直对此秘而不宣。IBM在3月将OpenWhisk增添到PaaS解决方案Bluemix,不过该服务目前处于试验阶段。微软也不甘示弱,它在3月底添加了AzureFunctions,目前处于预览版阶段。


不过,serverless架构并不始于Lambda――这一点酷似容器早在Docker之前就已存在。实际上,一些云服务提供商在这股炒作当中开始喜欢对现有的服务改头换面,重新命名为serverless服务。在最近于旧金山召开的用户大会上,谷歌提到了谷歌云平台(GoogleCloud Platform)中的至少四款serverless产品,包括AppEngine,这是它在2008年首次推出的PaaS服务。


亚马逊并没有透露Lambda的发展速度有多快,它仍被认为是早期采用者青睐的服务,但是网飞(Netflix)、第一资本(CapitalOne)和美国职业棒球大联盟(MLB)等知名客户正在实施它。流行的使用场合包括:用于serverless数据处理的函数,通过APIGateway与简单存储服务进行协调,以便为Web应用程序运行微服务,使用它让物联网设备成为开发平台,以及为无数的AWS环境提供结缔组织。


赖克曼表示,当服务器在90%的时段处于闲置状态时,由于效率变得无关紧要,x86革命造就了懒惰的应用程序设计;而现在,serverless架构正在扭转方向,深入优化。他补充道,这多少让人联想到了大型机的早期阶段:使用穿孔卡片和调度任务来执行。


仍处于早期阶段


大卫·皮彭杰(DavidPippenger)是总部位于旧金山的游戏公司GREEInc.的高级服务器运营工程师,他表示,对许多IT专业人员来说,要搞清楚Lambda之类的工具并非易事,对那些主要评估本地环境与公共云各自性价比的人来说更是困难重重。


皮彭杰补充说,有一些确实很容易的使用场合,但是真正的潜力还是在将来。


“云就好比转动拨盘获得更多的水――我们离这个目标越来越近。”


GREE已使用Lambda,但是这家公司仍在逐渐摸索这项服务。这家游戏公司最初是想在亚马逊关系数据库服务(RDS)迁移到DynamoDB的过程中,用它作为触发因素,但是最终摈弃了该方案。皮彭杰表示,RDS在虚拟私有云中,而在公共互联网上使用Lambda的同时,确保数据传输安全需要诸多额外步骤,因而让它显得不切实际。


虽然其中一些安全访问控制机制显然得到了改进,但是那些类型的例子恰恰表明了Lambda处于早期阶段。皮彭杰说:“它还没有完全准备好迎来黄金时期。”


Lambda只支持某些类型的事件,虽然一大卖点是只要编写代码就可以,但如今它只支持Node.js、Python和Java。赖克曼表示,想在更多的生产环境下使用,有必要在延迟保证方面看到服务级别协议方面的更多条文。


在评估serverlesscomputing方法之前,公司应该调查一下开发人员,了解当前的应用程序会得到多大好处;巴尔托莱蒂表示,没必要把时间浪费在用微服务来处理可能更合适的任务上。至于新的应用程序,开发人员应该关注微服务架构,不过要小心行事,因为把进程分成可能泛滥成灾的更小单位的组件增添了复杂性。


赖克曼表示,针对遗留应用程序进行翻新并非易事,应该仅限于采用开发运维这种工作模式以及云原生架构的公司。


云头条编译|未经授权谢绝转载


相关阅读:

值得关注的五大 Serverless Computing(无需管理服务器) 框架


欢迎加入交流,群主微信:aclood




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存