Virtual Machines
是什么
虚拟机(VM)是一台以软件形式存在的完整计算机,运行在服务商的硬件上。你得到一个完全由自己掌控的操作系统——你登录进去,想装什么就装什么,并像在物理机上一样运行你的应用。它是各种托管选项中最亲力亲为的一种。
优势
- 完全掌控——完整的操作系统、任意软件、任意配置。
- 性能可预测;只要你租着,这台机器就是你的。
- 没有执行时间或运行时限制,不像 serverless 或边缘。
- 什么都能跑:数据库、遗留软件、自定义守护进程、长任务。
- 成熟、广为人知的模型,拥有数十年积累的工具。
权衡取舍
- 一切都要你来管理:操作系统更新、安全补丁、备份、监控。
- 无论机器繁忙还是空闲,你都要为它付费。
- 扩展是手动的——你自己调整规格或增加机器。
- 活动部件越多,出错的方式也越多。
- 相比函数或容器,预配速度最慢。
何时使用
当你需要完全掌控,或有更轻量的选项无法满足的需求时,就使用 VM:专用软件、持久化状态、自托管数据库、GPU 工作负载,或在不重写的情况下迁移一个现有应用。
与 vibe coding 的契合度
VM 给 AI agent 最宽广的画布,但也带来最大的责任,因此要依靠基础设施即代码(infrastructure-as-code),而非手动点击。让 agent 编写一个预配脚本(一个 cloud-init 文件或一个 shell 安装脚本),使整台机器可复现、可审阅,而不是通过 SSH 手工配置服务器。建议:要求 agent 把安装过程脚本化到单个引导文件中,并设置自动安全更新——这样你随时可以销毁并重建这台 VM,而不丢失你的配置。
#!/usr/bin/env bash
# bootstrap.sh — 预配一台 Ubuntu VM
set -euo pipefail
apt-get update && apt-get upgrade -y
apt-get install -y nginx
systemctl enable --now nginx
# 启用无人值守的安全更新
apt-get install -y unattended-upgrades
dpkg-reconfigure -f noninteractive unattended-upgrades
# 在一台全新的服务器上运行引导脚本
scp bootstrap.sh user@my-server:/tmp/
ssh user@my-server "sudo bash /tmp/bootstrap.sh"