Pra*_*rma 6 cloud google-cloud-platform google-cloud-run
所以,我真的很喜欢无服务器的想法。我遇到了 Google Cloud Functions 和 Google Cloud Run。
所以谷歌云功能是单独的功能,这是一个广阔的视角,我假设谷歌必须安全地运行在一个巨大的nodejs服务器上。它包含所有 google 消费者的所有功能,并使用唯一的 URL 满足请求。现在,谷歌负责这台大型服务器的成本,并向用户收取其功能的每次点击费用。所以它是付费使用的。并且有道理。
但说到云跑。我不明白它是如何工作的。显然,容器不能总是运行,因为这样它们只会按月收费,而不是按点击收费,就像部署 docker 映像的普通虚拟机一样。但事实并非如此,实际上,他们按每次点击收费,这意味着当请求到达时他们会启动容器。所以我不明白它是如何旋转得这么快的?用户可以灵活地运行任何类型的环境,这意味着 docker 容器实际上可以包含任何内容。也许是一个成熟的 Linux 操作系统。它如何快速加载环境操作系统并满足请求?好吧,也许它会维护机器的状态并在不使用时将其关闭,但即便如此,也需要相当长的时间来恢复状态。
那么谷歌到底是如何做到的呢?它如何能够在短时间内启动客户的容器?
快速旋转沙箱容器(出于安全原因在自己的内核上运行)的想法已经存在了相当长的时间。例如,Intel Clear Linux Containers和Firecracker通过各种优化提供快速启动。
\n正如您可以想象的那样,实现这样的东西需要在许多层进行优化(调度、流量服务、自动缩放、图像缓存......)。
\n在不泄露 Google\xe2\x80\x99s 秘密的情况下,我们或许可以谈谈映像存储和缓存:就像虚拟机如何initramfs
预先缓存虚拟机的状态一样,而不是从硬盘读取所有文件并遵循启动顺序,我们可以对容器做类似的技巧。
Google 对 Cloud Run 使用了类似的解决方案,称为gVisor。它是一种用户空间虚拟化技术(不是实际的 VMM 或管理程序)。要在类似 Linux 的环境中运行容器,gVisor 不需要从头开始启动 Linux 内核(因为 gVisor 在 go 中重新实现了 Linux 内核!)。
\n您\xe2\x80\x99会在大多数云提供商的其他无服务器平台上发现许多优化(例如,如果您在负载到达之前预测性地调度不活动容器,如何保留容器实例)。我建议阅读《窥视无服务器平台幕后》一文,了解该领域存在哪些问题,以及云提供商试图优化哪些速度和成本。
\n 归档时间: |
|
查看次数: |
1339 次 |
最近记录: |