写点什么

Serverless 应用架构转型

作者:阿泽🧸
  • 2022-10-17
    北京
  • 本文字数:1245 字

    阅读完需:约 1 分钟

Serverless应用架构转型

Serverless 架构是一种全新的软件架构方式,虽然其有各种各样独有的特点,但是 Serverless 应用和传统的软件应用一样,软件的设计、开发到交付需要经历一个完整的软件生命周期,需要通过具体的手段保证应用的交付质量。敏捷开发拥抱变化、持续改进以及快速迭代的思想在 Serverless 应用开发的过程中将仍然适用。Serverless 应用的交付质量将受益于敏捷开发所使用的具体工具和方法,如结对编程(Pair Programing)、测试驱动开发(Test-driven Development, TDD)以及持续集成与交付(CICD)等。

1、开发调试

Serverless 应用的运行环境在远端 Serverless 云平台上,开发人员的本地开发环境中并没有 Serverless 应用运行所需要的环境。因此,默认情况下应用调试需要连接远端环境进行远程调试。但是,目前大部分的开发人员还是习惯在本地进行代码开发和调试。为了提高开发调试的效率,一些 Serverless 平台提供了本地开发调试环境,如 AWS SAM Local 和 Azure Functions Core Tools。这些工具在开发人员的本地开发环境中模拟云端的应用运行环境,为开发人员提供本地调试的体验。

2、单元测试

为了保证交付质量,测试是软件开发中必不可少的环节。无论你选择用哪一种语言进行 Serverless 应用的开发,在编写代码的同时也应该编写与之对应的单元测试(Unit Test)用例。通过单元测试使得 Serverless 应用的函数逻辑有检验的标准,便于日后应用的维护。Serverless 应用的单元测试可以是不依赖于远端云服务的本地测试用例,也可以是依赖于实际使用的云服务的测试用例。对本地测试用例而言,可以通过模拟的方式满足测试输入和依赖的要求。

3、持续集成

如果我们所开发的软件出现了问题,最好的情况是尽可能早地发现这个问题,并予以修复。这样将最大程度地降低风险和节省成本。通过持续集成,更频繁地将应用的各个模块进行完整部署并测试,更早、更快地发现和修复问题,提升最终的交付质量。持续集成不仅仅适用于传统的应用,也适用于 Serverless 应用。你可以使用你所熟悉的持续集成工具(如 Jenkins)对 Serverless 应用进行持续集成,也可以尝试一些专门针对 Serverless 应用量身定制的持续集成工具,如 LambCI 或 Microsoft VSTS。持续集成的流程中往往包含单元测试和集成测试的执行。本地调试环境使得 Serverless 应用可以在本地被执行和测试。但值得注意的是,虽然本地调试环境可以非常接近于实际的云运行环境,但是实际上两者不可避免地存在着各种差异,因此建议应用测试用例中应该包含运行在实际 Serverless 云平台上的测试场景。

4、应用部署

Serverless 应用无须部署到具体的主机之上。一般而言,用户可以通过平台所提供的部署工具进行部署。对于同时使用多种不同 Serverless 平台服务的用户,可以通过如 Serverless Framework 等工具简化部署的复杂度,实现多平台的统一部署。由于 Serverless 应用的部署无须对具体主机进行任何操作,因此 Serverless 应用的部署效率将会更高,更易于实现自动化部署和持续部署。


Serverless 应用是否需要实现持续部署,这往往不仅是一个技术问题,还涉及开发团队的文化、管理风格和业务目标优先级

发布于: 刚刚阅读数: 5
用户头像

阿泽🧸

关注

还未添加个人签名 2020-11-12 加入

还未添加个人简介

评论

发布
暂无评论
Serverless应用架构转型_Serverless_阿泽🧸_InfoQ写作社区