Azure 企业级Landing Zones云架构

概述

在微软Azure云上运行业务应用程序时,确保环境的安全性至关重要。为了满足客户的需求,将帮助他们建立第一个版本的Azure Landing Zones,为后续的构建工作奠定基础,并在交付后提供指导。

Azure Landing Zones是一种基于最佳实践和安全性原则的Azure基础架构模式。它提供了一个可重复使用的模板,用于创建和管理安全且规范化的Azure环境。

什么是Landing Zones

微软将着陆区描述为多订阅Azure环境的输出,该环境考虑了规模、安全性、治理、网络和身份。

但我更愿意将其描述为在企业规模上安全采用微软云的一种方式,使用terrraform HCL文件作为蓝图,通过CI/ CD管道(GitOps)部署。这意味着您的云环境是完全版本化和可审计的。(你的安全团队会喜欢的。) 每个工作负载都包含在自己的Azure订阅中,每个订阅都在一个管理组下运行:

然后,使用这些管理组,可以分配策略来强制执行护栏,以在组织级别上控制成本和安全性。这些策略的示例可以是:不允许在没有配置安全组的情况下存在虚拟网络,或者不允许在特定实例大小下启动虚拟机,等等。

为什么使用Landing Zones

通常,当组织开始使用云计算时,他们的资源和工作负载通过web门户手动部署。随着时间的推移,越来越多的服务被分离出来,对于应该部署什么和应该部署什么,没有单一的真实来源,导致不必要的成本增加,从安全和计费的角度来看都是不透明的,并且潜在的更广泛的网络攻击面。

开始Landing Zones

作为起点,Github上有一个blueprint on Github ,提供了指导和最佳实践。然后,这个配置仍然需要适应您组织的需求。我还发现微软特别有用的是Cloud Adoption Framework(CAF)。它提供了在为Azure云环境制作蓝图时要考虑的设计区域。

工作流

当有人想要向Landing Zone添加新内容时,例如在VM上运行的新应用程序,他们可以简单地从master中分离出来,并在单独的文件夹中添加Azure配置。然后可以在他们选择的沙盒或开发订阅上对该文件夹进行测试,当部署到生产环境中时,将创建一个拉取请求,该请求将启动Azure Pipeline。然后使用terraform计划验证更改,当检查成功时,将更改合并回主分支。此时,Azure DevOps管道再次启动,并且使用terraform apply部署更改。

Infrastructure-As-Code层级

为了保持着陆点的快速开发和Terraform代码库的可维护性,着陆点被划分为不同的级别:

为了限制配置错误的影响并实现清晰的职责分离,可以将"云代码"划分为不同的级别。在这种划分下,0级将包含所有级别的.tfstate文件的部署存储,并创建代表着陆区(Azure Landing Zone)的Azure Active Directory (AAD) 应用程序的服务主体/托管身份,以及启动所需的最低限度的服务。在此基础上,Azure DevOps代理虚拟机可以被配置为在每个级别上运行着陆区管道,并使用相关的托管身份。通过在1级Terraform文件中定义最小所需的角色,可以确保最小特权原则。

注意事项

尽管Microsoft提供了一个成熟的Landing Zone模板,但对于企业来说,Landing Zone并不是一个一揽子解决方案。实施Landing Zone需要企业考虑和记录每个关键设计领域在云采用中的具体需求,并需要具备高级Terraform技能的架构师来根据需求调整Microsoft的蓝图。此外,依赖于Microsoft的Terraform模块也会增加额外的开销,并不能保证所有Azure云资源从发布之时就立即可用。

对于优化以上内容,我建议考虑以下几点:

  1. 定制化:根据企业的具体需求,对Landing Zone进行定制化的设计和实施,以满足特定的业务需求和架构要求。
  2. 技术能力:确保企业拥有具备高级Terraform技能的架构师或团队,能够灵活地调整和扩展Microsoft的蓝图,以适应不断变化的需求。
  3. 持续优化:持续跟踪和优化Landing Zone的性能和可用性,确保云资源能够在需要时可靠地提供服务。
  4. 自动化和自动修复:利用自动化工具和流程,实现对Landing Zone的自动化管理和自动修复,以降低故障风险并提高响应速度。
  5. 安全性和合规性:将安全性和合规性考虑纳入Landing Zone的设计和实施中,确保云资源的安全性和符合法规要求。

通过以上优化措施,企业可以更好地定制和管理自己的Landing Zone,提高云采用的效率和可靠性。

参考链接

相关推荐
稻草人222219 小时前
java Excel 导出 ,如何实现八倍效率优化,以及代码分层,方法封装
后端·架构
数据智能老司机20 小时前
精通 Python 设计模式——创建型设计模式
python·设计模式·架构
数据智能老司机21 小时前
精通 Python 设计模式——SOLID 原则
python·设计模式·架构
bobz9651 天前
k8s svc 实现的技术演化:iptables --> ipvs --> cilium
架构
云舟吖1 天前
基于 electron-vite 实现一个 RPA 网页自动化工具
前端·架构
brzhang1 天前
当AI接管80%的执行,你“不可替代”的价值,藏在这20%里
前端·后端·架构
Lei活在当下2 天前
【业务场景架构实战】4. 支付状态分层流转的设计和实现
架构·android jetpack·响应式设计
架构师沉默2 天前
设计多租户 SaaS 系统,如何做到数据隔离 & 资源配额?
java·后端·架构
容器魔方2 天前
Bloomberg 正式加入 Karmada 用户组!
云原生·容器·云计算
kfyty7252 天前
不依赖第三方,不销毁重建,loveqq 框架如何原生实现动态线程池?
java·架构