关于 Serverless 应用架构对企业价值的一些思考

news2025/1/11 15:10:12

作者:寒斜

前言

对于企业方而言,最关心的核心诉求就是如何能获取更多的营收,更高的利润,通俗点说就是如何赚更多的钱;企业赚钱的方式主要是通过出售企业服务,当用户购买更多的企业服务,企业赚的钱就越多;而出售企业服务所付出的成本越低,企业获取的利润收益就会增加。进一步总结下来就是,企业最希望的事情是他们的企业服务在效率,成本,体验上可以不断地提升,因为企业服务体验做的好,购买他的客户自然便会增加;企业服务效率高的公司,在同等单位时间内提供的企业服务就会更多;而企业服务的成本降低,单个企业服务的利润营收就会变高。

在这里插入图片描述

明确企业服务价值后,我们了解到成本,效率,体验是营收利润增长的关键。

何谓 Serverless 架构

我们可以简单地理解为,构建应用中需要的计算,存储,网络,数据库,中间件服务等都实现了 Serverless 化,各个系统实现了最精细化的用云,并且该架构体系在安全,高可用方面以及处理高并发的能力,可扩展性都达到了价值的最大化。下面我举一个实际的例子:Serverless 架构实现的 Websocket 集群场景-弹幕应用 来为大家更详细地解释一下。

在这里插入图片描述

该项目综合运用了计算,存储,网络,数据库,中间件全部件,用企业的标准构建,同时具备安全,高性能,稳定性,可扩展等能力,且实现了云,边,端的现代化访问架构思路。

其中 websocket.serverless-developer.com 主域名通过全球加速 DCDN 管理,主域的请求会被转发给边缘节点中的 ER 程序,ER 程序进行缓存处理和动静态分流,动态的资源转发到阿里云函数计算网关。函数计算网关弹性启动实例,处理业务逻辑以及访问 MNS 消息中间件和 tablestore 数据库存储,静态资源则尽最大限度进行缓存,必要时从 OSS 对象存储进行回源。其中 DCDN 可以进行边缘防护,防止 DDOS 攻击,并且增加了 Https 安全证书进行网站的加密传输,边缘节点的 ER 程序是 Serverless 化的启停,可以达到毫秒级响应时间。同时函数计算会对更复杂的业务算力进行弹性,访问量大的时候多弹实例,无访问数据则释放至 0。

barrage.websocket.serverless-developer.com 则单独提供 websocket 服务,由 DCDN 自动回源到函数计算,因为本身 websocket 协议无法被边缘应用程序转发。

值得一提的是,笔者作为一名前端程序员,几乎没有高可用,高并发,安全等专业方面的知识,但是这并不妨碍我把这些能力构建到自己的应用上,Serverless is More ,这句话越品味越有感觉。

企业数字化转型中 Serverless 架构的优势

现在我们能够达到的一个基本共识就是:期望通过企业的数字化转型来优化企业服务的成本,效率,用户体验。但是我们暂且先不去讨论企业方因此需要在组织文化方面做的改变,单纯去看数字化管理工具,具体而言就是业务软件部分。构建软件的基本架构在慢慢的发生变化,从 IDC 到容器集群,今天 K8s 已经帮助企业在基础软件架构层面进行了运维体验,效率,成本的提升。下一个阶段的进化是 Serverless。 这里需要明确一点是,现在寻求的是 效率,成本,体验三者整体的最佳平衡点,并不是单一项的绝对值提升,因为这三者中存在互斥的现象,比如你提升体验的前提可能是把成本和效率增加了,而降低成本或者提升效率本身也可能会影响体验。我们期待 Serverless 架构能够在适合领域中相较于容器集群管理,去实现三者更优的平衡。

成本

从计算资源成本方面: Serverless 具有比容器化更细粒度的计算抽象。可以做到按量付费,从而极大的节省计算资源的浪费。

在这里插入图片描述

开发成本: Serverless 架构应用随着分布式的拓扑节点增多,开发运维成本会提升上去,另外市场上因为新的应用架构相关的人才缺乏,从而也会影响 Serverless 架构的应用落地。不过值得注意的是,Serverless 开发者工具正日渐完善,Serverless 应用的开发范式也会更加明确,市面上 Serverless 应用架构的实践案例将会越来越多,相信开发成本会很快被弥补上来。

在这里插入图片描述

效率

1. 数字化工具本身的迭代更新效率

Serverless 架构本质上是一种精细化用云的架构。传统服务器中的网络,计算,存储,数据库,中间件等都被单独的划分出来,每一项都只关注自己最擅长的部分。比如边缘节点提供的网络能够降低用户的访问时延和流量资费,Serverless 化的计算服务提供极致弹性,存储则提供了无限容量的可能,数据库高性能读写分离,中间件可以提供应用高并发的处理能力,总结下来 Serverless 架构中的组件体系解决了应用逻辑以外的各类复杂的 IT 问题,使得开发人员不必关心非业务开发以外的东西,这实际上能够大大提高数字化工具的迭代更新效率。

再结合 DevOps、AIOps 这些现代化的开发工程体系,Serverless 可以进一步提升开发效率。

2. 通过数字化工具提升的企业服务效率

未来对于企业发展而言,会越来越依赖企业级的数字化服务能力,包含性能,高可用,高并发,安全这些属性在内。但是通常对于业务型的研发团队而言,很难处理这些非业务并且很复杂的软件工程问题。Serverless 的应用架构本质上是一种组装范式,其中的组件是被高度抽象化之后并且由专业团队花费数年打造出来的具备企业级能力的技术方案,所以对于业务研发而言不必掌握其技术底层细节,只需要能够将其利用起来去服务好业务本身即可。这样组装出来的软件应用天然具备企业级的能力。

在这里插入图片描述

Serverless 架构的组装式研发

用户体验

这里主要指数字化服务体验,更具体一点就是企业业务中涉及软件应用的使用体验。比如软件功能本身亦或是软件的易用性。软件功能除了跟业务的抽象定义相关,也跟技术团队的实现相关。丰富的原子化能力使得 Serverless 架构能够帮助企业跨越技术鸿沟,在构建更复杂的数字化服务软件上有着天然的优势。

还是以上面 webscoket 集群为例,企业相关业务推出弹幕应用,但是因为受限于技术实现无法做到大规模高并发实现,势必会影响希望使用这项服务的用户,但是有了 Serverless 架构可组装实现高可用架构,那么即使公司没有高可用高并发领域相关的专家,也可以实现具备高性能,高并发的业务诉求。

在这里插入图片描述

另外,得益于 Serverless 在全链路地扩展,使得开发人员可以在网络层面介入性能优化,利用边缘 Serverless 计算能力,我们可以做边缘渲染和边缘的缓存,让数字化服务触达用户的时间更短,提升数字化服务的访问体验。

在这里插入图片描述

(图片来源于网络)

作者介绍:

寒斜|阿里云云原生前端负责人,ServerlessDevs联合创始人。目前从事领域为Serverless应用架构方向,关注前端工程师和Serverless的领域结合。

websocket 应用体验地址:

大屏幕:

https://websocket.serverless-developer.com/

玩家:

https://websocket.serverless-developer.com/player

管理后台:

https://websocket.serverless-developer.com/admin

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/146169.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】vim的基本操作

这里写目录标题一、vim编辑器1、基本概念2、基本操作二、vim指令集1、命令模式命令集2、底行模式命令集一、vim编辑器 1、基本概念 vi和vim都是多模式的编辑器,vim是vi的升级版本,并且兼容vi的所以指令。 vim有多种模式,本文讲解常用的3种模…

c++入门(命名空间+缺省参数+函数重载)

文章目录1. 命名空间1. c语言的两个域2. 命名空间的使用1.类型问题命名空间A和B的实现2. 变量问题3.三种访问方法1.指定命名空间访问2. 全局展开using namespace std 的含义尽量不使用using namespace std的原因3. 部分展开2. 缺省参数(备胎)1. 概念2.全缺省参数3.半缺省参数错…

2023/1/6 Vue学习笔记-3-生命周期

1 引出生命周期 透明度变化的案例&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport&qu…

HTML实现动态旋转字母背景

演示 css html, body {background: radial-gradient(#181818, #000000);margin: 0;padding: 0;border: 0;-ms-overflow-style: none;}::-webkit-scrollbar {width: 0.5em;height: 0.5em;background-color: #c7c7c7;}/*定义滚动条轨道 内阴影圆角*/::-webkit-scrollbar-track {…

数据分析之数据相关性分析

相关性分析 作者&#xff1a;学者科技 时间&#xff1a;2022/12/25 应用场景 发现数据之间的关联性 比如 啤酒 和 尿布 删减统计指标 比如 城市里的温度传感器&#xff0c;相关性强的可以去掉以节约成本 挑选回归建模的变量 选择与因变量相关性高的自变量自变量间如果有高度…

数字漫画行业繁花似锦,国漫扎根本土文化“向外生长”?

2022年&#xff0c;一半是寒冰&#xff0c;一半是烈火。这一年&#xff0c;我们遇到了消费互联网的降温&#xff0c;包括互联网大厂降本增效潮到来&#xff0c;电商大促节不再公布销售额。同样&#xff0c;我们也见证了经济迸发的新活力&#xff0c;比如元宇宙、虚拟人掀起的热…

配置Domino解决CORS跨域问题

大家好&#xff0c;才是真的好。 前面我们讲过几篇Web应用开发的简单示例&#xff0c;主要功能是同一个站点的同一个应用里里面查看和搜索文档。如果对数据进行操作&#xff0c;可能多少会遇到网页跨域访问问题。 跨域&#xff0c;简单来说&#xff0c;就是浏览器对javascrip…

【知识图谱导论-浙大】第二章:知识图谱的表示

前文&#xff1a; 【知识图谱导论-浙大】第一章&#xff1a;知识图谱概论 本节内容的视频讲解如下&#xff1a; 【知识图谱理论】&#xff08;浙大2022知识图谱课程&#xff09;第二讲-知识图谱的表示什么是知识表示 简而言之&#xff0c;知识表示&#xff08;Knowledge Rep…

【HTML】纯CSS居然能做出这种效果,一款宝藏网页分享(超详细讲解 | 附源码)

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后…

【ASP.NET】家乡网站设计作业「历史」「人文」「自然」「美食」「高中」

文章目录作业描述结果展示代码MasterPage.master(母版页)首页历史页人文页美食页景观页高中页完整资源链接上学期其中ASP.NET网站设计老师布置的作业&#xff0c;在此记录一下&#xff1b;作业描述 为自己的家乡设计一个网站&#xff1a; 要求&#xff1a; 1.网站主要是展示和…

TYPE-C和USB-C接口有什么区别?

USB-C接口全称为USB Type-C&#xff0c;属于USB 3.0下一代接口&#xff0c;其亮点在于更加纤薄的设计、更快的传输速度&#xff08;最高可达10Gbps&#xff09;、更强的电力传输&#xff08;最高100W&#xff09;&#xff0c;此外USB-C接口还支持双面插入&#xff0c;正反面随便…

【NCC】之三:FFT(DFT)加速协方差的计算

FFT加速计算两个图的协方差文章目录<center> FFT加速计算两个图的协方差1. 傅里叶变换和卷积1.1 卷积定理1.2 空域卷积和频域乘积的复杂度2. opencv中的DFT3. FFT用于NCC4. 测试结果部分代码1. 傅里叶变换和卷积 1.1 卷积定理 图片来源 在空域上的卷积就是上面的动图所展…

再学C语言27:输入和输出——缓冲区

I/O函数&#xff1a;输入/输出函数 I/O函数将信息传输至程序并从程序中传出信息&#xff0c;如printf()、scanf()、getchar()、putchar()等函数 getchar()和putchar()每次输入/输出一个字符 示例代码&#xff1a; #include <stdio.h> int main(void) {char c;// 输入回…

Vivado综合设置之-resource_sharing

-​resource_sharing用于对算数运算&#xff08;加法、减法和乘法&#xff09;实现资源共享&#xff0c;以节约LUT资源&#xff0c;有3个值&#xff1a;auto、off和on&#xff0c;默认是auto。 默认情况下&#xff0c;将resource_sharing设置为auto即可。 本文验证-resource_…

[Leetcode] 将二叉搜索树变平衡

将二叉搜索树变平衡&#xff1a;https://leetcode.cn/problems/balance-a-binary-search-tree/给你一棵二叉搜索树&#xff0c;请你返回一棵 平衡后的二叉搜索树&#xff0c;新生成的树应该与原来的树有着相同的节点值。如果有多种构造方法&#xff0c;请你返回任意一种。如果一…

Codeforces Round #842 (Div. 2)-C. Elemental Decompress

题目&#xff1a; 题目大意&#xff1a; 给定一个数列t&#xff0c;你构造两个数列a和b&#xff0c;使得max(a[i],b[i])t[i] 核心思想&#xff1a; 1、先根据给出的数组进行放置&#xff0c;优先放到a数组中&#xff0c;如果这个数已经在a数组中出现了&#xff0c;再去放到b数…

sentinel的使用

一、sentinel控制台的使用1、sentinel控制台jar包地址&#xff1a;Releases alibaba/Sentinel GitHub账号密码都为sentinel控制台访问地址&#xff1a;http://localhost:80802、sentinel的maven坐标<dependency><groupId>com.alibaba.cloud</groupId><a…

Android基础入门教程——2.2 LinearLayout(线性布局)

总结图片2. weight权重白色占总数量的2份&#xff0c;绿色占总数的1份。<?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.co…

树莓派最新版系统烧写和网络配置

树莓派笔记1.树莓派烧写篇2.树莓派WIFI配置篇3.树莓派ping外网4.树莓派git篇5.参考1.树莓派烧写篇 目前烧写最新版本32位系统(2022-09-22发布的)&#xff0c;默认移除了pi用户&#xff0c;没有用户就无法SSH登录(无屏幕)&#xff0c;建议使用raspberry pi imager烧写工具&…

通过USB转TTL串口下载stm32程序

文章目录前言一、硬件及其接线二、使用步骤1.主芯片STM32F103C8T6开发板2.转串口模块接线3.CH340驱动及安装方法4.CH340驱动及安装方法4.下载测试5.0.91寸OLED 接口演示例程前言 前期我们下载程序都是使用STlink进行下载的&#xff0c;现在给大家提供一种新的程序下载方法&…