近年来,随着信息技术的迅猛发展和应用需求的快速更迭,传统的多层企业应用系统架构面临越来越多的挑战,已经难以适应这种变化。在这一背景下,无服务器架构(Server less Architecture)逐渐流行。它强调业务逻辑由事件触发,具有短暂的生命周期。并且运行于无转台的轻量级容器中,有第三方代为管理。采用无服务器架构,业务逻辑以功能即服务(Function As a Service,FAAS)的方式形成多个相互独立的功能组件,以标准接口的形式向外提供服务。同时,不同功能组件间的逻辑组织代码将存储在通用的基础设置管理平台中。业务代码尽在调用时才激活运行,当响应结束后占用的资源便会被释放。概要叙述你参与分析和设计的无服务器加固的应用系统开发项目,以及你所承担的主要工作。与传统的企业应用系统相比较,基于无服务器架构的应用系统具有哪些特点。结合你具体参与分析和设计的软件开发项目,描述该软件的架构,说明该加固是如何采用无服务器架构模式的,并说明在采用无服务器架构后软件开发过程中遇到的实际问题和解决方案。
应对策略为,简要描述你所参与和设计软件系统开发项目,介绍项目背景及主要开发内容,并明确指出你在其中承担的主要任务和开展的主要工作。与传统企业应用系统相比较,列出基于无服务器架构的应用系统特点,并进行解释。首先理解“无服务器”并不是没有服务器,其意在帮助开发者摆脱运行后端应用程序所需的服务器,而指由第三方供应商负责后端基础结构的维护,以服务的方式为开发者提供所需功能。例如,数据库、消息,以及身份验证等,这种服务基础结构通常可以叫做“后端即服务”后“移动后端即服务”。
使用这一范式的开发者无需考虑服务器细节,只需要负责编写发生某些事件后所需执行的代码。云提供商将负责提供用于运行这些代码的服务器,并在必要时对服务器进行缩放。执行完毕后承担这些功能的容器会like停用,并且执行过程以100ms为单位进行度量,用户只需为运行代码过程中所消耗的资源付费。
使用无服务器架构的优点如下
1,降低运营成本:无服务架构本质上是一个外包解决方案,基础设施不会消失。然而与常规云服务相比,事实上只需要根据流量规模和形式支付需要的计算量。这可能会大大节省运行成本,特别是对于具有不同变化的早期和动态应用负载要求。
2,无限可扩展性:极高的可扩展性在云服务领域并不新鲜,但无服务架构将其提升到了一个全新的水平。无服务架构的缩放功能不仅可以减低计算成本,还可以减少运行管理,因为缩放是自动的。使用无服务器,无需明确添加和删除实例到服务器阵列,并让供应商为你扩展应用程序。由于云计算提供商根据每个请求执行扩展,所以甚至不需要考虑在内存不足之前可以处理多少并发请求的问题。
3,分离问题:无服务器几乎迫使你实施关注模型的分离,通过该分离将应用程序分成不同的部分,以使每个部分都解决一个单独的问题。
4,隔离进程:在无服务器环境中,每个Lambda函数都完全隔离。如果其中一个功能关闭,它并向其他功能,不会导致服务器崩溃。
使用无服务器架构的缺点如下
1,缺乏控制权:通过任何外包策略,都可以将某些系统的控制权给第三方供应商。由于系统停机、以外的机制、成本的变化、功能的丧失及强制的API升级等,这种缺乏控制可能会显现出来,此外,如果需要专门的服务器完成专门的流程,那么必须自己运行这台专门的服务器。一个无服务器架构在大多数情况下提供商业化的基础设施,将以广义的方式运行你的流程。
2,长时间运行流程的高成本:如果进程持续运行很长时间,则可能会需要运行自己的服务器。因为这不仅涉及成本,还涉及拥有的技能或者想要投入运行自己的服务器的专注,在评估这些解决方案时应考虑所有这些方面。
3,供应商锁定:将基础架构管理完全外包给无服务器提供商,无疑将自己锁定到该供应商。每个供应商都有自己的标准与编程框架,不容易改变。在几乎每一种情况下,从供应商使用的无服务器功能将由令一个供应商进行不同的实现。如果要切换供应商,几乎肯定需要更新操作工具(部署和监控等),可能还需要更改代码。