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,提高云采用的效率和可靠性。

参考链接

相关推荐
_.Switch1 小时前
Python机器学习:自然语言处理、计算机视觉与强化学习
python·机器学习·计算机视觉·自然语言处理·架构·tensorflow·scikit-learn
嘟嘟太菜了1 小时前
使用阿里云试用资源快速部署web应用-dofaker为例
阿里云·云计算
feng_xiaoshi5 小时前
【云原生】云原生架构的反模式
云原生·架构
架构师吕师傅7 小时前
性能优化实战(三):缓存为王-面向缓存的设计
后端·微服务·架构
团儿.9 小时前
解锁MySQL高可用新境界:深入探索MHA架构的无限魅力与实战部署
数据库·mysql·架构·mysql之mha架构
冰万森10 小时前
亚马逊AI编程工具Amazon Q 和 Amazon CodeWhisperer使用教程
云计算·aws
艾伦~耶格尔18 小时前
Spring Boot 三层架构开发模式入门
java·spring boot·后端·架构·三层架构
_.Switch21 小时前
Python机器学习框架介绍和入门案例:Scikit-learn、TensorFlow与Keras、PyTorch
python·机器学习·架构·tensorflow·keras·scikit-learn
神一样的老师1 天前
构建5G-TSN测试平台:架构与挑战
5g·架构
huaqianzkh1 天前
付费计量系统通用功能(13)
网络·安全·架构