当前位置:服务器行业动态 → 正文

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

责任编辑:cres 作者:Brecht De Rooms |来源:企业网D1Net  2020-03-18 10:27:31 原创文章 企业网D1Net

将逻辑和数据自动分发到边缘将为用户带来更小的网络延迟,而无需开发人员进行配置和扩展。
 
无服务器服务无处不在。无服务器产品向新的编程方式发展的驱动力来自各种形式的产品,其中包括应用程序托管平台、无服务器数据库、内容分发网络(CDN)、安全产品等。
 
无服务器产品已经解决了低级别的配置、扩展和资源调配问题,最后一个问题是分发。在这里,边缘计算的无服务器通过在多个数据中心分布数据和计算提供了一个解决方案。边缘计算的无服务器通过使计算更接近用户来减少网络延迟。
 
无边缘服务器是近15年前从“基础设施即服务”开始的云计算架构演变的顶点。这种发展的下一阶段将是进一步推动无服务器“构建块”的分发,并使开发人员更容易使用它们。
 
分层架构
 
(1)基础设施即服务(IaaS)
 
云计算革命始于基础设施即服务(IaaS)的出现。采用基础设施即服务(IaaS),企业可以将运行在内部部署基础设施的业务转移到云平台,他们只为使用的存储容量和计算时间支付费用,而不需要安装或管理任何硬件或网络。
 
基础设施即服务(IaaS)运营成本起初似乎很高昂,但很多企业很快采用,因为可以提供更高水平的正常运行时间,而购买和维护自己的基础设施的价格通常超过了基础设施即服务(IaaS)产品。最重要的优势是,云计算消除了硬件维护和配置,从而使开发人员专注于业务价值。
 
(2)平台即服务(PaaS)
 
随后,供应商将云计算技术再向前迈进了一步,并提供了平台即服务。平台即服务(PaaS)解决方案不只是租用服务器,而是租用构建应用程序所需的一切。这不仅包括服务器,还包括操作系统、编程语言环境、数据库和数据库管理工具。
 
基础设施即服务(IaaS)提供程序使用户成为租用服务器的管理员,而平台即服务(PaaS)提供程序接管服务器管理任务,例如软件安装或安全更新,并经常尝试预期代码的环境要求。平台即服务(PaaS)的目标是为企业提供一种简单的方法来部署其应用程序。平台即服务(PaaS)比基础设施即服务(IaaS)更进一步,将开发人员从系统管理任务中解脱出来,并使他们专注于最重要的应用程序。
 
AWS Elastic Beanstalk、Google App Engine和Heroku是提供平台即服务(PaaS)的几家提供商。
 
(3)软件即服务(SaaS)
 
软件即服务(SaaS)通常是指可以通过各种订阅获得的在线托管应用程序。这些应用程序完全可以在云中运行,并且可以通过全球互联网和浏览器进行访问。本质上,在云中运行并具有基于订阅的定价模型的每个应用程序都被认为是一个SaaS应用程序。
 
SaaS应用程序有两种类型:面向最终用户的应用程序和面向开发人员的应用程序。后一种类型旨在为其他应用程序提供基础。Gmail、Dropbox、Jira、BitBucket和Slack都是专注于最终用户的SaaS应用程序的示例,而Stripe和Slaask公开的API允许企业将其软件即服务(SaaS)解决方案集成到自己的应用程序中。
 
(4)容器即服务(CaaS)
 
容器平台是基础设施即服务(IaaS)的最新形式。容器即服务(CaaS)提供商可以提供容器中的服务或应用程序,并为用户管理容器。
 
容器比虚拟机更有效地利用基本主机资源。人们可以把容器看作是“微型服务器”,它们可以快速启动,多个实例可以在一台服务器上运行。
 
容器即服务(CaaS)提供商提供了一些工具,可以在服务器上部署容器以及扩展容器实例的数量。最先进的产品完全为企业管理底层服务器,使其可以专注于代码(或容器)而不是基础。
 
容器即服务(CaaS)已迅速成为平台即服务(PaaS)和软件即服务(SaaS)的组成部分之一,从而形成了分层的体系结构。已经发生了向尽可能多地开发应用程序的转变。许多复杂的应用程序仍然是软件即服务(SaaS),平台即服务(PaaS)和容器即服务(CaaS)的组合,因为可用的平台不够灵活,无法提供应用程序所需的一切。
 
许多复杂的应用程序是软件即服务(SaaS),平台即服务(PaaS)和容器即服务(CaaS)的组合。
 
通过尽可能多地依赖软件即服务(SaaS),企业可以摆脱配置和可扩展性方面的顾虑。对于其余部分,企业通常会使用运行中的容器,这意味着他们仍然有配置和管理方面的问题。
 
(5)功能即服务(FaaS):功能即服务(FaaS)使企业无需考虑扩展、服务器或容器问题就可以上传和执行代码。从这个意义上讲,它超越了先前产品的易用性原则,但是它也具有在平台即服务(PaaS)中不太突出的局限性。
 
功能即服务(FaaS)的最大优势是扩展。扩展功能即服务(FaaS)的粒度可以比平台即服务(PaaS)或容器即服务(CaaS)的粒度低,并且不需要配置。同样,企业不用为不使用的服务支付费用。
 
•粒度:平台即服务(PaaS)应用程序通常仅按应用程序扩展,而基于容器即服务(CaaS)构建的应用程序仅按容器扩展。功能即服务(FaaS)应用程序细分为单独的功能,因此可以按功能扩展。缺点是它经常需要企业重新考虑应用程序的架构。除了管理一个应用程序或几个容器之外,还必须管理执行较小任务的许多功能,这可能会导致许多编排工作。
 
•配置:通常在何时配置(按比例放大和缩小触发)或人工设置需要运行的应用程序或容器的实例数量的地方,功能即服务(FaaS)不需要企业扩展或配置特定资源。
 
•按需付费:与为代码是否被有效执行而支付费用的容器即服务(CaaS)不同,只是在调用功能时才会产生费用。这种按需付费的定价模式正逐渐成为定义无服务器的最重要方面。
 
•限制:在典型的应用程序中,企业可以受到代码定义内存限制或执行时间限制。尽管功能即服务(FaaS)提供程序允许企业配置这些设置,但仍有一些上限可以确保提供程序可以有效地优化这些资源。可以想象,如果可以使用10GB的内存创建功能或可以运行几个小时的功能,则提供商很难估计要启动多少台服务器才能最佳地使用其资源。
 
新的边缘架构
 
无服务器架构消除了调配和扩展问题,但是分发仍然是一个具有挑战性的问题。在理想情况下,企业希望其代码尽可能接近最终用户运行,以减少延迟。直到最近,在构建应用程序的方式存在多个问题:
 
•分布逻辑:除非将功能或容器部署在不同的区域,并且将客户端路由到最接近的功能,否则其功能通常将保留在数据中心中。
 
•分发动态数据:在不分发数据的情况下分发逻辑不会获得巨大的回报,企业的用户可能更靠近后端,但后端仍然远离数据层。
 
•成本、配置、监视:很少看到应用程序分布到两个或三个以上的区域,因为这样做通常会带来额外的成本或配置,并且需要监视多个区域中的功能或容器。
 
无服务器的下一个发展是无需配置即可进一步推动分发并交付。这意味着企业的逻辑和数据分布在全球许多地区,并有效地减少了最终用户的延迟。
 
CDN和Jamstack
 
很多企业已经使用了提供自动分发的最基本的服务形式。它称为内容分发网络(CDN)。 Netlify和Zeit等公司通过尽可能多地预生成应用程序,并使用无服务器功能和SaaS API处理动态部分,已经可以实现自动分发。
 
由Netlify公司创造的“Jamstack”方法已经迅速流行起来,因为内容分发网络提供了边缘架构所能提供的第一种体验。当然,纯粹基于服务器端呈现的Jamstack也有局限性。例如,必须为新的传入内容触发生成。这使得将此方法应用于具有显著构建时间的高度动态网站非常具有挑战性。
 
基于服务器端渲染的Jamstacks面临着高度动态的网站的挑战,因为必须为新内容触发构建。
 
增量构建和诸如客户端整合作用之类的概念为该问题提供了一部分解决方案,但最终希望复杂的网站具有两全其美的优势:对于最终用户而言网络延迟非常低,以及可以立即访问的新内容。
 
分布式服务的兴起
 
分布式服务来自这样一个体系结构:前端与后端通信,后端反过来与数据库和其他服务通信。后端和数据库通常一起扩展,以保持后端和数据库之间的低延迟。分发是可能的,但往往繁琐,因此比较有限。
 
后端和数据库的分发是可能的,但是通常很麻烦,因此受到限制。
 
在未来的架构中,将通过使用其他分布式服务将Jamstack的思想提升到一个新的高度。这些服务中的每一个都是一个分布式网络,其节点不必与其他服务位于同一数据中心中。为了将等待时间减少到最小,必须重新考虑安全模型,以使前端与数据库和其他服务网络进行通信。
 
未来的应用程序架构将利用分布式服务网络、分布式数据库网络和分布式无服务器后端。
 
以下了解一下有助于实现这一点的服务。
 
分布式服务网络
 
许多软件即服务(SaaS)平台(例如Algolia和SendGrid)旨在成为其他应用程序的构建基块。他们开发特定的服务,以消除典型后端应用程序中的特定问题。其中一些正在发展成为分布式服务,例如Algolia,它自称为分布式搜索网络(DSN)。随后将有许多其他的Saas平台出现,很可能很快将谈论分布式服务网络作为SaaS应用程序的下一个发展。
 
分布式无服务器数据库
 
Azure Cosmos DB、Google Cloud Spanner和FaunaDB等数据库正在采用即付即用的无服务器模式,并提供现成的分发以及某种形式的ACID保证。一些数据库提供安全层和本机GraphQL API,这些安全层和原生的GraphQL API可以由客户端应用程序安全地使用,并且可以与无服务器后端很好地配合使用。安全层使用户界面可以直接与数据库进行交互,而不仅仅是与后端进行交互。在理想情况下,前端应用程序可以与具有低延迟和ACID保证的全局分布式数据库进行通信,就像数据库在内部部署数据中心运行一样。
 
分布式无服务器边缘计算
 
新的无服务器功能,例如Cloudflare Workers和StackPath无服务器脚本,正在将无服务器功能推向边缘计算。它们旨在使功能尽可能接近最终用户,以将等待时间减少到绝对最小。 Cloudflare Workers拥有194个站点,而StackPath有45个站点。
 
为什么现在这种新的边缘架构越来越受欢迎?当考虑从基础设施即服务(IaaS)到边缘无服务器的这种转变的演变时,将会面临这样一个问题:如何处理动态数据?尽管已经拥有Amazon S3之类的服务来托管相对静态的数据,但真实的数据库仍难以提供无服务器的体验。这是因为要建立一个高度一致的分布式系统非常困难。
 
云中的无服务器构建基块就像搭建乐高积木。
 
如今,拥有具有内置安全性的无服务器数据库,这些数据库为新型应用程序打开了大门,这些应用程序默认情况下会以全球分布式方式进行扩展。自从打开这扇大门以来,许多开发人员已经开始寻求采用微服务和API替换后端部分的方法,从而为许多SaaS提供商打开了新的市场。
 
最终结果将开发一种像乐高积木一样工作的生态系统。而开发人员将组合所需的构建块,而不再担心扩展或分发。
 
版权声明:本文为企业网D1Net编译,转载需注明出处为:企业网D1Net,如果不注明出处,企业网D1Net将保留追究其法律责任的权利。

关键字:服务器

原创文章 企业网D1Net

无服务器架构的下一步是什么? 扫一扫
分享本文到朋友圈

关于我们联系我们版权声明友情链接广告服务会员服务投稿中心招贤纳士

企业网版权所有©2010-2020 京ICP备09108050号-6

^