FaaS函数即服务的原理,它为什么不适合用作复杂系统?

FaaS 英文全称Function as a Service,中文叫函数即服务。这里的“函数”,就是一段单独功能的代码;比如你写了个统计字数的小插件

把它放到云平台后,别人不用下载部署,只需要远程输入内容,代码就会自动在云端运行并把统计结果发给对方,你只需要写功能,服务器和运维都由平台托管

代码程序要怎么在云端运行

函数即服务的意思是什么?

远程使用特定功能

函数:就是FaaS的核心单元,指一段只负责完成某一具体功能的代码,比如统计字数、处理表单提交、一键电话拨打等这类单一功能的程序,都可以写作为一个函数

函数触发:就是指可以让代码开始运行的条件,可以是用户调用的接口、设定的时间段、上传文件等事件,只要满足条件函数就可以自动执行,不用的时候就处于休眠状态,达到按需使用的目的

弹性扩容:就是云平台自动帮你调配资源的能力,比如访问量变大的时候增加运行资源,访问量减小的时候自动减少,不用人工配置,既能保证稳定不卡顿,又不会造成资源浪费

 

运维小课堂

无服务器:它是一种云服务模式,开发者不需要自己部署、配置、维护,也不用担心系统环境和各种问题,只需要专注编写代码功能和函数就行,其它的由平台负责

按量计算:是FaaS计算成本的方式,只在函数实际被调用、真正运行的时候才开始计算,不使用就不会产生费用。相比长期租用服务器,成本是更低的,使用也更灵活

 

关于函数即服务的一些误区

FaaS和普通后端代码没区别,只是换了个运行环境吗?不是的,二者的差别主要在于资源调度,普通后端代码需要长期占用服务器资源,而且要手动维护环境

而FaaS函数仅在触发时启动,用完就立刻释放资源,无需手动配置任何环境,主打轻量化

 

FaaS函数越多、运行效率越高、成本越低吗?不是的,函数数量过多会增加调用链路复杂度,导致运行延迟升高、故障排查也会变得困难

而且函数频繁调用的累积成本反而可能超过了普通服务器,合理合并同单元功能才能更高效,且省成本

 

FaaS适合做完整网站、复杂核心系统吗?不适合,它主要是轻量化运行,更适合做辅助功能,比如文件压缩、字数统计等

复杂的系统逻辑比较繁琐,且需要持续运行,用FaaS只会增加开发难度和维护成本

 

主体技术深解

需求和原理

传统开发既要写代码,还要租或自己部署服务器、做运维、处理各种技术事务,对于个人和小开发者而言成本高、流程又繁琐,技术门槛也高

所以FaaS就是为了解决只想把功能做出来,但不想管底层运维的群体,确实精简了开发、降低了成本

 

技术构造

载体:功能函数,也就是只做一件事的代码程序,比如应用里的某个小功能

触发系统:指事件、接口调用、定时任务等开关,比如我定时每天早上九点运行它,或者只有我输入了某个命令才会开启

运行平台:指自动分配资源、自动根据使用情况扩容、自动运维的云平台,然后根据你的使用时长和次数计算成本

© 版权声明
THE END
喜欢就支持一下吧
点赞1 分享