欢迎来到雲闪世界。处理敏感数据或在高度监管的环境中工作需要安全可靠的云基础架构来进行数据处理。云可能看起来像互联网上的开放环境,并引发安全问题。当您开始使用 Azure 并且对资源配置没有足够的经验时,很容易犯设计和实施错误,这可能会影响新数据平台的安全性和灵活性。在这篇文章中,我将描述为 Azure 中的数据平台设计云适配框架的最重要方面。
添加图片注释,不超过 140 字(可选)
什么是 Azure 登陆区?
Azure 登陆区是部署公有云资源的基础。它包含强大平台的基本元素。这些元素包括网络、身份和访问管理、安全性、治理和合规性。通过实施登陆区,组织可以简化其基础架构的配置过程,确保利用最佳实践和指南。
Azure 登陆区是一种遵循关键设计原则以实现应用程序迁移、现代化和开发的环境。在 Azure 中,订阅用于隔离和开发应用程序和平台资源。这些资源分类如下:
- 应用程序登陆区:专用于托管特定于应用程序的资源的订阅。
- 平台登陆区:包含共享服务的订阅,例如为应用程序登陆区提供的身份、连接和管理资源。
这些设计原则可帮助组织在云环境中成功运营并扩展平台。
添加图片注释,不超过 140 字(可选)
在 Azure 中实现数据平台
Azure 中的数据平台实施涉及高级架构设计,其中选择用于数据提取、转换、服务和探索的资源。第一步可能需要设计着陆区。如果您需要一个遵循最佳实践的安全平台,那么从着陆区开始至关重要。它将帮助您组织订阅和资源组中的资源,定义网络拓扑,并确保通过 VPN 与本地环境的连接,同时遵守命名约定和标准。
建筑设计
为数据平台定制架构需要仔细选择资源。 Azure 为 Azure Synapse Analytics、Azure Databricks、Azure Data Factory 和 Microsoft Fabric 等数据平台提供本机资源。 可用的服务提供了实现类似目标的多种方式,让您可以灵活地选择架构。
例如:
- 数据提取: Azure 数据工厂或 Synapse 管道。
- 数据处理: Synapse 中的 Azure Databricks 或 Apache Spark。
- 数据分析: Power BI 或 Databricks 仪表板。
我们可能会使用 Apache Spark 和 Python 或低代码拖放工具。这些工具的各种组合可以帮助我们根据我们的技能、用例和能力创建最合适的架构。
添加图片注释,不超过 140 字(可选)
Azure 还允许您使用其他组件(例如 Snowflake)或使用开源软件、虚拟机 (VM) 或 Kubernetes 服务 (AKS) 创建您的组合。我们可以利用 VM 或 AKS 来配置用于数据处理、探索、编排、AI 或 ML 的服务。
典型的数据平台结构
Azure 中的典型数据平台应包含几个关键组件:
-
用于将数据从源提取到 Azure 存储帐户的工具。Azure 提供 Azure Data Factory、Azure Synapse Pipelines 或 Microsoft Fabric 等服务。我们可以使用这些工具从源收集数据。
-
数据仓库、数据湖或数据湖屋:根据您的架构偏好,我们可以选择不同的服务来存储数据和业务模型。
- 对于 Data Lake 或 Data Lakehouse,我们可以使用 Databricks 或 Fabric。
- 对于数据仓库,我们可以选择 Azure Synapse、Snowflake 或 MS Fabric Warehouse。
-
为了协调 Azure 中的数据处理,我们有 Azure Data Factory、Azure Synapse Pipelines、Airflow 或 Databricks Workflows。
-
Azure 中的数据转换可以通过各种服务处理。
- 对于 Apache Spark:Databricks、Azure Synapse Spark Pool 和 MS Fabric Notebooks,
- 对于基于 SQL 的转换,我们可以使用 Databricks、Azure Synapse 或 MS Fabric 中的 Spark SQL、SQL Server、MS Fabric 或 Synapse Dedicated Pool 中的 T-SQL。或者,Snowflake 提供所有 SQL 功能。
订阅
平台设计的一个重要方面是根据业务部门和软件开发生命周期规划订阅和资源组的细分。可以为生产环境和非生产环境使用单独的订阅。通过这种区分,我们可以实现更灵活的安全模型、为生产环境和测试环境制定单独的策略,并避免配额限制。
添加图片注释,不超过 140 字(可选)
联网
虚拟网络类似于在数据中心运行的传统网络。Azure 虚拟网络 (VNet) 为您的平台提供了基础安全层,禁用资源的公共端点将大大降低在丢失密钥或密码时数据泄露的风险。如果没有公共端点,则只有连接到 VNet 时才能访问存储在 Azure 存储帐户中的数据。
与本地网络的连接支持 Azure 资源与本地数据源之间的直接连接。根据连接类型,通信流量可能会通过 Internet 上的加密隧道或专用连接。
为了提高虚拟网络内的安全性,您可以使用网络安全组 (NSG) 和防火墙来管理入站和出站流量规则。这些规则允许您根据 IP 地址、端口和协议过滤流量。此外,Azure 还支持在子网、虚拟和本地网络以及 Internet 之间路由流量。使用自定义路由表可以控制流量的路由位置。
添加图片注释,不超过 140 字(可选)
命名约定
命名约定为平台资源的名称建立了标准化,使其更具自我描述性且更易于管理。此标准化有助于浏览不同的资源并在 Azure 门户中对其进行筛选。定义明确的命名约定可让您快速识别资源的类型、用途、环境和 Azure 区域。这种一致性对您的 CI/CD 流程大有裨益,因为可预测的名称更易于参数化。
考虑命名约定时,您应该考虑要捕获的信息。标准应该易于遵循、一致且实用。值得包括组织、业务部门或项目、资源类型、环境、区域和实例编号等元素。您还应该考虑资源的范围,以确保名称在其上下文中是唯一的。对于某些资源(例如存储帐户),名称必须是全局唯一的。
例如,Databricks Workspace 可能使用以下格式命名:
添加图片注释,不超过 140 字(可选)
缩写示例:
添加图片注释,不超过 140 字(可选)
全面的命名约定通常包括以下格式:
- 资源类型:代表资源类型的缩写。
- 项目名称:项目的唯一标识符。
- 环境:资源支持的环境(例如,开发、QA、生产)。
- 区域:部署资源的地理区域或云提供商。
- 实例:用于区分同一资源的多个实例的数字。
基础设施实施
通过 Azure 门户实施基础设施看似简单,但通常涉及每个资源的大量详细步骤。高度安全的基础设施将需要资源配置、网络、专用端点、DNS 区域等。Azure Synapse 或 Databricks 等资源需要额外的内部配置,例如设置 Unity Catalog、管理机密范围以及配置安全设置(用户、组等)。
完成测试环境后,您需要在 QA 和生产环境中复制相同的配置。这是很容易出错的地方。为了最大限度地减少可能影响开发质量的潜在错误,建议使用基础设施即代码 (IasC) 方法进行基础设施开发。IasC 允许您在 Terraform 或 Biceps 中创建云基础设施即代码,使您能够部署具有一致配置的多个环境。
在我的云项目中,我使用加速器快速启动新的基础设施设置。Microsoft 也提供了可用的加速器。将基础设施作为代码存储在存储库中还提供了其他好处,例如版本控制、跟踪更改、进行代码审查以及与 DevOps 管道集成以管理和促进跨环境的更改。
概括
如果您的数据平台不处理敏感信息,并且您不需要高度安全的数据平台,则可以创建一个更简单的设置,无需虚拟网络 (VNet)、VPN 等即可访问公共互联网。但是,在监管严格的地区,需要完全不同的实施计划。该计划将涉及与组织内的各个团队(例如 DevOps、平台和网络团队)甚至外部资源的协作。
您需要建立安全的网络基础设施、资源和安全性。只有基础设施准备就绪,您才能开始与数据处理开发相关的活动。
感谢关注雲闪世界。(Aws解决方案架构师vs开发人员&GCP解决方案架构师vs开发人员)
订阅频道(t.me/awsgoogvps_…) TG交流群(t.me/awsgoogvpsHost)
#aws CLI cheat sheet #aws cli Debug #aws cli get S3 object #aws cli login with access key #aws cli to download from s3 #aws command line download from s3 #homebrew install aws cli#aws sdk get caller identity #aws s3 cli get object #aws s3 put object#aws s3 headobject#aws s3 put-object #aws s3 sync vs cp