前面说的其实都是ServerLess的优点,简单总结一下,Serverless 可以不用运维、实现自动的弹性伸缩、按量付费节省成本、更高的安全 性、易于迭代和部署。

    本篇讲讲其缺点。

    1、唯云厂商命是从,对其严重依赖
    Serverless 的能力是云厂商打包提供的,所以 Serverless 产品一定是和云厂商绑定的,又因为 Serverless 理念和具体实现之间并没有统一的标准,比如 A 厂商认为 Serverless 的数据库必须使用标准 SQL 规范,而B 厂商则认为数库可以使用 SQL 规范也可以使用 JSON 文件的存储方案,这就出现了不同 的云厂商实现了不同的 FaaS 接口,我们的同一套代码,是无法在不同的 Serverless 产品上运行的,要 想从一个云平台迁移到另一个云平台,成本非常高。

    2、开发调试困难
    Serverless 应用依赖的云服务,难以在本地环境搭建,要想在本地开发调试非常复杂。同时, Serverless 架构正处于飞速发展的阶段,其开发、调试、部署工具链并不完善

    3、底层硬件的多样性
    目前 Serverless 的技术实现是 FaaS 和 BaaS。我们的应用代码在 FaaS 上运行,但 BaaS 是个黑盒,其 底层的硬件资源是不确定的,某些场景下,代码必须运行在某种类型的 CPU 或 GPU 上,目前云厂商并 没有提供针对底层硬件的可选项