我发现很少看到大型网站运行在微软技术上,比如 Windows Server、IIS、ASP.NET、SQL Server,以所有知名的“大”网站(谷歌、Facebook、Twitter、Youtube)为例,它们都运行(有时经过修改的)Linux,所以我想问为什么很少看到像这样的大型网站在 Windows 上运行?
这是许可证成本问题吗?我们能说,如果 Facebook、Twitter、Google 和 Youtube 必须购买所有许可证,它们就永远不会有这样的增长吗?还是说这是规模问题?
当然,微软提供了一些非常好的技术,如.NET、IIS7、SQL Server、Smooth Streaming、ASP.Net,但许可证成本是多少?
您对此有何看法?微软在网络技术领域的定位是什么?未来会怎样?
我真的很喜欢微软的产品,但我有点担心成本……
答案1
相对而言,很少看到网站在 MS 工具上运行。这在一定程度上是历史原因 - 即 Web 应用程序的“事实上”标准是 *nix 系统,这意味着大多数新 Web 应用程序都是为 *nix 系统编写的。这就像桌面应用程序是为 Windows 编写的一样,因为大多数桌面都是 Windows。
除了历史上 IIS 非常差、安全记录不佳并且很大程度上局限于 Windows 语言(即 ASP 或 ISAPI 中的 vbscript)(尽管您可以运行 cgi 应用程序)之外,现在情况有所改善,因为 PHP 等语言已经移植到 Windows 并获得了大量支持。
不过,由于大多数网站仍然是基于 *nix 的,因此您不仅会发现从 *nix 人员那里获得网络技能变得容易得多,而且还会找到更多有关使用基于 *nix 系统的工具的信息。
可扩展性。TPC 基准总是显示 Windows 系统扩展性很好……但你需要很多 Windows 服务器才能获得与单个 Sun 或 IBM“大型机”相同的好处。那些“一台机器”与“一个集群”的令人兴奋的日子已经过去了——今天没有人真正关心,服务器已经变得强大得多,因此差异减少了。话虽如此,目前 TPC-C 排名前 10基准测试都显示 *nix 系统,而 TPC-H 基准测试表明微软系统在小型端表现良好,但在高端测试中却被打败。
然而,其中一个重要因素是维护成本。更多服务器 = 更多麻烦 = 维护它们所花费的时间更多。这意味着员工成本更高。
然而,与 slashdot 相比,即使是 SO 也只是小菜一碟,而且当您的网站拥有如此多的订阅者,以至于您的网站名称成为拒绝服务“攻击”的代名词时,您需要一些严肃的负载平衡和架构选项。*nix 系统具有这些功能,它们众所周知且受到广泛支持(事实上,所述系统也可用于负载平衡 Windows 系统,因为它们是作为独立服务器交付的,运行 linux 或 bsd OS),但这意味着您需要 *nix 技能才能充分利用它们 - 如果您只具备 Windows 技能,您将不得不进行一些学习。您不妨节省时间,只学习 1 OS!
许可:微软在免费提供廉价的网络操作系统方面做得越来越好,Windows Server Web 版比普通 Windows 便宜很多,但如果你正在运行一个大型网站,你将需要将其升级到企业版甚至数据中心版,而这些宝贝无论如何都不便宜。而且你会想要运行多个实例。如果你完全使用微软,毫无疑问你会使用其他微软产品、Office 工具(如 Sharepoint 或 Biztalk 或 Commerce Server 或 SQL Server 等)。这些也不便宜。
与 *nix 解决方案相比,您可以保证它们是免费的。好吧,您可以运行 Oracle DB,但即便如此,这也比整个 MS 堆栈便宜。从大局来看,这可能并不重要,但如果您是一家有选择的小型初创公司,免费胜过任何价格。如果您是一个大型 slashdot 类型的网站,免费胜过极其昂贵的价格。
但最终,免费工具还是相当不错的——好到所有这些网站都使用它们。微软可能会生产很多很酷的玩具,但它们更像是微软世界的 Java,如果你要运行内存密集型应用程序,你最好还是使用 Java。如果你只是想创建一个网站,python、perl、php 或 ruby 都可以在免费系统上为你提供。
答案2
微软的 Web 技术因过去的声誉而受到阻碍。早期的 IIS 版本(早期指的是 NT4.0 早期和 .NET 1.0 早期)并没有将其与 Apache 放在同一水平,这有助于巩固 Web 应用程序设计者的观点,即它不适合扩展。多年来,Apache 一直是一种常见的配置互联网应用程序和 IIS 是内部网应用程序。这种情况正在开始改变,StackOverflow 实际上就是一个很好的例子(至少核心是微软,不确定边缘)。
微软不太擅长的一个领域是 HugeSite 管理的数据包挖掘部分。这些是网络负载平衡器、地理平衡器、缓存层等。对于这一点,您仍然会发现 Linux、硬件设备(可能在内部运行 Linux)或如今运行着谁也不知道是什么的云设备。
至于 HugeSite 的应用程序逻辑和数据库层,它可以做到来源:StackOverflow等。等证明。
至于许可,如果您需要支持合同,Linux 等许可也会变得昂贵。当然,如果您的规模足够大,可以推出自己的 Linux 版本,那么这是一个没有实际意义的问题。但是,如果您的规模介于使用共享主机或 VPS 之间,并且足够大,可以推出自己的版本,那么支持驱动的 Linux(RedHat、SLES 等)有其优点;特别是如果可以赚钱的话。
这主要是一种思想交流。改变总是需要时间。
答案3
是的,主要与成本有关 - 但也有其他考虑因素。
将单一的 Microsoft 产品与其他产品进行集成比在 Unix 环境中开发的软件更加困难。
尽管微软在性能、可扩展性和可靠性方面正在不断进步,但他们在这些领域的历史并不好。
路线规划:虽然开源项目经常未能提供其未来发展方向的细节,但另一方面,商业软件的全部目的都是向你出售下一个大产品 - 因此他们今天销售的产品不仅会在 5 年后变得多余 - 它们还会被一些不同且不兼容的产品所取代。
C。
答案4
我猜测其中一个原因是 MS 产品的扩展性不太好。
看着http://searchdns.netcraft.com/?host=.microsoft.com看起来微软的可扩展性很大程度上来自于其他人。
按操作系统细分 - 计算 *.microsoft.com 网站的数量,如下所示:
- 思杰 Netscaler - 24
- f5 big-ip - 27
- Linux-19
- Linux - 红帽 - 2
- 未知 - 17
- Windows 服务器 2003 - 29
- Windows 服务器 2008 - 26