首先,我认为您阅读的博客文章中的“云”实际上应该更详细地定义为 Azure。有多种云解决方案产品,Azure 只是其中之一,尽管它在 MS 社区领域越来越受欢迎。与亚马逊云等产品相比,Azure 云相当独特,因为它要求使用它的应用程序遵守一组特定的 API。要为 azure 构建应用程序,您需要从一开始就接受某些架构原则,并使用其 Web 和辅助角色来构建您的应用程序。要“适应”这些角色,您的应用必须在引用 Azure SDK 的特殊 VS 项目中构建。
如果您要使用 Amazon 等其他云解决方案,它更类似于启动一个虚拟机或一组虚拟机,它们可以按原样托管您的应用程序,而不受特定 API 的限制。您只需启动一个 Windows 服务器实例,像在托管或租用数据中心环境中使用的任何其他服务器一样在其上安装您需要的东西。
我并不是暗示 azure 解决方案存在缺陷或限制过多。相反,我认为它支持一些架构约束,可以让你“落入成功的陷阱”。但是,在不进行重大更改的情况下,可能很难将许多棕地应用程序轻松迁移到 Azure。
至于为什么在云中托管应用程序而不是普通托管环境。这实际上取决于您的应用程序、您的业务/预算限制和您的流量水平。对于许多小型的业余爱好网站,您最好将应用程序保留在传统的托管环境中。对于更大规模的应用程序,云开始变得更有意义。云确实支持“按使用付费”模式。如果您需要在没有资金的情况下快速扩展或等待购买大量额外硬件的能力,那么云是一个不错的选择。云提供商拥有雄厚的财力和大量的服务器资源和带宽,可以随时通知您,您可以租用而不是购买。
此外,由于云提供商规模庞大且通常享有很高的声誉,他们有能力聘请专家员工并遵循您自己可能无法负担的最佳实践。他们可以并且将处理大量日常运营管理,使您作为开发人员不必考虑安全性和冗余等问题。
因此,在我看来,云解决方案非常适合那些开始看到大量流量、需要保证正常运行时间、不想为自己的管理人员、服务器采购和数据中心管理付费或打扰自己的应用程序。我认为它们对于许多小型业余爱好网站来说并不实用,一旦你变得非常大,将你的应用程序与你自己的员工一起带到网站上可能会变得更经济。
都说了这么多。在 .net 空间中,任何站点都可以在 azure 上运行,它已经变得“很酷”。我承认有些架构模型很有趣,而且看起来很有趣。但是,如果您仔细查看定价模型,您可能会发现使用托管计划会更好。