这是一段机器翻译的文本,可能包含错误!
云服务和虚拟化紧密相连:两者都涉及在不拥有所有硬件的情况下使用数据资源。但两者之间存在一些重要的区别。
什么是虚拟化?
虚拟化是指在同一台物理机器上运行多个“虚拟”机器。与其为 Web 服务器、数据库和文件服务器各自拥有独立的物理服务器,不如将这三者作为虚拟机器在同一台机器上运行。
使之成为可能的软件称为 hypervisor:
| 类型 | 说明 | 示例 |
|---|---|---|
| 类型 1 (裸机) | 直接在硬件上运行,没有常规操作系统在其下方 | Proxmox, VMware ESXi |
| 类型 2 (宿主) | 在常规操作系统之上运行 | VirtualBox, VMware Workstation |
Type 1 vs. Type 2
- Type 1 是我们在生产和服务器机房中使用的。Proxmox 直接运行在服务器上。
- Type 2 是你在自己的电脑上用于测试的。VirtualBox 运行在 Windows 或 macOS 之上。
什么是虚拟机 (VM)?
VM 是在另一个操作系统内部运行的完整操作系统。它拥有自己的(虚拟)内存、CPU 和磁盘,但与其他 VM 共享物理硬件。
VM 的优点:
- 隔离 - 每个 VM 都是独立的。如果一个 VM 崩溃,其他 VM 不受影响。
- 灵活性 - 您可以在同一台机器上运行不同的操作系统(例如 Ubuntu 和 Windows Server)。
- 快照/备份 - 您可以拍摄 VM 的快照,并在出现问题时回滚。
- 资源利用率 - 具有大量 RAM 和 CPU 的物理机器可以运行许多 VM。
容器是什么?
容器比虚拟机轻量级。它们与宿主机共享操作系统内核,但运行在隔离的环境中。
| 属性 | VM | 容器 |
|---|---|---|
| 大小 | 大 (整个操作系统) | 小 (仅应用程序和依赖项) |
| 启动时间 | 分钟 | 秒 |
| 隔离 | 强 (自己的操作系统) | 好,但共享操作系统内核 |
| 用例 | 当您需要一个完整的操作系统时 | 单个应用程序和微服务 |
| 示例 | Proxmox VM, VirtualBox | Docker, Podman |
Når bruker vi hva?
- 使用 VM 的时机:当你需要一个完整的操作系统时,例如 Windows Server 或具有完全控制权的 Linux 服务器。
- 使用 container 的时机:当你只需要运行一个应用程序时,例如 Web 服务器、数据库或 Grafana。
在实践中,我们经常同时使用两者:VM 作为 Docker 容器的主机。
云服务
云服务意味着其他人拥有并运营硬件,而您通过互联网租用所需的资源。与其购买和维护物理服务器,不如付费使用云中的虚拟机。
服务模型
存在三种主要的云服务模型:
| 模型 | 全名 | 你获得的 | 你自行管理的内容 | 示例 |
|---|---|---|---|---|
| IaaS | Infrastructure as a Service | 虚拟机、网络和存储 | 操作系统、应用程序、配置 | Azure VM, AWS EC2 |
| PaaS | Platform as a Service | 一个运行你的代码的平台 | 仅应用程序 | Azure App Service, Heroku |
| SaaS | Software as a Service | 通过浏览器使用的现成应用程序 | 无技术方面 | Microsoft 365, Google Docs |
一种简单的记忆方法
- IaaS = 您租用一台空机器。您需要自行安装和配置所有内容。
- PaaS = 您租用一个现成的环境。您只需要放入您的代码。
- SaaS = 您租用一个现成的应用程序。您只需要登录并使用它。
交付模式
云服务可以通过多种方式提供:
| 模型 | 说明 | 示例 |
|---|---|---|
| 公共云 | 共享基础设施可供所有人使用 | Azure, AWS, Google Cloud |
| 私有云 | 专用的基础设施供一家企业使用 | 学校服务器机房中的 Proxmox |
| 混合云 | 公共云和私有云的组合 | 一些服务在本地,一些在 Azure |
VPS:一种常见的云解决方案
VPS(虚拟专用服务器)是最常见的 IaaS 解决方案之一。 您从云提供商处租用一台虚拟机,并对其拥有完全控制权,就像拥有自己的服务器一样。
典型用例:
- 运行 Web 服务器
- 设置 VPN 服务
- 托管应用程序(例如 Flask + 数据库)
- 在不冒硬件风险的情况下测试事物
流行的 VPS 提供商:
| 提供商 | 优点 |
|---|---|
| Linode (Akamai) | 简单、价格合理、优秀的指南 |
| DigitalOcean | 用户友好、良好的文档 |
| Hetzner | 价格实惠、欧洲(符合 GDPR) |
| Azure | 与 Microsoft 生态系统集成 |
Kostnader i skyen
云服务需要付费,如果不注意,很快就会变得昂贵。 持续运行 24/7 的虚拟机比你使用后关闭的虚拟机成本更高。 始终检查价格并设置成本警报。
本地 vs. 云
许多企业使用本地服务器和云服务的组合。以下是一些需要考虑的因素:
| 因素 | 本地 (on-premises) | 云 |
|---|---|---|
| 控制 | 完全控制硬件和数据 | 依赖于供应商 |
| 成本 | 初始投资巨大 | 每月持续成本 |
| 可扩展性 | 受物理硬件限制 | 可根据需要向上和向下扩展 |
| 维护 | 你需要自己修复所有问题 | 供应商处理硬件 |
| 隐私 | 你知道数据在哪里 | 数据可能存储在其他国家 |
任务 1 - 在您自己的机器上运行虚拟机
下载 VirtualBox (免费) 并尝试安装一个 Linux 发行版,例如 Ubuntu Desktop 或 Linux Mint。
- 您选择为虚拟机分配多少 RAM 和 CPU?
- 您是否注意到在虚拟机运行时您的电脑变慢?
- 如果您尝试为虚拟机分配比您的机器更多的 RAM,会发生什么?
这让您很好地了解虚拟机如何共享物理机器的资源。
任务 2 - 使用 Docker 启动容器
如果您已安装 Docker(或可以访问安装了 Docker 的虚拟机),请尝试运行:
docker run -d -p 8080:80 nginx # 运行一个 Nginx 容器,并将容器的 80 端口映射到主机的 8080 端口
然后访问 http://localhost:8080 在浏览器中。你现在正在运行一个在容器中的 Web 服务器!将这花费的时间与设置一个完整的带有 Nginx 的虚拟机的时间进行比较。
任务 3 - 你已经在使用哪些云服务?
思考一下你在日常生活中使用的服务:
- Microsoft 365 (Word, Teams, OneDrive) 是 SaaS
- GitHub Pages 用于托管网站是 PaaS
- 如果你在学校的 Proxmox 上创建虚拟机,实际上是 IaaS(仅限于本地)
你能将你使用的其他服务进行分类吗?
任务 4 - 你的数据在哪里?
前往 Microsoft Privacy Dashboard 并查看 Microsoft 存储的关于你的信息。 还要检查你使用的云服务的条款:
- 数据存储在世界上的哪个位置?
- 如果你删除你的帐户,会发生什么?
- 你拥有你的数据,还是供应商拥有?
这些问题对于 GDPR 和隐私保护尤其重要。
总结
- 虚拟化 允许您在同一硬件上运行多个服务,无论是作为虚拟机还是容器
- 云服务 意味着其他人拥有硬件,您租用所需的资源
- IaaS、PaaS 和 SaaS 描述了您需要承担多少责任
- 在实践中,许多人使用 混合 解决方案,兼具本地和云服务
- 本地与云之间的选择涉及控制、成本、可扩展性和隐私问题