Serverless 的历史

    2006 年 AWS 推出 EC2(Elastic Compute Cloud),作为第一代 IaaS(Infrastructure as a Service),用户可以通过 AWS 快速的申请到计算资源,并在上面部署自己的互联网服务。IaaS 从本质上讲是服务器租赁并提供基础设施外包服务。就比如我们用的水和电一样,我们不会自己去引入自来水和发电,而是直接从自来水公司和电网公司购入,并根据实际使用付费。

    EC2 真正对 IT 的改变是硬件的虚拟化(更细粒度的虚拟化),而 EC2 给用户带来了以下五个好处:

    • 降低劳动力成本:减少了企业本身雇佣IT人员的成本
    • 降低风险:不用再像自己运维物理机那样,担心各种意外风险,EC2 有主机损坏,再申请一个就好了。
    • 降低基础设施成本:可以按小时、周、月或者年为周期租用 EC2。
    • 扩展性:不必过早的预期基础设施采购,因为通过云厂商可以很快的获取。

    以上说了是 IaaS 或者说基础设施外包的好处,当然其中也有弊端,我们将在后面讨论。

    PaaS(Platform as a Service)是构建在 IaaS 之上的一种平台服务,提供操作系统安装、监控和服务发现等功能,用户只需要部署自己的应用即可,最早的一代是 Heroku。Heroko 是商业的 PaaS,还有一个开源的 PaaS——,用户可以基于它来构建私有 PaaS,如果同时使用公有云和私有云,如果能在两者之间构建一个统一的 PaaS,那就是“混合云”了。

    在 PaaS 上最广泛使用的技术就要数 Docker 了,因为使用容器可以很清晰的描述应用程序,并保证环境一致性。管理云上的容器,可以称为是 CaaS(Container as a Service),如 。也可以基于 Kubernetes、 这类开源软件构件自己的 CaaS,不论是直接在 IaaS 构建还是基于 PaaS。

    PaaS 是对软件的一个更高的抽象层次,已经接触到应用程序的运行环境本身,可以由开发者自定义,而不必接触更底层的操作系统。

    上图来自 CNCF Serverless Whitepaper v1.0

    Serverless 的商业化产品有:

    • AWS lambda
    • Google Cloud Function
    • Microsoft Azure Cloud Functions
    • Huawei Function Stage

    历史上第一个 Serverless 平台可以追溯到 2006 年,名为 Zimki(该公司已倒闭),这个平台提供服务端 JavaScript 应用,虽然他们没有使用Serverless 这个名词,但是他们是第一个“按照实际调用付费”的平台。第一个使用 Serverless 名词的是 。