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

参考链接

相关推荐
余生H12 分钟前
transformer.js(三):底层架构及性能优化指南
javascript·深度学习·架构·transformer
凡人的AI工具箱15 分钟前
15分钟学 Go 第 60 天 :综合项目展示 - 构建微服务电商平台(完整示例25000字)
开发语言·后端·微服务·架构·golang
运维&陈同学1 小时前
【zookeeper01】消息队列与微服务之zookeeper工作原理
运维·分布式·微服务·zookeeper·云原生·架构·消息队列
何遇mirror14 小时前
云原生基础-云计算概览
后端·云原生·云计算
哔哥哔特商务网14 小时前
一文探究48V新型电气架构下的汽车连接器
架构·汽车
007php00714 小时前
GoZero 上传文件File到阿里云 OSS 报错及优化方案
服务器·开发语言·数据库·python·阿里云·架构·golang
嚯——哈哈15 小时前
轻量云服务器:入门级云计算的最佳选择
运维·服务器·云计算
请你喝好果汁64115 小时前
Kingfisher 下载ENA、NCBI SRA、AWS 和 Google Cloud)序列数据和元数据
云计算·aws
九陌斋15 小时前
如何使用AWS Lambda构建一个云端工具(超详细)
云计算·aws
嚯——哈哈15 小时前
AWS云服务器:开启高效计算的新纪元
服务器·云计算·aws