云原生技术——从微服务到ServerLess无服务器架构演进的思考

2023-10-01 17:45

今天我们来讨论一下从微服务到ServerLess无服务器架构的演进过程。之前我专门写过一篇文章来讲解ServerLess,也专门申请了腾讯云ServerLess环境进行简单的验证和测试。详细信息请参阅下面的文章。

你应该了解的Serverless Serverless架构和应用场景

过去1到2年,阿里巴巴、腾讯、华为等各大公有云服务商都在大力推广Serverless架构和解决方案,我也有还看了一些ServerLess架构下垂直细分场景下的成熟应用和实践。但实际上,我们可以看到这些应用场景主要集中在互联网应用上。即使在互联网应用中,也有一些相当垂直的场景,比如一些基础服务能力集成、数据采集发送、事件响应场景、物联网垂直应用等。

对于传统的企业信息化领域,ServerLess的应用还很少。

其次,对于传统的IT应用系统来说,可以说进行了微服务和架构改造,但短期内很难实现完整的ServerLess。

今天我们再聊聊这篇文章。我还是想进一步讲解一下ServerLess无服务器架构中的一些关键内容,以便大家能够理清思路和要点。

ServerLess 无服务器架构

BaaS(后端作为 服务(backend as a service)意味着我们不再编写或管理所有服务器端组件,可以使用域通用远程组件(而不是进程内库)来提供服务。

? ny5wbmc=/}现阶段Serverless主要应用于以下场景。首先,在Web和移动服务中,可以集成API网关和Serverles服务来构建Web和移动后端,帮助开发人员构建可弹性扩展且高可用的移动或移动后端。 Web后端应用服务。

可以在物联网场景中高效处理实时流数据。海量实时信息流数据由设备产生,通过Serverles服务分类处理后写入后端处理。另外,在实时媒体信息内容处理场景中,将用户上传的音视频发送到对象存储OBS,通过上传事件触发多个功能,完成高清转码、音频等功能。分别进行转码,满足用户对实时性和并发能力的高要求。要求。

无服务器计算还适用于事件驱动的各种不同用例,包括物联网、移动应用程序、基于 Web 的应用程序和聊天机器人等。

我曾提过以下观点:

对于传统的企业信息应用来说,由于业务规则和逻辑的实现复杂,流程、数据和应用功能之间也存在大量类型的协作和集成。在这种场景下,基本上没有切换到完整的 Serverless 架构的可能。

这里我想换个思路,就是对于传统的企业信息化应用,需要做哪些准备才能迁移到ServerLess无服务器架构。

对于这个问题,我分几个方面来思考。

第一:BaaS后端即服务能力仍然采用传统方式构建

我想再次强调的是,BaaS后端公共服务能力仍然采用传统架构或当前的微服务架构提供。 。

当我们谈论Serverless架构时,很容易关注FaaS云功能层。原因是,在目前的公有云服务下,各种BaaS后端服务如存储、数据、消息等,所有能力都是由云平台提供的。但当涉及到开发企业级应用程序时,这个BaaS后端服务的含义就发生了变化。

即BaaS后端服务不仅仅是技术服务,还包括常见的业务服务能力。

如果你还用中台这个词,你可以理解为企业通用业务中台和数据中台提供的通用服务能力也是BaaS后端服务的重要组成部分。

也就是说,想要开发企业级应用,首先要做好BaaS层,否则就难以前行。

第二:完整的无状态开发模式

前面提到,Serverless架构是一种完全无状态的架构模式。例如,如果您正在使用类似的事件驱动架构进行开发,那么迁移到无服务器将会非常容易。但如果你本来就有大量长期事务和大量状态保留的场景,那么整个迁移就会相当复杂。

无状态开发类似于SOA架构思想中的服务组装和服务编排,也类似于基于消息事件机制的事件链编排模型。但核心是无状态的,需要通过其他方式来维护状态,比如token传递、通过消息机制临时存储状态等。

第三:面向服务开发而不是面向资源开发