下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

全面讲解无服务器架构的四大主要弊端

作者:课课家教育     来源: http://www.kokojia.com点击数:872发布时间: 2017-07-30 09:00:04

标签: LinuxWindows服务器

  今天,跟大家一起来探讨一下不容忽视的无服务器架构的四大主要弊端,有需要的小伙伴,可以参考一下。对这方面,有深入了解的大神,可以一起交流一下哦。各位小伙伴一定要认真的阅读文章哦。

     尽管名为"无服务器",但此类架构并非将代码彻底剥离于服务器之外。"无服务器计算"是指企业或个人无需购买、租赁或配置用于支持后端代码运行的物理或者虚拟服务器。

全面讲解无服务器架构的四大主要弊端_Linux_Windows_课课家教育

  无服务器解决方案通常包含web服务器、FaaS层、安全令牌服务(简称STS)、用户验证以及数据库等组成要素。

  无服务器架构近在眼前

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

  无服务器代码可与面向常规服务器形式的代码--例如微服务--并发运行。举例来说,我们可将一款Web应用中的部分代码以微服务形式编写,而另一部分则可表现为无服务器形式。此外,在编写当中完全不涉及任何服务器配置要素的应用程序亦可实现无服务器化。

  FaaS提供的平台允许开发者根据具体事件触发代码执行操作,而无需构建并维护复杂的基础设施。在这一体系当中,由第三方应用或服务对服务器端逻辑及状态进行管理。

  无服务器计算的弊端

  1.第三方API系统的问题

  供应商控制、多租户问题、供应商锁定以及安全缺陷等负面影响皆可能由第三方API所引发。在不具备系统控制能力的前提下使用API有可能导致系统宕机、强迫性API升级、功能缺失、发生意外限制以及成本变更等后果。另外,多租户问题亦常见于各类云计算框架之内。Salesforce(PaaS)即因其多租户云结构而引入了部分监管限制,开发人员亦需要在使用当中尽可能避免相关问题。具体而言,多租户解决方案往往会在安全性、稳定性以及性能层面发生问题。

  2.运维工具缺失

开发人员需要依靠供应商为其提供调试与监控类工具。事实上,分布式系统的调试工作相当困难,且通常需要对大量相关指标进行访问方可了解问题的产生根源。

  开发人员需要依靠供应商为其提供调试与监控类工具。事实上,分布式系统的调试工作相当困难,且通常需要对大量相关指标进行访问方可了解问题的产生根源。

  3.架构复杂性

开发人员需要投入大量时间以评估、实施并测试具体功能应当拆分成怎样的粒度。应用程序一次调用操作中所涉及的功能数量需要加以平衡。对大量功能进行管理无疑将提升运营成本,而忽略粒度设置则终将令微服务架构变为"迷你整体"架构。

  开发人员需要投入大量时间以评估、实施并测试具体功能应当拆分成怎样的粒度。应用程序一次调用操作中所涉及的功能数量需要加以平衡。对大量功能进行管理无疑将提升运营成本,而忽略粒度设置则终将令微服务架构变为"迷你整体"架构。

  目前,AWSLambda对用户所能并发执行的总体lambda数量作出了限制。其中的问题在于,该限制将影响您的整体AWS帐户。部分企业会利用同一AWS帐户进行生产及测试。这意味着如果某位工作人员着手进行一项新的负载测试并尝试执行1000项并发Lambda功能,则生产应用将立即遭遇拒绝服务(简称DoS)状况。

  DevOps目前的状态

  在过去几年没有太脱离业界环境的人,一定听说过 DevOps 。DevOps运动将 敏捷软件开发 融入并扩展到IT运营领域,旨在通过促进开发和运营团队之间的强力协作并采用新颖的运营实践来提供更高的业务敏捷性,尤其是在基础设施配置、改进发布管理和运营工具方面。

  事实上,DevOps正在成为IT行业的新标准,并且已经被业界广泛采纳,常见于云计算和容器技术。同时,许多组织正尽力去理解DevOps的全貌,这主要受限于他们专业知识上的缺乏和各种组织结构上的挑战。尽管面对这些挑战,DevOps正在成为一个主流运动,它正改变着IT组织发布软件的方式,这就像敏捷运动在过去十多年中所产生的影响。

  但是,无服务器架构是如何适应DevOps文化的?它将如何影响常规的DevOps实践呢?

  为什么要选择无服务器架构?

  为了了解无服务器架构是怎样影响那些使用它的组织的,让我们首先来看看用它进行构建和运行软件系统所具备的关键特性。

  功能即服务 (FaaS)提供了一个托管的运行时,用于执行任何已经上传到服务上的代码。这可能看起来就像将可运行的项目部署到计算机实例或服务器上,并在操作系统上执行它,但实际上这并不相同。FaaS在保证功能在满足当前需求规模下可用的同时,只以执行次数和运行时间收取费用。同时它会抽象出实际的运行时(如 java虚拟机 或 NodeJS )和操作系统本身的配置。在其背后,运行时进程、操作系统和计算实例还是在运行着的(不要被“无服务器”这个名字蒙骗了),但开发人员不再需要担心这些因素了。

  这正是无服务器架构的优点,整个计算堆栈,包括运行功能代码的操作系统进程,完全由云提供商管理。与传统的 基础架构即服务 (IaaS)模型相比,这种方式大大简化了运算基础架构的管理,并结合了按使用进行收费的计费模式,提供了非常灵活且经济的运算选型。

  4.实施难度过高

  对无服务器应用进行集成化测试难度极高。无服务器FaaS(即每项功能)中的各集成单元要远小于其它架构,因此我们需要将大量单元加以集成,方能正常完成测试。另外,大家可能需要在整体逻辑应用之内为每项功能部署一项对应的FaaS组件。这意味着您将无法以原子性方式对一组功能进行统一部署,而由于不存在应用程序版本管理概念,因此原子回滚亦无法实现。如此一来,我们需要关闭一切触发相应功能的事件源、部署整体功能组,而后再重新启动事件源。

     结束语:以上内容,就是无服务器架构的四大主要弊端,各位小伙伴有什么问题,随时可以提出来,和大家交流一下。如果各位小伙伴还想了解跟多关于这方面的知识内容,随时可以登录课课家教育平台进行浏览哦~

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程