Serverless 应用架构转型

本文涉及的产品
简介: 【2月更文挑战第29天】

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

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
22小时前
|
网络协议 Serverless 应用服务中间件
Serverless 应用引擎操作报错合集之在阿里云函数计算中,服务器调用FC函数时出现 "[Errno -3] Temporary failure in name resolution)" 错误如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
11 4
|
1天前
|
Web App开发 缓存 安全
Serverless 应用引擎操作报错合集之在使用阿里云函数计算的过程中遇到“Browser closed unexpectedly”的错误如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
10 2
|
1天前
|
Java 中间件 Serverless
Serverless 应用引擎操作报错合集之在阿里函数计算中,云函数怎么一直报错Function instance exited unexpectedly(code 1, message:operation not permitted) with start command 'php server.php '.如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
8 2
|
1天前
|
JavaScript Serverless API
Serverless 应用引擎操作报错合集之在Serverless 应用引擎中,FC3.0读取response body的时候出现错误提示"Caused by: java.io.IOException: closed"如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
11 3
|
1天前
|
弹性计算 Serverless 应用服务中间件
Serverless 应用引擎操作报错合集之阿里函数计算中{"ErrorCode":"AccessDenied","ErrorMessage":"Current user is in debt."}出现这个代码如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
10 1
|
1天前
|
弹性计算 缓存 Serverless
Serverless 应用引擎操作报错合集之阿里函数计算中,(FC)无法正常运行如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
7 3
|
1天前
|
Java Serverless 应用服务中间件
Serverless 应用引擎操作报错合集之阿里云函数计算中出现“找不到类”的错误如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
9 1
Serverless 应用引擎操作报错合集之阿里云函数计算中出现“找不到类”的错误如何解决
|
3天前
|
JSON API 数据库
后端架构设计与优化:打造高性能应用后端
后端架构设计与优化:打造高性能应用后端
15 2
|
10天前
|
弹性计算 安全 Serverless
图像处理场景下的Serverless架构
【4月更文挑战第15天】图像处理场景下的Serverless架构
|
12天前
|
人工智能 Serverless 数据处理
利用阿里云函数计算实现 Serverless 架构的应用
阿里云函数计算是事件驱动的Serverless服务,免服务器管理,自动扩展资源。它降低了基础设施成本,提高了开发效率,支持Web应用、数据处理、AI和定时任务等多种场景。通过实例展示了如何用Python实现图片压缩应用,通过OSS触发函数自动执行。阿里云函数计算在云计算时代助力企业实现快速迭代和高效运营。
46 0