加入收藏 | 设为首页 | 会员中心 | 我要投稿 航空爱好网 (https://www.52kongjun.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 云计算 > 正文

Serverless 在阿里云函数计算中的实践

发布时间:2022-10-28 15:30:17 所属栏目:云计算 来源:未知
导读: 近日,阿里云 aPaaS&Serverless 前端技术专家袁坤在 CSDN 云原生 meetup 长沙站分享了 Serverless 在阿里云函数计算 FC 的实践。
互联网软件架构演进
我们先简单回顾下互联网软件架构的演进

近日,阿里云 aPaaS&Serverless 前端技术专家袁坤在 CSDN 云原生 meetup 长沙站分享了 Serverless 在阿里云函数计算 FC 的实践。

互联网软件架构演进

我们先简单回顾下互联网软件架构的演进之路。

单机部署

在单机部署中,将所有的业务和数据库都部署在一台主机中。

阿里云acp云计算总结_阿里云计算公司总部_阿里云计算公司

此架构的优点是:开发、部署以及运维都非常简单。缺点是:一旦遇到流量过大或者机器故障,整个系统瘫痪,甚至丢失业务数据,造成巨大业务损失。

集群化部署

针对上述架构问题,常用的解决方案是采取水平扩容的方式进行集群化部署。引入 SLB 的流量网关路由,进行负载均衡。集群化部署本质上是单体架构,开发人员在项目开发的时候需要额外注意,比如要使用 cookie 进行鉴权,session 就不能存储在本地,需要引入 Redis 进行单独存储。集群化部署可以通过快速水平扩容解决流量突增或机器故障的问题。

阿里云计算公司_阿里云acp云计算总结_阿里云计算公司总部

微服务拆分

随着业务的发展以及团队规模的扩张,单体架构这样紧耦合的方式会带来越来越多的问题,架构的灵活性和可扩展性成为阻碍业务发展的重大挑战。微服务架构应运而生。

阿里云计算公司总部_阿里云计算公司_阿里云acp云计算总结

对比单体架构,微服务架构远比其复杂,也衍生了很多新技术,比如:API 网关、服务注册、服务发现、RPC 通信。

Serverless 架构

从单体架构到微服务架构,从单机部署到集群化部署,互联网软件架构越来越复杂,公司需要投入大量精力和成本进行底层技术的升级和维护。下图是 Serverless 架构,和单体架构不同的是将对应的组件换成 Serverless 云产品。

阿里云计算公司总部_阿里云计算公司_阿里云acp云计算总结

技术演进的本质是更好服务业务,传统开发方式使企业花费更多的精力打磨底层技术细节,而 Serverless 架构就是让开发者专注业务实现从而创造更大的业务价值。

Serverless 架构的优势很明显:

Serverless 架构探讨

先来看一下 FaaS 的执行过程。蓝色部分是用户手动管理,只需要交付代码,其他的启动、运行、运维等都是在 FaaS 平台进行。

阿里云计算公司总部_阿里云计算公司_阿里云acp云计算总结

但是此架构会产生一些问题:

Serverless Devs

针对上述问题,Serverless Devs 可以帮助开发者更好地开发管理 Serverless 应用,它具备以下几个特点:

如果说 Serverless 架构可以帮助开发者开发应用,那么 Serverles Devs 就是帮助 Serverless 开发者更好地开发 Serverless 应用!

Serverless 架构实践

Serverless Devs 官网实践

通过上面的介绍可以看出 Serverless Devs 开发者工具并没有提供业务,业务的实现由组件提供,而组件本身分散在不同的 GitHub 仓库中。

Serverless Devs 官网有下面几个诉求:

整体方案如下:

阿里云计算公司_阿里云计算公司总部_阿里云acp云计算总结

开发者在 GitHub 更新文档,触发 webhook 钩子配置的 Http Serverless 函数。这里需要注意的是:由于组件的文档数目不定以及 GitHub 网络不稳定等问题,如果所有的工作都在 Http 函数中处理,非常容易导致超时,所以将所有的处理逻辑放在异步调用中,执行完后将处理的结果投递到钉钉或者邮件等渠道。

阿里云函数计算控制台实践

阿里云函数计算 FC 控制台是用户使用函数计算产品的第一站,控制台的用户体验至关重要。在架构上面临几个问题:

整体解决方案如下:

阿里云acp云计算总结_阿里云计算公司总部_阿里云计算公司

左侧是阿里云通用的网关,负责统一鉴权和安全等逻辑,抽离出 BFF(Backend for Frontend)层,这部分的特点如下:

阿里云acp云计算总结_阿里云计算公司_阿里云计算公司总部

通过 Serverless 实现的 BFF 不仅给业务带来了极大的灵活性阿里云计算公司,对于前端工程师这个群体也有质的改变:从之前的技术视角转变到更加关注业务价值和用户体验提升。

CD 构建实践

常规的自建 CD 构建集群方案通过 Jenkins 或 Tekton 框架实现业务逻辑的编排,资源层面使用 K8s 部署,实现弹性伸缩。如果需要实现简单的云端构建 CD 方案,采用上文的架构略显复杂。

CI/CD 的业务场景有以下几个特性:

这些特性完全是为 Serverless 量身打造的。实现方案还使用了异步函数,将构建的所有流程导到异步函数中处理,整个编排逻辑通过 Serverless Devs 进行,完美实现了一个性能稳定的 CD 构建集群。

阿里云函数计算应用中心这款产品的底层的 CD 能力完全基于上述的原理进行实践,大家可以自行体验。

阿里云acp云计算总结_阿里云计算公司总部_阿里云计算公司

异步函数

实践中有非常多使用到异步函数的场景,这里简单介绍下异步函数。

阿里云计算公司总部_阿里云acp云计算总结_阿里云计算公司

总结来看,异步函数有四个特点:

1、可长时间运行,两个小时到一天不等

2、可以设置自动终止,自由调节时间,节约资源

3、可把触发结果分发给各个事件兑现中心

4、有三次机会可在失败的情况下自动重试

原文链接:

(编辑:航空爱好网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!