Redian新闻
>
无服务器架构:云计算的演变

无服务器架构:云计算的演变

公众号新闻

 新钛云服已累计为您分享757篇技术干货




















随着无服务器架构在cloudscape上的发展,下面是基于MongoDB谈谈对无服务器架构的看法,以及它们如何适应变化的时代。



















介绍



自从计算机问世以来,构建软件一直是一个复杂的过程。在过去的十年中,出现了新的基础设施方法(IaaSPaaS)、软件体系结构(SOA和微服务)和方法(敏捷、持续交付和DevOps),以减轻应用程序开发的复杂性。虽然微服务在过去几年中一直是热门趋势,但无服务器架构通过提供一种新的方法来构建可伸缩且具有成本效益的应用程序而获得了发展势头。无服务器计算通过自动提供服务器和存储、维护基础设施、升级软件和只对消耗的资源收费,将开发人员从构建应用程序的传统成本中解放出来。


什么是无服务器计算?


 
无服务器计算是云计算中的下层抽象状态。这并不意味着没有服务器,而是底层的基础设施(物理和虚拟主机、虚拟机、容器),以及操作系统,都是从开发人员那里想象出来的。应用程序是在事件触发的无状态计算容器中运行的(例如,用户上传的照片触发了对他/她的追随者的通知)。开发人员创建应用,并依赖基础设施分配适当的资源来执行应用。如果应用上的负载增长,基础设施将创建应用的副本,并进行扩展以满足需求。
无服务器计算支持多种语言,因此开发人员可以选择他们最喜欢的工具。用户只对运行时和应用消耗的资源(例如RAM)收费因此,不再存在供应不足或过剩的概念。
例如,如果一个应用的运行时间为500ms,并且消耗了15mbRAM,那么用户只需要为500ms的运行时间和使用15mb RAM的成本付费。
无服务器体系结构是微服务的自然扩展。与微服务类似,无服务器体系结构应用程序被分解为特定的核心组件。微服务可以将类似的功能分组到一个服务中,而无服务器应用程序将功能划分为更细粒度的组件。自定义代码是作为运行在无状态计算服务中的独立、自治、细粒度应用开发和执行的。
为了说明这一点,让我们看一个简单的例子,说明微服务和无服务器体系结构的不同之处。
在图1中,客户机与“User”微服务交互。容器预先配置了容器中“User”服务的所有功能。该服务由不同的应用(update_userget_usercreate_userdelete_user)组成,并根据整个服务的总体负载进行伸缩。服务将在空闲时消耗硬件资源,并且用户仍将为未充分利用的资源付费。



图 1 


对于无服务器架构,用户服务将被分成更细粒度的功能。在图 中,每个 API 接口对应一个特定的应用和文件。当客户端发起创建用户请求时,用户服务的整个代码库不必运行;相反,只有 create_user.js 会执行。无需预先配置容器,因为独立功能仅在需要时消耗资源,并且用户只需为其功能的实际运行时间付费。这种粒度还有助于并行开发工作,因为可以独立测试和部署功能。



图 2 


无服务器计算的好处



成本随使用而增加:
无服务器计算的最大好处之一是您只需为应用的运行时间付费。没有空闲资源的概念,因为如果不执行该功能,则不会向您收费。这对于每小时仅使用几次的应用程序特别有用,这意味着任何专用硬件、VM 或容器在大部分时间都处于闲置状态,并且用户需要为未充分利用的资源付费。借助无服务器计算,企业可以构建整个基础架构,并且在客户开始使用该应用程序之前无需为任何计算资源付费。
弹性可扩展性:
无服务器架构的弹性可扩展性也很简单。如果应用需要扩展,基础设施将制作应用的副本来处理负载。这方面的一个例子可能是响应天气请求的聊天机器人。在无服务器架构中,聊天机器人功能将通过检索用户的位置并响应温度来处理响应。对于少数请求,这不是问题,但是如果聊天机器人服务每秒充斥着数千个请求,会发生什么。对于这种情况,聊天机器人功能将通过实例化该功能的数千个副本来自动扩展。一旦请求平息,环境将终止空闲实例并缩减,从而允许成本与用户需求成比例地扩展。
快速开发和迭代:
无服务器计算非常适合需要快速开发、原型和迭代的公司。开发速度更快,因为对 IT 运营没有任何依赖。应用是单线程的,这使得调试和部署应用更简单。构建过程也被分解成更小、更易于管理的块。这增加了可以通过持续交付管道推送的更改数量,从而实现快速部署和更多迭代反馈。迭代速度快,因为架构有利于快速进行大量代码更改,从而产生更多客户反馈和更好的产品市场契合度。
更少的系统管理:
无服务器并不意味着您完全消除了基础设施的操作元素,但它确实意味着更少的系统管理。无需管理、配置和扩展服务器,也无需修补和升级。服务器自动部署在多个可用区,提供高可用。支持也得到了简化;如果在半夜出现问题,则云提供商有责任解决问题。
开发人员生产力:
通过使用无服务器架构,开发人员可以更专注于编写代码,而不必担心管理应用程序的操作任务。这使他们能够开发创新功能并专注于对业务最重要的核心业务逻辑。


MongoDB Atlas 和无服务器计算



借助MongoDB Atlas,用户可以从无服务器环境中利用 MongoDB 的丰富功能——富有表现力的查询语言、灵活的架构、永远在线的可用性、分布式横向扩展。
MongoDB Atlas 是一种数据库即服务,提供数据库的所有功能,而无需设置操作任务的繁重工作。开发人员不再需要担心供应、配置、修补、升级、备份和故障恢复。Atlas 提供了弹性的可扩展性,无论是通过在一系列实例大小上扩展还是通过自动分片进行扩展,所有应用程序都不会停机。
      
设置 Atlas 很简单。

图 3 

选择适合您的应用程序需求的实例大小,然后单击“CONFIRM & DEPLOY”。根据实例大小,可以在几秒钟内配置 MongoDB 集群。

图 4 

MongoDB Atlas 为那些有兴趣构建无服务器架构的人提供了许多好处:
供应商独立性:
云供应商通常只提供特定于该供应商的数据库,这可能不符合开发人员的需求。MongoDB Atlas 提供独立于底层云提供商的能力,并使开发人员能够根据自己的需求选择合适的工具。开发人员可以利用MongoDB查询语言的丰富功能和灵活的数据模型,无需担心管理数据库的操作任务。如果您决定转移到另一个云提供商,您将不必使用不同的数据库技术重新填充您的数据。MongoDB Atlas 目前仅在 AWS 上可用,即将支持 Microsoft Azure 和 Google Cloud Platform (GCP)
MEAN 堆栈:
无服务器架构加速了将业务逻辑从后端转移到前端的趋势。这使得前端框架的选择变得更加重要。AngularJS非常适合此要求,并且是无服务器架构的流行前端。AngularJS 是动态 Web 应用程序的结构化 Javascript 框架,它提供交互功能和 AJAX(用于创建快速和动态网页的技术)丰富的组件。结合NodeJSExpressJS MongoDB,这些工具形成了 MEAN 堆栈(MongoDBExpressJSAngularJSNodeJS)。在整个无服务器堆栈中使用 JavaScript 和 JSON 有巨大的优势。从事前端工作的人可以轻松理解应用(后端)代码和数据库查询。此外,在整个堆栈中使用相同的语法和对象可以让您的团队从理解多种语言的最佳实践中解放出来,并降低理解代码库的门槛,从而提高软件性能和开发人员的生产力。
快速部署:
使用 MongoDB Atlas,可以在几分钟甚至几秒钟内调配和部署 MongoDB 集群。开发人员不再需要担心配置或管理服务器。将 MongoDB Atlas 集成到无服务器平台需要您将连接字符串传递到无服务器应用程序中。

图 5 

MongoDB Atlas 具有广泛的功能来防御、检测和控制对 MongoDB 的访问,提供任何现代数据库中最完整的安全控制:
· 用户权限管理:使用行业标准机制在数据库级别进行身份验证和授权,控制对敏感数据的访问
· 加密:保护网络上的动态数据和持久存储中的静态数据
为确保开箱即用的安全系统,自动启用身份验证和 IP 地址白名单。
IP 地址白名单是 MongoDB Atlas 的一项关键安全功能,它添加了一个额外的层来防止第 方访问您的数据。除非客户端的 IP 地址已添加到MongoDB Atlas 组的IP 白名单,否则客户端将无法访问数据库。
 对于 AWSMongoDB Atlas 的 VPC Peering 正在开发中,即将推出,提供简单、强大的解决方案。它将允许将包含您的应用程序服务器的 VPC 中的整个 AWS 安全组列入白名单。
可扩展性:
您应该期望您的无服务器功能能够向外扩展,因此需要对下游设置进行架构以跟上您的功能并进行扩展。关系数据库往往会因这种模型而崩溃。MongoDB Atlas 的设计以可扩展性为核心原则。当您的集群达到某个阈值时,MongoDB Atlas 会提醒您,您可以一键配置新服务器。
灵活的架构:
由于无服务器架构是事件驱动的,因此许多用例都围绕着物联网 (IoT) 和移动设备展开。MongoDB 非常适合这些用例以及更多用例,因为其灵活的文档模型使您能够存储和处理任何类型的数据:事件、地理空间、时间序列、文本、二进制和其他任何类型。向文档结构添加新字段很简单,可以轻松处理由事件驱动的应用程序生成的更改数据。开发人员花更少的时间修改模式,更多的时间用于创新。

原文连接:

https://dzone.com/articles/serverless-architectures-the-evolution-of-cloud-c

    推荐阅读   


    推荐视频    

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
Cancer Cell | 王凌华团队在单细胞层面描绘胃癌进展过程中免疫和间质细胞状态以及生态型的演变安筱鹏:AI是大国博弈的下一个战场,错失云计算的日本、欧洲还有机会?华府消息|拜登政府拟限制中国公司获取美国云计算服务云计算+人工智能,会给企业服务带来什么?|甲子引力X对话无服务器专家 Luca Mezzalira:你真的为Serverless X AI 做好准备了吗?深入理解Serverless计算的并发度量子计算的重大突破?IBM称攻克了“不可靠”难题把被颠倒的事实逻辑颠倒回来,不存在经络实体的大量明证腾讯5年研发投入超2200亿元!云计算已成核心收入来源之一,“AI将成业务发展倍增器”大算力需求下存内计算的应用和发展趋势 | 知存科技业务拓展副总裁詹慕航演讲预告工信部:欧拉服务器操作系统累计装机量超430万套,为130个国家和地区用户提供服务面向E级计算的4款高性能处理器概述RISC-V切入云计算的元年,进展如何了?沉淀AI能力,共赴空间计算的星辰大海——专访利亚德集团CMO、虚拟动点CEO刘耀东IBM量子计算最新进展:量子计算的chatGPT时刻即将来临?芯片封锁后:美国拟限制中国企业使用美国云计算服务硬核观察 #1053 美国计划限制中国使用美国先进的云计算服务“哈舅” 以及青岛的朋友们Transformer后继有模!MSRA提出全新大模型基础架构:推理速度8倍提升,内存占用减少70%192核心的Arm服务器芯片发布,Ampere自研架构首曝光自定义跟踪架构:Slack 高效解决通知问题谈谈后端架构的演进牛奶车端服务器架构「升级」优化 Linux 服务器的 9 个小技巧,让 Linux 服务器效率起来从并购到分拆的演变,全球器械巨头这样布局为哪般?IBM量子计算最新进展:量子计算的chatGPT时刻即将来临? | 金贻荣《花信风之立夏》服务器推送事件:一种从服务器流式推送事件的简易方法 | Linux 中国对话无服务器专家 Luca Mezzalira:你真的为 Serverless X AI 做好准备了吗?基于 SpringBoot 实现多租户架构:支持应用多租户部署和管理IBM发现错误缓解技术可能提升量子计算的实用性 | 量子科话处理器架构,如何发展?收割人类 III 之第十七章 黑洞记忆(2)菜市场的演变、落幕与再生
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。