containers - 容器 vs 无服务器 vs 虚拟机
问题描述
我对容器、无服务器和虚拟机进行了一些研究,所有这些都有其自身的优势,如成本、部署、可靠性等,但我仍然很困惑何时使用这些,以及什么样的情况。
解决方案
虚拟机(管理程序)
这直接模拟了操作系统,主机操作系统为虚拟化提供了预定义数量的资源。
可靠性:高
成本:高
优点:
- 更加孤立(HyperVisor + OS),在虚拟机被劫持的情况下更难破坏主机。您可以拥有与手动分配资源一样多的资源。
缺点:
它们在运行时从主机消耗一定数量的资源,从而增加了成本
由于上述原因,它们的部署和编排有点棘手
容器
这些模拟操作系统,但是它们直接在主机操作系统中的进程下运行,并且构建为具有单一目的的轻量级。
可靠性:高
成本:中等
优点:
- 它们可以通过使用编排非常容易地启动、停止、冻结和整体控制,从而更优化地使用主机中的资源。
- 它们非常具有可塑性,这意味着您可以为您想要的特定类型的操作创建一个容器,并为任何给定的任务调用它。
- 使用上述方法进行疯狂的快速部署,减少不使用主机时杀死主机的痛苦。
缺点:
- 它们的隔离度较低,这意味着在入侵事件中漏洞可能更容易危及主机。
无服务器
这是一个利基概念,与其名称相反,仍然涉及服务器。然而,它的部署方式是它的优势,专注于简单但数量众多的微小请求。
可靠性:是吗?
成本:非常低到高得离谱
优点:
- 它背后的想法是执行一个与现有系统集成的微小功能。客户端向网关发送请求,网关然后触发无服务器功能,并得到响应。
- 原本会占用专用服务器来大量接收和执行的非常便宜的请求可以由无服务器处理。
- 您按用于执行这些功能的时间付费,这些功能应该执行得非常快,因此可以很好地扩展。
缺点:
- 与其他事物协同工作,因此无论如何它都不是灵丹妙药。
- 优化不佳的功能甚至考虑不周的需求都会迅速提高成本。
- 有限的技术可用性(供应商规定您可以在无服务器中调用哪些技术,其他任何技术都是“陪审团”)
推荐阅读
- html - 为什么我的标准盒子模型中包含边距?
- c# - 有没有办法查看 Windows Media Player 何时加载视频及其所有信息
- google-cloud-platform - Terraform GCP Notebook 实例调度程序
- sharepoint - 有什么方法可以添加动态下拉列表,其值来自在线 Sharepoint 中的 API
- django - 部署到 AWS 弹性 beantalk 时,CSRF 验证失败并出现 403 错误
- sql - 如何在 PostgreSQL 查询中创建条件?
- firedac - Binary(16) MSSQL 字段的批量转换
- django - 为什么 Sum 的小数点后有很多数字?
- java - Android 从文件中加载文本作为 InputStream
- laravel - laravel8 livewire 选择选项输入上的问题试图获取非对象的属性