在 Azure 中组织环境(服务器)的最佳实践设置?

Best practice setup to organize environments (servers) in Azure?

我即将设置一个将托管在 Azure 中的新项目(我第一次使用它)。我将拥有三种类型的环境:

从网络层面我希望这样:

  1. 生产力服务器 (TeamCity) 可以访问 Prelive 和 Live 服务器(部署)

  2. 开发人员可以部分访问实时服务器(没有 rdp,但可以访问 http)。我想隔离对 Live 环境管理的访问(仅限 devops/admin)。

实现此目标的最佳方法是什么?

选项 1 - 在 Azure 中使用不同的订阅?一种用于 PRELIVE,一种用于 Productivity,一种用于 LIVE。服务器可以互相访问吗?是否可以在不同的订阅和 Azure AD 之间建立信任以避免重复用户?

选项 2 - 每个环境(Dev、Systest、performance、live)在其自己的订阅中?

选项 3 - 使用相同的订阅和 Role-based Access Control?有什么方法可以在网络级别将 LIVE 与 Prelive 隔离?

选项 4 - 还有其他选项吗?

肯定没有什么不能通过单个订阅完成的,但是从组织/计费/管理的角度来看,拥有多个订阅可以提供帮助。

如果您在两个单独的虚拟网络中部署两个 VM,则默认情况下它们具有网络分离。然后,您可以创建安全组规则以允许使用标准 TCP/IP 网络限制(子网、端口等)

进行访问

如果默认情况下将两个 VM 部署到同一个虚拟网络中,它们可以相互开放网络访问,但如果将它们部署到不同的子网中,则可以配置子网级别的安全组来控制访问。

如果您有一个团队负责您的部署,并且您只希望开发团队访问开发箱,则可以在您的服务器和资源组上配置 RBAC 以允许这样做。

资源组是逻辑上连接的资源(VM、VNet、Web 应用程序等)的集合 - 尽管以上内容仍然适用。因此,同一资源组中的服务器没有网络访问权限。

如果这是你第一次使用 Azure,最好的建议是预留几周时间来构建东西,并了解它最适合你的方式和你需要的东西。

到那时,将其全部拆除并使用您所学的知识正确构建它。