本文基于SWOT分析法,总结Serverless目前的优劣,以及在实践过程中可能遇到的风险与机遇。
Strengths
-
按需付费
用户根据代码调用的次数和运行时间计费,时长计量颗粒低至百毫秒级别,用户只需要为代码实际运行消耗的资源付费,代码未运行则不产生费用
-
降低开发成本
根据Serverless提供的一系列的函数计算模板,开发者只需要填写好服务需要的配置即可。这一系列的服务都可以自动、高效的完成
-
自动扩展能力
开发者无需关注应用的负载均衡,虚机的存储和计算资源,应对更多请求时,Serverless会自动的扩容
Weaknesses
-
不适合长时间运行应用
Serverless 在请求到来时才运行函数,这意味着,当应用不运行的时候就会进入 “休眠状态”,当请求再次来临时,应用需要一个启动时间
如果应用需要长期不间断的运行、处理大量的请求,那么就不适合采用 Serverless 架构
-
完全依赖于第三方服务
当用户采用 Serverless 架构的时候,就和特定的服务供应商绑定了,假如用户使用了AWS的Serverless服务,由于兼容性问题,当他再想把应用迁移到阿里云上时,可能会增加很多额外的成本
-
配置复杂
根据很多实践过Serverless架构的工程师反映,Serverless的配置相当复杂,在试验时需要进行很多繁杂的配置,更别提生产环境的复杂程度了
Opportunities
-
云厂商的大力支持
近几年随着Serverless架构的兴起,越来越多的云厂商提供了FaaS(Function as a service)的解决方案
-
丰富的实践
很多知名公司都开始尝试使用Serverless,如新浪微博、石墨文档、芒果TV等,相信Serverless会被更多的企业接受
Threats
-
数据安全性
使用Serverless架构,大量的数据需要部署在公有云上,数据的隐私和安全性存在一定风险
-
服务的稳定性
使用Serverless架构,意味着应用严重依赖于特定的云平台和第三方服务,如果要做多云融合可能会遇到更复杂的问题
-
兼容性
在有基础设施的条件下,OpenStack提供的Serverless方案Qinling无法与第三方服务商的方案兼容,这又回到了上一个问题,即应用严重依赖于特定的云平台
以上,仅供参考