无服务器架构的下一步是什么?

无服务器服务无处不在。 迈向新的编程方式的推动力,无服务器产品以各种形式和形式出现,包括应用程序托管平台,无服务器数据库,CDN,安全产品等。

无服务器产品消除了底层配置,可伸缩性和供应方面的问题,而剩下的最后就是分发问题。 这里,无边缘服务器通过在多个数据中心之间分布数据和计算来提供解决方案。 边缘无服务器通过使计算更接近用户来减少延迟。

[ 不要错过InfoWorld的2020年度技术奖获奖者:年度最佳软件开发,云计算,数据分析和机器学习产品 ]

无边缘服务器是近15年前从“基础架构即服务”开始的云架构演变的顶点。 这种发展的下一阶段将是进一步推动无服务器“构建块”的分发,并使开发人员更容易使用它们。

让我们仔细看看我们去过的地方和去往的地方。

分层架构

基础架构即服务(IaaS)

随着基础架构即服务的出现,云计算革命开始了。 借助IaaS,公司可以将其本地基础架构移至托管的“云”基础架构并从那里进行操作。 他们只为所使用的存储和计算时间付费,而无需安装或管理任何硬件或网络。

刚开始,IaaS似乎很昂贵,但公司却很快采用了它,因为保证了正常运行时间的水平是他们无法与之抗衡的,而购买和维护自己的基础架构的价格通常超过了IaaS产品。 最重要的优势是,云消除了硬件维护和配置,从而解放了开发人员,使其专注于业务价值。  

平台即服务(PaaS)

然后,供应商将云计算向前迈进了一步,并提供了平台即服务 。 PaaS解决方案可以租用构建应用程序所需的一切,而不仅仅是租用服务器。 这不仅包括服务器,还包括操作系统,编程语言环境,数据库和数据库管理工具。

IaaS提供程序使您成为租用服务器的管理员,而PaaS提供程序接管服务器管理任务,例如软件安装或安全更新,并经常尝试预期代码的环境要求。 PaaS的目标是为您提供一种简单的方法来部署您的应用程序。 PaaS比IaaS更进一步,将开发人员从系统管理任务中解放出来,并使他们专注于最重要的应用程序。

AWS Elastic Beanstalk,Google App Engine和Heroku只是向公众提供PaaS的少数提供商。

软件即服务(SaaS)

软件即服务通常是指可以通过各种订阅获得的在线托管应用程序。 这些应用程序完全在云中运行,可以通过互联网和浏览器进行访问。 本质上,在云中运行并具有基于订阅的定价模型的每个应用程序都被视为SaaS应用程序。

SaaS应用程序有两种类型:专注于最终用户的应用程序和专注于开发人员的应用程序 。 后一种类型旨在为其他应用提供基础。 Gmail,Dropbox,Jira,BitBucket和Slack都是专注于最终用户的SaaS应用程序示例,而Stripe和Slaask公开了API,可让您将其SaaS解决方案集成到您自己的应用程序中。

[ 同样在InfoWorld上:启动devops程序的3种方法 ]

容器即服务(CaaS)

容器平台是IaaS的最新形式。 CaaS提供程序无需提供功能完善的服务器主机,而是让您在容器中托管服务或应用程序,并代表您管理容器。

容器在利用基础主机资源方面比虚拟机更有效。 人们可以将容器视为“微型机器”。 它们可以快速启动,并且多个实例可以在单个服务器上运行。

CaaS提供商提供了一些工具,可以在服务器上部署容器以及上下扩展容器实例的数量。 最先进的产品完全为您管理底层服务器,使您的公司可以专注于代码(或容器)而不是基础架构。

CaaS已Swift成为PaaS和SaaS的构建块之一,从而形成了分层的体系结构。 已经朝着尽可能多地开发应用程序的方向发展。 许多复杂的应用程序仍然是SaaS,PaaS和CaaS的组合,因为可用的平台不够灵活,无法提供应用程序所需的一切。

无服务器边缘架构01 动物群

许多复杂的应用程序是SaaS,PaaS和CaaS的组合。

通过尽可能多地依赖SaaS,您可以摆脱配置和可扩展性方面的顾虑。 对于其余部分,公司通常会使用运行中的容器,这意味着它们仍然需要进行配置和配置。

[ 也在InfoWorld上:微小的云采用AWS,Microsoft Azure和Google Cloud ]

为了减少这些担忧,创建了第五种产品来填补空白。 无服务器架构诞生了。

无服务器架构

功能即服务(FaaS)

FaaS使您可以上传和执行代码,而无需考虑扩展,服务器或容器。 从这个意义上讲,它超越了以前产品的易用性原则,但是它也具有在PaaS中不太突出的局限性。

FaaS的最大优势是扩展。 缩放FaaS的粒度可以比PaaS或CaaS的粒度低,并且不需要配置。 同样,您不为不使用的物品付费。

  • 粒度: PaaS应用程序通常仅按应用程序扩展,而基于CaaS构建的应用程序仅按容器扩展。 FaaS应用程序细分为单独的功能,因此可以按功能扩展 缺点是它经常需要您重新考虑应用程序的体系结构。 除了管理一个应用程序或几个容器之外,还必须管理执行较小任务的许多功能,这可能会导致许多编排工作。
  • 配置 :哪里   您通常会配置何时扩展(触发来进行缩放)或手动设置需要运行的应用程序或容器的实例数量,FaaS不需要您配置扩展或配置特定资源。
  • 随用随付:您不必部署容器(CaaS),而要为代码是否被有效执行而付费,而是在调用函数时才产生费用。 这种按需付费的定价模式正逐渐成为定义无服务器的最重要方面。
  • 限制:在典型的应用程序中,您可以为代码定义内存限制或执行时间限制。 尽管FaaS提供程序允许您配置这些设置,但仍有一些上限可以确保提供程序可以有效地优化这些资源。 可以想象,如果可以使用10GB的RAM创建功能或可以运行几个小时的功能,则提供商很难估计要启动多少台服务器才能最佳地使用其资源。

[ 也在InfoWorld上:2020年的人工智能预测 ]

新的边缘架构

无服务器架构消除了调配和扩展问题,但是分发仍然是一个具有挑战性的问题。 理想情况下,我们希望我们的代码尽可能接近最终用户运行,以减少延迟。 直到最近,我们一直在构建应用程序的方式存在多个问题:

  • 分布逻辑 :除非您将功能或容器部署在不同的区域,并且自己将客户端路由到最接近的功能,否则您的功能通常将保留在一个数据中心中。
  • 分发动态数据:在不分发数据的情况下分发逻辑并不会获得巨大的回报,因为等待时间刚刚移到了另一个位置。 您的用户可能离后端更近,但您的后端仍与数据层相距甚远。
  • 成本,配置,监视:很少看到一个应用程序分布在两个或三个以上的区域,因为这样做通常会带来额外的成本或配置,并且需要您监视多个区域的功能或容器。

无服务器的下一个发展是无需配置即可进一步推动分发并交付它。 这意味着我们的逻辑和数据分布在全球许多地区,有效地减少了最终用户的延迟。

CDN和Jamstack

我们已经使用了提供自动分发的最基本的服务形式。 它称为内容交付网络或CDN。 Netlify和Zeit等公司的一些聪明人看到,通过尽可能多地预生成您的应用程序并使用无服务器功能和SaaS API处理动态部分,已经可以实现自动分发。

这种方法,由Netlify创造的“ Jamstack”,已经Swift普及,因为内容交付网络首先带来了边缘架构可以提供的功能。 当然,仅基于服务器端渲染的Jamstack有一些限制。 例如,必须为新的传入内容触发构建。 这使得将这种方法应用于具有大量构建时间的高度动态的网站非常具有挑战性。

无服务器边缘架构02 动物群

基于服务器端渲染的Jamstacks面临着高度动态的网站的挑战,因为必须为新内容触发构建。

增量构建和诸如客户端水合作用之类的概念为该问题提供了部分解决方案,但最终,我们希望复杂的网站具有两全其美的优势:(对于最终用户而言)(非常低)延迟以及可以立即访问的新内容。

[ 同样在InfoWorld上:如何通过左移测试改善CI / CD ]

分布式服务的兴起

我们来自一个架构,在该架构中,前端与后端进行通信,而后端又与数据库和其他服务进行通信。 后端和数据库通常会一起缩放,以使后端和数据库之间的延迟降低。 分发是可能的,但通常很麻烦,因此受到限制。

无服务器边缘架构03 动物群

可以分配后端和数据库,但通常很麻烦,因此受到限制。

在未来的体系结构中,通过使用其他分布式服务,将Jamstack的思想带入一个新的高度。 这些服务中的每一个将是一个分布式网络,其节点不一定必须与其他服务位于同一数据中心中。 为了将等待时间减少到绝对最小,必须重新考虑安全模型,以使前端与数据库和其他服务网络进行通信。

无服务器边缘架构04 动物群

未来的应用程序体系结构将利用分布式服务网络,分布式数据库网络和分布式无服务器后端。

让我们看一下为实现这一目标而做出的贡献。

分布式服务网络

许多SaaS平台(例如Algolia和SendGrid)旨在成为其他应用程序的构建基块。 他们开发特定的服务,以消除典型后端应用程序中的特定问题。 其中一些正在发展成为分布式服务,例如Algolia,它自称为分布式搜索网络(DSN)。 许多其他的Saas平台也将随之而来,并且我们很可能很快将把分布式服务网络作为SaaS应用程序的下一个发展。

分布式无服务器数据库

数据库如天青宇宙DB谷歌云扳手 FaunaDB都采用薪酬为你去无服务器模式,并提供出的现成的分布与某种形式的ACID保证。 一些数据库提供安全层和本机GraphQL API,这些安全层和本机GraphQL API可以由客户端应用程序安全地使用,并且可以与无服务器后端很好地协作。 安全层使用户界面可以直接与数据库进行交互,而不仅仅是与后端进行交互。 理想情况下,前端应用程序可以与具有低延迟和ACID保证的全局分布式数据库通信,就像数据库在本地运行一样。

分布式无服务器边缘计算

新的无服务器功能,例如Cloudflare workerStackPath Serverless Scripting ,正在将无服务器功能推向边缘。 它们旨在使功能尽可能接近最终用户,以将等待时间减少到绝对最小。 Cloudflare工作人员拥有194个服务点,而StackPath有45个以上的位置。

[ 通过InfoWorld Daily新闻通讯了解软件开发,云计算,数据分析和机器学习方面的最新发展 ]

为什么现在这种新的边缘架构越来越受欢迎? 当我们考虑从IaaS到边缘无服务器的转变的演变时,一个绊脚石一直使我们受挫:如何处理动态数据? 尽管我们已经拥有Amazon S3之类的服务来托管相对静态的数据,但实际的数据库仍难以提供无服务器的体验。 这是因为构建高度一致的分布式系统非常困难

From: https://www.infoworld.com/article/3526480/whats-next-for-serverless-architecture.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值