真正的标准:您的软件,不是您的偏好
先把这台服务器要承载的软件清单写下来。不是您技术上的心愿清单,而是真实的那一份,会写进需求书里的那一份。十有八九,这份清单自己就能定下来。一套法国的业务软件——Sage、EBP、Cegid、Ciel——只发行 Windows 版本。一个老的 .NET Framework 应用只能在 Windows 上跑。需要 Active Directory 或完整版 SQL Server,也都指向同一个方向。
反过来,如果您的清单上是 Web 服务器、API、Node 或 Python 运行时、Docker 容器、MySQL 或 PostgreSQL 数据库,那 Linux 就是它们的家。这些组件本就诞生于此,文档更丰富,升级更简单,账单也更低。用 Windows 去托管一个 WordPress,是一件昂贵而说不通的事;用 Linux 去跑 Sage,则是技术上的死胡同。只有当清单本身定不下来时,个人偏好才有说话的余地。
- 非 Windows 不可的情形:法国的业务软件、.NET Framework、IIS、COM、完整版 SQL Server、Active Directory,以及任何图形化的远程桌面用途。
- Linux 是自然之选的情形:网站、API、容器、后台工作进程、开源数据库、机器人、开发和测试环境。
- 最常见的两可情形:一个跨平台的 .NET 6、8 或 9 应用,在 Linux 上跑得非常好——见我们的 .NET 托管页面。
- 陷阱:按习惯做决定。「我们一直用 Windows」放在一批 Web 服务器上代价不菲;而「统统上 Linux」,在某个业务软件别处根本没有的时候,会白白搭进去几周。