Serverless 文章大汇总

  • 木环

2017 年 7 月 30 日

话题:语言 & 开发架构

前言

大部分的 Serverless 供应商以 FaaS 平台方式提供服务,即 Function as a Service,可直接使用的计算资源按照既定的业务应用逻辑进行运算。其实在 2006 年,Zimki 发布了一款‘pay as you go’理念的代码平台,遗憾的是当时并取得商业化的成功。2014 年 Amazon 发布 AWS Lambda,成为首个提供 serverless 服务的公有云厂商,最初只支持 Node.js,现在支持 Python,Java 和 C#。2016 年,ServerlessConf 在伦敦召开。目前,还有 Google 的 Google Cloud Functions,Azure 的 Azure Functions, IBM 的 OpenWhisk,同时国内公有云厂商阿里云、腾讯云也于今年推出 serverless 服务。

云计算厂商们如此重视的 Serverless 是怎样的?它适用于怎样的业务场景?会多大程度给开发用户们带来便利?又会带来怎样的影响和冲击?我们应该如何看待这种正在被炒作的技术?

以下是 InfoQ 发布过的若干关于 Serverless 的好文。

经典系列文章

《无服务器架构》

第一篇

剖析无服务器架构的定义 。相关的服务为后端即服务(BaaS)和暂存容器中运行的函数即服务(FaaS)。通过采用这样的方式并将大部分行为移至前端,这种架构使得应用程序内部不再需要具备传统的“始终运行”的服务器系统。尽管这增加了对供应商的依赖,并且(目前)配套服务还不成熟,但此类系统依然可以大幅降低运维成本和复杂度。

第二篇

使用 serverless 方式设计和部署的应用程序所能获得的收益。

首当其冲的是降低运维成本,成本的降低共体现在两方面:基础结构成本和人员(运维 / 开发)成本。从本质上来看,无服务器技术实际上是一种外包解决方案。该技术可以让你雇佣别人代替你管理服务器、数据库,甚至应用程序逻辑。由于使用的都是可以同时被他人共用的预定义服务,这里也存在着很大的规模经济效益,当一个供应商可以同时运行数千个类似的数据库时,每个用户支付的费用自然更低。

其次,整个无服务器解决方案无须进行任何系统管理,因此降低程序包和部署的复杂度。使用无服务器方法后,再也不需要自行确定有关容量,反而是供应商需要根绝需求实时提供足够的计算容量。

第三篇

无服务器有哪些与生俱来的缺点,比如供应商控制和锁定、多租户问题、安全问题、跨客户端平台重复实现相同的逻辑、丧失优化服务器的能力、无服务 FaaS 不支持服务器内状态等等。

无服务器技术并不是所有问题的最终答案,如果有人跟你说这种技术将彻底取代现有架构,你需要小心对待。如果想现在就涉足无服务器,尤其是 FaaS 领域,也需要更加谨慎。虽然这种技术已经产生了累累硕果(伸缩、节约开发工作量等),但依然有(调试、监控等领域的)困难在下个角落等着你。

虽然名称容易让人产生歧义,但“无服务器”这种风格的架构可以帮助我们减少在自己服务器端系统上运行的应用程序代码数量。这是通过两种技术实现的:后端即服务(BaaS),借此可将第三方远程应用程序与我们的前端应用直接进行紧密的集成;以及函数即服务(FaaS),借此可将不间断运行的组件中执行的服务器端代码转移到短暂运行的函数实例中执行。

这些收益并不会被人们快速淡忘,毕竟无服务器架构的积极意义实在是太大了,例如降低运维和开发成本,简化运维管理,降低对环境的影响等。

无服务器系统依然处在襁褓中。未来几年里该技术还有很大的进步空间,作者已经迫不及待想看看这个技术将如何融入现有的架构大家族中。

观点与趋势文章

《2017 年会是 Serverless 爆发之年吗?》

中小型公司,尤其是互联网行业的创业公司,本身并没有太多的技术人员,如果设计系统时需要考虑诸多的技术问题,例如 Web 应用服务器如何配置、数据库如何配置、消息服务中间件如何搭建等等,那对于他们来说人员成本、系统成本会很高,Serverless 架构的出现,让这种情况可能可以大幅度改善。那么 Serverless 是什么?应用方式和架构原则是怎样的?有哪些常见框架?未来有会怎样?

《无服务器架构将 DevOps 带入新层次》

无服务器计算正改变着软件系统构建和运营的方式。尽管它是 IT 行业中一个相对较新的领域,但它可能会大大改变软件行业业务价值的交付方式。它可以使用可用和可扩展的云端负载来以较低的成本运行项目,这对许多产品类型和业务用例来说是一种理想的方式。

但无服务器架构不仅仅只改变了软件交付的方式,它还会改变软件开发组织本身,相信这点对 IT 行业产生的影响将更加深远。

同时,DevOps 正在成为 IT 行业的新标准,并且已经被业界广泛采纳,常见于云计算和容器技术。那么,无服务器架构是如何适应 DevOps 文化的?它将如何影响常规的 DevOps 实践呢?

《无服务器计算的未来》

首先对无服务器多维度分析:计算、管理应用程序状态、协作服务方式、数据中心方案等。随后讨论了未来需要的部署、监控、日志、调试、测试等工具。并探讨了无服务器架构对架构、组织文化的影响。

《无服务器会成为新的 Visual Basic 吗?》

使用无服务器架构后不妨雇佣更年轻,更有干劲,不具备此类经验的开发者。很明显,“更年轻,更有干劲”以及“较少的经验”同时也意味着人力成本更低,追求这一点也没什么错。毕竟好的开发者难觅。类似的情况以前就出现过。很多公司都曾借助经验相对不多的人,使用 Visual Basic 开发了大量承担重要工作的系统,因为通过 VB,我们可以很轻松地开发 Windows 程序。但是与 VB 类似,无服务器技术大幅降低了云程序开发工作对技能的要求。虽然可以实现目的,但大部分此类 VB 程序都蕴含着“技术债”的炸弹。随着时间流逝,程序中被加入越来越多的功能,整个程序将变得非常难以理解,难以改动,难以测试,整个设计变得越来越糟糕。渐渐地,变成了一个大泥球。很想知道无服务器架构最终能否摆脱类似 VB 那样的宿命。

《我对无服务器架构的一些看法》

参加了 ServerlessConf 2017 的 Will James 撰文写下了他的观点看法。他认为无服务器不仅仅是函数即服务 (FaaS, Functions As A Service),还包含诸如数据库、身份验证、API 网关、编排,甚至具体到某一领域的其他服务,例如视频转码即服务或认知服务。总的来说,所有与这些服务有关的基础架构都不需要我们自行管理。无服务器意味着(近似于)100% 的利用率。如果和 PaaS 相比的话,PaaS 应用程序要么以特定的规模运行,要么以非常慢的速度进行伸缩,但会因为伸缩操作本身造成一定的开销(例如有未使用的实例处于闲置状态,等待接受请求)

《ServerlessConf 2017 大会的十大看点》

ServerlessConf 2017 大会于 4 月 26 日至 4 月 28 日在美国德克萨斯州奥斯汀举行,spotinst 的联合创始人兼 CEO Amiram Shachar 参加了此次大会。会后,他在博客上分享了一些有关这次大会的内容,并表达了对无服务器架构的一些看法。首先要明白一个概念,无服务器架构并非意味着没有服务器,无服务器真正的意思是说,开发人员不需要再处理与服务器相关的事情。

《诱人却非万能,理性看待 Serverless 的落地》

Serverless 通常被直译成“无服务器”,乍一看来,会让人立刻警觉到:这是不是一个“危险”的颠覆性技术?新技术的爱好者们会感到兴奋,而保守派可能会隐隐地担忧着是不是云计算的新炒作。在 Serverless 呼声渐起之时,InfoQ 采访了在云领域深耕十载的陈威,请他谈谈他对 serverless 的观点看法。

在陈威看来,Serverless 并非银弹,它只是云计算在逐渐成熟之后的一个细分技术。新的技术层出不穷,但是技术人不能狂热鼓吹也不要盲目跟从,要始终清醒地牢记“技术始终是为人服务的”。认知水平决定了一个技术人是能成为真正有效的推动者还是低效疲惫的跟风人。

云计算巨头怎样解读 serverless?

Lambda 代码确实是部署在服务器计算能力之上的,但因为是托管的服务,用户不需要管理服务器,所以从用户角度来看就可以理解为是没有服务器的。

Azure:《微软推出 Azure Functions 预览版,涉足无服务器应用领域》

2016 年 4 月,微软公开了 Azure Functions,让开发人员可以发布基于外部触发执行的代码,而不用考虑准备计算或存储资源。这提供了两种托管选项:传统的“应用服务(App Service)”方案或新推出的“动态服务(Dynamic Service)”方案

阿里云:《Serverless 发展早有“端倪”,函数计算源于场景需求》

Serverless 架构于 2014 年进入大众视线,AWS、谷歌云、微软 Azure 和 IBM Bluemix 等云厂商提供服务。业界认为,Serverless 化可大幅降低 IT 成本,将云的费用减少 10%-90%。2017 年 4 月,阿里云发布了函数计算产品。阿里云函数计算负责人不瞋认为,从云计算整体发展趋势而言,Serverless 的出现是意料之中。云计算的第一阶段是基础设施即服务,用户能够使用和调动大规模的计算资源;接下来需要攻关的是如何高效利用资源、更加有效的降低成本,更加弹性的面对业务波动,这就是函数计算的用武之地。InfoQ 对不瞋进行了专访。

Serverless 先锋实践

《Autodesk 无服务器微服务架构样例》

在一场“什么比微服务更好?无服务器微服务”的网络直播中,Alan Williams(Autodesk)、Asha Chakrabarty(Amazon)和 Alan Ho(Apigee)三位专家进行了无服务器微服务的架构讨论。Autodesk 分享了其实现的无服务器微服务架构。

语言 & 开发架构