无服务器架构的下一步发展趋势

来源 :计算机世界 | 被引量 : 0次 | 上传用户:water198206
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读

  无服务器服务正变得无处不在。作为向新的编程方式发展的推动力,无服务器产品正在以各种形式出现,如应用程序托管平台、无服务器数据库、CDN、安全产品等等。
  无服务器产品消除了底层配置、可伸缩性和预置方面的问题,最后剩下的就是分发问题。边缘无服务器服务通过在多个数据中心之间分发数据和计算的方式提供了一种解决方案。边缘无服务器通过让计算更接近用户的方式减少了延迟。
  边缘无服务器是15年前开始推出的“基础设施即服务”云架构发展的一个顶点。其下一发展阶段将是进一步推动无服务器“构件”的分发,让开发人员更容易使用它们。
  现在让我们回顾一下它们的发展历程,并展望其未来发展趋势。

分层架构基础设施即服务(IaaS)


  随着基础设施即服务的出现,云计算革命才算真正开始。借助IaaS,企业可以将其本地基础设施移至托管的云基础设施上并从那里进行操作。用户只需要根据他们使用的存储和计算时间付费,无需再安装或管理任何硬件或网络。
  刚开始,IaaS的收费貌似很贵,但是企业还是很快地采用了它们。因为在保证正常运行时间上,IaaS远远超过了本地数据中心。此外,企业自己购买和维护基础设施在费用上也远远超过了IaaS产品。最重要的一个优势是,云计算消除了硬件维护和配置工作,从而解放了开发人员,使其能够更加专注于业务价值。

平台即服务(PaaS)


  供应商将云计算服务又向前推进了一步,开始提供平台即服务。用户可以通过PaaS解决方案租用构建应用程序所需要的一切,而不仅仅是租用服务器。该方案不仅包括服务器,还包括操作系统、编程语言环境、数据库和数据库管理工具。
  与IaaS服务提供商让用户成为租用服务器的管理员不同,PaaS服务提供商则是接管了服务器管理任务,例如软件安装或安全更新,并经常会对用户代码的环境要求进行预测。PaaS的目标是为用户提供一种简单的方法来部署他们的应用程序。PaaS将开发人员从系统管理任务中解放出来,让他们能够专注于最重要的应用程序。与IaaS相比,PaaS又向前迈进了一步。
  在向公众提供PaaS产品的众多服务提供商中,AWS Elastic Beanstalk、Google App Engine和Heroku是其中的典型代表。

软件即服务(SaaS)


  软件即服务通常是指可以通过各种订阅获得的在线托管应用程序。这些应用程序完全可以在云端运行,并且可以通过互联网和浏览器进行访问。从本质上说,在云端运行且定价模式采用基于订阅的所有应用程序都可被视为SaaS应用程序。
  SaaS应用程序有两种类型:专注于终端用户的应用程序和专注于开发人员的应用程序。后一种类型旨在为其他应用程序提供一个坚实的基础。Gmail、Dropbox、Jira、BitBucket和Slack都是典型的专注于终端用户的SaaS应用程序,Stripe和Slaask还开放了API允许用戶将其SaaS解决方案集成到他们自己的应用程序中。

容器即服务(CaaS)


  容器平台是IaaS的最新形式。CaaS服务提供商可让用户在容器中托管服务或应用程序,或是让用户自己管理容器,而不再提供完整的服务器主机。
  与虚拟机相比,容器可更为高效地利用底层的主机资源。人们可以将容器视为“微型机器”。它们能够快速启动,并且可在单个服务器上运行多个实例。
  CaaS服务提供商提供了一些工具,用以在服务器上部署容器以及调整容器实例的数量。最先进的产品完全可为用户管理底层服务器,让用户能够专注于代码(或容器)而不是基础设施。
  如今,CaaS已迅速发展成为了PaaS和SaaS的一个构建模块,从而形成了一种分层的体系结构。开发应用程序工作也逐步变成了金字塔结构。由于目前可用的平台还不够灵活,无法提供应用程序所需的一切,因此许多复杂的应用程序采取的办法是综合使用SaaS、PaaS和CaaS。

  通过尽可能地依靠SaaS,用户可以摆脱配置和可扩展性方面的顾虑。对于其余部分,用户通常会考虑运行中的容器,这意味着他们仍然需要进行预置和配置。
  为了减少这些顾虑,人们开发出了第五种解决方案,即无服务器架构。无服务器架构填补了这方面的空白。

无服务器架构

函数即服务(FaaS)


  在FaaS中,用户在上载和执行代码时无需考虑扩展、服务器或容器。从这个意义上讲,它们在易用性方面超越了先前的产品,不过它们也存在一些局限性。这些局限性在PaaS中不怎么明显,但是在FaaS却被放大了。
  FaaS的最大优势是扩展。FaaS扩展的粒度比PaaS或CaaS要更出色,并且不需要配置。在收费方面,用户不使用就不付费。
  ·粒度:PaaS应用程序通常是按应用程序扩展,而基于CaaS构建的应用程序则按容器扩展。FaaS应用程序可拆分为单独的函数,因此可以按函数进行扩展。缺点是它们经常需要用户重新考虑应用程序的架构。用户必须对许多执行较小任务的函数进行管理,而不再是管理一个应用程序或几个容器,不过其中的不足是这可能会导致产生大量的编排工作。   ·配置:用户通常需要对扩展的位置,触发扩展的时机(以进行向上和向下扩展)进行配置,以及手动设置需要运行的应用程序或容器实例的数量,FaaS则不需要用户配置扩展或预置特定的资源。
  ·按需付费:在使用容器时(CaaS),无论代码是否被主动执行,用户都需要付费。而在使用FaaS时,只有函数被调用时才会产生费用。这种按需付费的定价模式正逐渐成为无服务器定义中一个最重要的方面。
  ·限制:在典型的应用程序中,用户可以为代码定义内存限制或执行时间限制。尽管FaaS服务提供商允许用户配置这些设置,但仍有一些上限限制以确保提供商能够有效地优化这些资源。我们可以设想一下,如果函数可以使用10GB的RAM或可以运行几个小时的功能,那么提供商将很难评估出要启动多少台服务器才能最为高效地使用他们的资源。

新的边缘架构


  无服务器架构消除了预置和扩展方面的问题,但是分发仍然是一个具有挑战性的问题。在理想的情况下,我们希望我们的代码尽可能靠近终端用户运行,以减少延迟。然而直到最近,我们在构建应用程序的方式上还存在多个问题:
  ·分发逻辑:除非用户将函数或容器部署在不同的区域,并且自己将客户端路由到最近的函数,否则用户的函数通常都保留在一个数据中心中。
  ·分发动态数据:只分发逻辑而不分发数据是无法获得巨大优势的,因为延迟会出现在不同的位置。例如,你的用户可能离后端更近,但是你的后端仍与数据层相距甚远。
  ·成本、配置和监控:一个应用程序被分布在两个或三个以上区域的情况很少见,因为这样做通常会带来额外的成本或配置,并且需要用户监控多个区域的函数或容器。
  无服务器的下一个发展趋势是无需配置即可进一步推动分发和交付。这意味着我们的逻辑和数据将在全球许多地区被分发,并将有效地降低终端用户的延迟。

CDN和JAMstack


  我们已经在使用自动分发的基本服务形式,被称为内容交付网络(CDN)。Netlify和Zeit等公司认为,通过尽可能多地预生成应用程序以及使用无服务器函数和SaaS API处理动态部分已经能够实现自动分发。
  这种被Netlify称为“JAMstack”的方法正在快速普及,因为内容交付网络首先带来了边缘架构可以提供的功能。当然,JAMstack也存在一些限制,如仅可基于服务器端渲染,新流入的内容必须触发构建等。这些限制使得将这种方法应用于有着大量构建时间的高度动态的网站非常具有挑战性。

  增量构建和诸如客户端激活之类的概念为该问题提供了部分解决方案,但是我们还是希望复杂网站同时能够具有两大优势:终端用户的延迟(极低)和新内容可立即被访问。

分布式服务的兴起


  在我们通常使用的架构中,前端与后端进行通信,后端又与数据库和其他服务进行通信。后端和数据库通常会一起扩展,以保持后端和数据库之间的延迟处于很低的状态。分布式是有可能做到的,不过这通常很麻烦,这也使得它们受到了限制。

  在未来的架构中,对分布式服务的使用将把JAM的理念提升到一个新的层次。这些服务中的每一个都将是一个分布式网络,其节点不一定必须与其他服务位于同一数据中心中。为了将延迟时间减少到最低,我们必须要重新考虑安全模型,以使前端能够与数据库和其他服务网络进行通信。
  下面让我们来看看要实现这一目标需要哪些服务。

分布式服务网络


  许多SaaS平台(如Algolia和SendGrid)旨在成为其他应用程序的构建基块。目前服务提供商已经开发出了特定的服务,以消除典型后端应用程序中的特定问题,其中一些正在发展成为分布式服务,例如Algolia(其自称为分布式搜索网络,DSN)。许多其他的Saas平台也正在紧跟这一发展趋势,预计我们很快就会对分布式服务网络是否作为SaaS应用程序的下一个发展趋势展开讨论。

分布式无服务器数据库


  Azure Cosmos DB、Google Cloud Spanner和FaunaDB等数据库正在采用即付即用的无服务器模式,并通过某种形式的ACID保證提供现成的分发。某些数据库还提供了安全层和原生GraphQL API,这些安全层和本机GraphQL API可以由客户端应用程序安全使用,并可以与无服务器后端很好地配合使用。这些安全层使得用户界面可以直接与数据库进行交互,而不仅仅是与后端进行交互。理想情况下,前端应用程序可以与具有低延迟和ACID保证的全球分布式数据库进行通信,使用起来就像数据库在本地运行一样。

分布式无服务器边缘计算


  Cloudflare worker和StackPath Serverless Scripting等新的无服务器函数正在将无服务器函数推向边缘,其旨在使函数尽可能接近终端用户,以将延迟降低到最低。目前,Cloudflare workers已经拥有194个服务点,StackPath也有45个以上。
  为什么现在这种新的边缘架构越来越受欢迎呢?在我们考虑由IaaS到边缘无服务器的转型演变时,一个绊脚石一直在困扰着,即如何处理动态数据?尽管我们已经有了Amazon S3之类的服务来托管相对静态的数据,但是真实的数据库仍然难以提供良好的无服务器体验。其中的主要原因是构建高度一致的分布式系统目前依然相当困难。

  如今,我们已经拥有了具有内置安全性的无服务器数据库,这些数据库为新型应用程序创造了条件。默认情况下,这些应用程序以全球分布式方式进行扩展。自从这扇门打开以来,许多开发人员已经开始寻求用微服务和API替换后端部分的方法,以为众多SaaS服务提供商打开新的市场。
  这一趋势的最终成果是生态系统可以运用像Legos一样的构建模块搭建。预计不久之后,开发人员将可以组合自己所需的构建模块,而不必担心扩展或分发问题。
  本文作者Brecht De Rooms现为Fauna公司的高级开发者布道师,其曾经在初创公司和IT咨询公司担任过全职开发人员和研究员,在IT领域有着丰富的从业经验。他的任务是阐明新兴的强大技术,让开发从员能够更容易地使用这些技术构建可吸引用户的应用程序和服务。
  原文网址
  https://www.infoworld.com/article/3526480/whats-next-for-serverless-architecture.html?nsdr=true
其他文献
新冠疫情已成为几乎每篇新闻报道的一部分内容,之前从未有过这么密集的报道。新冠疫情已深入到人们意识的每一个毛孔中,如战争一样影响了人们的生活。  几乎不可能建立预测模型以预测一切最后会怎样。没人能确切地表明新冠疫情紧急状态何时回归正常。没人知道,一旦感染率和死亡率开始放缓,经济活动是否会恢复到疫情之前的水平。也没人能确切地表明我们的工作、雇主和行业是否会在危机后幸存下来。  即使我们试着将范围缩小到
[摘要]民国时期就学潮泛化的问题,一些自由主义知识分子主张青年学生对参与政治活动应保持谨慎克制的态度;另一方面为化解知识分子的教育责任与其社会责任感之间的矛盾,他们提出教育界应该立足于自身独特的学术和文化品质之上来服务于国家民族的大目标,这种教育救国思想是对将教育直接导向政治斗争的狭隘的教育救国思想的升华。  [关键词]教育救国,教育独立,民国时期    民国时期青年学生的爱国民主运动发生之频繁,
[摘要]1937年8月1日成立的“天津市治安维持会”,是日本侵略军在华北占领区最早扶植建立的傀儡组织之一。该伪组织遵照日军意旨,临时代行天津市府职权,在协助日军维持战争初期社会治安、镇压抗日活动等方面发挥了重要作用。本文分析“天津市治安维持会”的基本特征,如人员构成上的复杂性,政治上的对日依附性,行政上的准政府性,活动内容的示范性,组织上的过渡性等,以期读者对该伪组织的反动本质有进一步地了解和认识
近年来,随着海峡两岸学术交流的日趋活跃,台湾学者的研究成果逐渐为大陆有关人士所熟知和重视。由于多年的相互阻隔,大陆和台湾形成了有很大差异的历史叙述方式,就两岸共同关心的抗日战争研究而言,两岸学者的认识就有很多不同。然而,双方的共识也在逐渐增多。本文对1990年以来台湾学者对抗日战争正面战场和敌后战场的研究成果进行了述评,并对研究趋势和特点进行了总结。希望对我们全面了解抗日战争以及台湾的学术研究动态
[关键词]教学改革,研讨式教学,课堂讨论,网络讨论  [中图分类号]G64 [文献标识码]B [文章编号]0457—6241(2009)18—0068—06    研讨式教学是以问题为导向的教学模式。相比传统的以讲授为主的教学模式而言,研讨式教学更能激发学生的学习动机与主动参与的积极性。研讨式课程最初始于德国,至20世纪已经成为发达国家成熟的教学方式。1999年中共中央国务院颁布《中共中央国务院关
[摘要]近年来,我们在“以学生为本”“实践出真知”的教育理念指导下,以科研为先导,以社会为舞台,不断拓展实践活动的领域,有计划、有目的、分层次地开展了丰富多彩的大学生社会实践,逐步开始形成了以综合性实践为特色的素质教育。经过实践的锻炼,使学生的实践能力、创新能力、就业能力都得到了一定的培育和提高,收到了良好的效果。同时,也使我们对素质教育有了更深刻的认识。  [关键词]实践,大学生,综合素质  [
历史“传闻素材”,从它的史料主要承载门类来看,在“正则”文献中所涉及者,有的被明确提示或被暗示出来,有的则在文本中被完全“异化”,从形式上再也显不出传闻的属性;在稗野轶闻类史料中,自有其最为集中和醒目的反映;在“口述历史”类资料中,一般也有比较典型的体现。从史学理念的层面说,因为历史传闻当时具有真伪虚实莫辨的模糊性特点,故需要具备强化考辨的理念;因为历史传闻的真伪虚实未必都能考辨清楚,故需要抱有适
摘要 1920年宁夏海原地震是20世纪中国震级最高的一次大地震,造成的灾害也是空前的。地震发生后,执政的北洋政府无力进行大规模的救助,便把抗震救灾的重任让渡给了民间社会。新闻媒体在这次震灾救助中发挥了前所未有的作用。甘肃旅京同乡会和华洋义赈会担当起了救灾的主力。近代中国抗震救灾的各种要件在这次震灾中已经基本具备,值得我们今天认真研究。  关键词 海原地震,民间社会,新闻媒体,华洋义赈会  中图分类
据市场研究机构Gartner对500家美国企业的调查显示,在部署了物联网的企业当中,3/4的企业已经部署了区块链或计划在2020年底之前使用区块链,这表明两者之间的联系在不断增长。  Gartner指出,人们已经认识到这两种技术之间的结合对于行业数字化转型至关重要,其采用率也“比预期快得多”。  该调查报告的作者,Gartner副总裁Avivah Litan在博客中写道:“在区块链采用者中,有86
对于数据中心和云,无论是公有云还是私有云,2019年将会怎样呢?本文介绍了我们一些有根据的推测。  又到了一年中辞旧迎新的时刻。此时,一直保持下来的传统就是要回顾过去的一年,然后展望未来。多年以来,我一般都要回顾一下,这一次我们把重点缩小到数据中心和云,因为现在真正的战斗是在云和内部部署之间找到平衡。  我所预测的很多东西都是受到研究或者新趋势的启发,所以基本还是比较契合实际的。我只是根据过去的事