我有几个问题想问 Azure 专家。我在一家软件开发公司工作,有人问我如何设计我们的 Azure 基础设施。我的想法是为以下部门设置三个即用即付订阅:
1) 生产(现场环境)。2) 质量保证。3) 测试。
我的问题是:
1) 在创建资源(例如网站、虚拟机等)时,它们可以在各个订阅之间迁移吗?这里有一个场景:假设我们正在启动一个新应用程序,但首先我们需要对其进行测试。因此,我们首先将其置于测试阶段。进行严格的测试后,我们会将其移至质量保证阶段。之后,在完成所有质量检查后,我们会将其移至生产(实时环境)。2) 我还正在开发一个安全矩阵,其中一个部门的用户不能更改另一个部门的任何内容。
女士们先生们,你们觉得怎么样?这可行吗?
答案1
Michael——您使用的迁移过程在很大程度上取决于您所使用的基础设施/服务。
作为起点,我建议你了解如何使用构建服务来自动部署你构建的软件。MSDN 文档是一个很好的起点。
- 网站和云服务(Web 或 Worker 角色):您需要将代码重新部署到正确订阅中的相应实例。您无法“移动”底层托管基础设施。
- 虚拟机上托管的服务:您可以在订阅之间移动虚拟机,但这需要付出相当大的努力,具体取决于您拥有的其他依赖项(网络、数据库等)。最好的办法是尝试采用与网站/云服务相同的方法。
- Azure SQL 数据库:您需要在订阅之间备份/恢复数据库。
- 其他 Azure 服务:很大程度上取决于部署的内容(抱歉,这一点比较模糊,但 Azure 中有很多移动部分)。
通常,在您的场景中,找到编写脚本或自动化部署/重新部署您构建的任何解决方案的方法都是值得花费时间的。
答案2
我们使用 Visual Studio Online (VSO) 自动构建和部署到不同的 Azure 环境。无论您是通过不同的订阅来分离环境,还是在同一订阅中使用不同的资源组,这都可以正常工作。
我们的设置是,每次代码签入都会衍生一次构建,运行单元测试,如果成功则触发部署到测试环境。
然后,我们的 QA 部门会定期通过 VSO 选择特定的变更集/日期对构建进行排队。如果构建和单元测试成功,则会触发部署到 QA。从技术上讲,此构建也是为生产环境构建的,但不会部署到生产环境。
他们完成所有质量保证工作,如果一切顺利,他们会向 VSO 提交对内置守门人逻辑的批准。然后我们进行设置,以便另外 2 个人必须签署该版本才能将其推送到生产环境(可以立即进行,也可以安排进行)。
如果您在现场,您可以使用他们的 TFS,它们本质上是相同的东西。
TLDR;您可以通过 VSO 实现此目的,并将其与 Azure Active Directory 集成以进行身份验证和控制。