我的开发人员正在开发一款最终可能托管在 Windows Azure 中的应用程序。但是,出于各种原因,我们希望先在内部托管它。他们向我介绍了“私有云”的概念。这听起来很酷,但好得令人难以置信。
我有一台 Windows Server 2008 R2 服务器,将用于内部应用程序。如果应用程序运行良好,我们想切换一下,将应用程序托管在 Azure 中。我的问题是,有办法做到这一点吗?我看到本文。
一旦他们开始谈论系统虚拟机管理器和自助服务门户,我们似乎离 Azure 太远了。如果我做所有这些,我是否可以轻松地将此应用程序推广到 Windows Azure?
答案1
那该死的云单词
请记住,私有云实际上与您当今的大多数内部 Web 服务器和应用程序没有什么不同。您提供的文章更进一步,基本上允许您的开发团队创建、扩展和控制自己的虚拟机。不过,最终,有了您提供的信息,您真正需要的只是 IIS 来运行您拥有的任何应用程序。
Azure 和 IIS 之间有区别吗?
Azure Web 应用程序与在 IIS 上运行的应用程序之间的主要区别非常简单,一个将 Azure 应用程序容器添加到解决方案中,而另一个则没有。 Azure 的产品已经扩展,您现在可以更好地控制底层 VM 甚至您自己的 VM,但我将从最基本的角度来处理这个问题,使用 Azure 作为 PaaS 或平台即服务模型。
Visual Studio 配置
在 Visual Studio 中生成多个构建配置非常容易,一个专门用于 IIS,另一个用于 Azure。这只是定义了构建机制,要么通过设置 Azure 部署包来准备应用程序,要么只是创建 IIS 包。
请记住,Azure 本质上就是 IIS,只是带有与应用程序相匹配的配置和设置文件。
IIS 配置
这里确实没有太多超出标准 Web 服务器设置的要求。您可能有其他要求,例如文件存储甚至缓存(请参阅服务器和AzureAppFabric/Caching)。您必须与开发团队合作确定要求并设置必要的系统来支持这些要求。
解决方案注意事项
您的开发团队还需要了解一些重要信息:design and build the application to run in any environment.
我的意思是,无论最终部署介质和路径如何,应用程序都应该正常工作。因此,在您的情形下,他们很可能希望使用依赖项注入进行文件存储,以便可以调用 Azure 存储 API 或恢复为标准 System.IO 文件存储机制。无论哪种方式,仅设置硬件来支持应用程序是不够的,还必须设计为支持多种环境。
答案2
这都是一堆营销垃圾。“云”不是一个可以轻易定义的单一事物。它是一个冗余、高可用性存储和服务器硬件池,通常位于不同的地理位置,可让人们根据需要快速安全地扩大或缩小其运营规模。
“私有云”只是一种营销手段,指的是一种虚拟化的服务器环境,可以通过一组 API 进行抽象,并像“公共云”一样实现自动扩展。
Azure 是微软的公有云产品。“私有云”可能与它很接近,但并不完全一样。
我建议你拥有两个 Azure 实例。如果这是你选择使用的服务,则获取一个用于开发/测试,另一个用于生产。这样,当你将应用程序移至生产环境时,你就会确切地知道它会做什么,因为它已经在 Azure 上。