嘉宾 | 杨皓然 整理 | 姜君泽
出品 | CSDN云原生
2022年6月14日,在CSDN云原生系列在线峰会第9期"Serverless峰会"上,阿里云Serverless研发负责人杨皓然分享了云的下一个十年,表示Serverless将会让用户以更小成本、更少代码,实现更高效率的开发迭代。
传统Server架构,在实现调度程序计算进程的同时,如果遇到进程资源过载、黑客入侵、数据量增多或者需要扩容服务器内存时,往往需要开发者对服务器进行管理处理,耗费大量时间。
而Serverless架构,开发者无需关心服务器管理的部分。Serverless由BaaS和FaaS组成,BaaS提供后端服务(如数据库存储、对象存储、API网关等),FaaS提供函数计算服务(如计算深度学习算法、机器学习算法等)。
Serverless入门
在介绍Serverless架构如何处理应用程序之前,先了解一下:软件工程的本质与次要的复杂度问题。
在软件开发中,我们可以把开发任务分为本质和次要两部分,其中本质部分是指如何解决这个软件的业务功能,称为本质复杂度;而次要部分是指如何把这个解决业务功能实施在系统上,可以理解为算法开发与算法部署,也叫次要复杂度。
下面通过一个简单的文件处理程序应用,用本质复杂度和次要复杂度来对比传统的Serverful和Serverless区别,进一步了解Serverless的架构和特性。
【任务:并行处理n个文件】
Serverful:
本质复杂度(Essential Complexity)
-
实现文件处理程序
次要复杂度(Accidental Comlexity)
-
在实施系统解决方案之前,需要考虑一些问题:
-
需要多少台Server
-
如果文件大小不同、处理时长不同,如何让Server负载不过载