你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure Database for PostgreSQL 的体系结构最佳做法
本文提供了 Azure Database for PostgreSQL 的体系结构最佳做法。
本指南基于建筑卓越五大支柱:
- 可靠性
- 安全
- 成本优化
- 卓越运营
- 性能效率
先决条件
了解 Well-Architected 框架支柱有助于生成高质量、稳定且高效的云体系结构。 建议使用 Azure 架构良好的框架评审评估来评审工作负荷。
Azure Database for PostgreSQL 是 Azure 中基于 PostgreSQL 开源关系数据库的关系数据库服务。 它是一种完全托管的数据库即服务产品/服务,可以处理具有可预测性能、安全性、高可用性和动态可伸缩性的任务关键型工作负荷。 Azure Database for PostgreSQL 基于 PostgreSQL 数据库引擎的社区版本构建。 它与 PostgreSQL 服务器社区版兼容,并支持 PostgreSQL 扩展功能,例如 PostGIS 和 TimescaleDB。
注意
若要探索使用 Azure Database for PostgreSQL 存储认知服务 API 分析结果的轻型解决方案理念,请参阅使用 Azure Database for PostgreSQL 智能应用。
可靠性
Azure Database for PostgreSQL 灵活服务器通过在同一可用性区域(区域式)或跨可用性区域(区域冗余)内预配物理上独立的主副本和备用副本来提供高可用性支持。 此高可用性模型可确保在发生故障时永远不会丢失已提交的数据。 该模型还设计为数据库不会成为软件体系结构中的单一故障点。 Azure Database for PostgreSQL 灵活服务器提供的功能可保护数据,并缓解任务关键型数据库在计划内和计划外停机事件期间的停机时间。 灵活服务器基于提供可靠的复原能力和可用性的 Azure 基础结构构建,提供故障保护、解决恢复时间要求以及减少数据丢失暴露的业务连续性功能。
可靠性设计清单
应查看 设计原则,以优化体系结构的成本。
- 为工作负荷的 RPO(恢复点目标)和 RTO(恢复时间目标)定义目标。
- 选择适当的高可用性配置。
- 配置异地冗余备份。
- 测试灾难恢复计划,确保在发生故障时快速还原数据。
- 为已启用 HA 的服务器测试按需故障转移,以确保应用程序按预期方式运行。
- 监视服务器以确保其正常运行并按预期执行。
可靠性建议
建议 | 好处 |
---|---|
已为工作负载定义了恢复点目标(RPO)和恢复时间目标(RTO)。 | 通过进行风险评估并确保了解停机时间和数据丢失的成本和风险,从而派生这些值。 这些是系统的非功能要求,应由业务需求决定。 |
选择适当的高可用性配置。 | Azure Database for PostgreSQL 服务器提供高可用性配置,确保在发生区域中断且不会丢失任何数据时服务保持可用。 配置高可用性后,Azure Database for PostgreSQL 服务器会自动预配和管理备用副本。 |
配置异地冗余备份。 | 可以部署跨区域只读副本,以保护数据库免受区域级故障的影响。 在所选区域中启用异地冗余备份,并在主服务器区域关闭时帮助进行灾难恢复。 还可以使用 Azure 备份保管库实现异地冗余,以便长期存储恢复点。 如果发生区域性服务中断或灾难,可以使用 Azure 备份将数据库服务器还原到 Azure 配对区域,最大限度地减少停机时间。 Azure 备份还为 Azure Database for PostgreSQL 灵活服务器提供异地冗余,可提高效率并减少灾难或区域中断期间的停机时间。 |
测试灾难恢复计划,确保在发生故障时快速还原数据。 | 只读副本可以部署在不同的区域,在发生灾难恢复时,可以将其提升为读-写服务器。 |
监视服务器以确保其正常运行并按预期执行。 | 我们有数据库监视来监视和警报数据库级故障。 |
提示
有关 Azure Database for PostgreSQL 的可靠性指南的更多详细信息,请参阅 Azure Database for PostgreSQL 的可靠性。
Azure 策略定义
Azure Policy 定义可帮助你为 Azure 环境中的资源强制实施特定的规则和配置。 若要确保 Azure Database for PostgreSQL 的可靠性,可以创建自定义 Azure Policy 定义来实现特定的配置和最佳做法。 下面是一些可以出于可靠性而创建的自定义 Azure Policy 定义示例:
安全
考虑从设计和实现到部署和操作的整个应用程序生命周期的安全性。 Azure 平台可防范网络入侵和 DDoS 攻击等各种威胁。 你仍然需要在应用程序和 DevOps 进程中构建安全性。
安全设计清单
应查看 设计原则,以优化体系结构的成本。
- SSL 并强制加密来保护传输中的数据。
- 实现网络安全组和防火墙来控制对数据库的访问。
- 使用 Microsoft Entra ID 进行身份验证和授权来增强标识管理。
- 配置行级别安全性。
安全建议
建议 | 好处 |
---|---|
SSL 并强制加密来保护传输中的数据。 | 从受信任的证书颁发机构(CA)证书部署 DigiCert 全局根证书,该证书需要通过 SSL 与客户端应用程序进行通信。 |
实现网络安全组和防火墙来控制对数据库的访问。 | 作为零信任安全模型的一部分,建议进行网络分段,只允许组件之间(如应用程序和数据库服务器)所需的通信路径。 这可以使用网络安全组和应用程序安全组来实现。 |
使用 Microsoft Entra ID 进行身份验证和授权来增强标识管理。 | Microsoft Entra ID 身份验证是使用 Azure AD 中定义的标识连接到 Azure Database for PostgreSQL 的机制。 |
配置行级别安全性。 | 行级别安全性(RLS) 是 PostgreSQL 的一项安全功能,它允许数据库管理员定义策略,以控制特定数据行对于一个或多个角色的显示和操作方式。 行级别安全性是可应用于 PostgreSQL 数据库表的其他筛选器。 |
成本优化
成本优化是了解配置选项和建议的最佳做法,以减少不必要的费用并提高运营效率。 应查看工作负荷,以确定降低成本的机会。
成本设计清单
应查看 设计原则,以优化体系结构的成本。
- 选择正确的级别和 SKU。
- 了解高可用性模式。
- 缩放计算层和存储层。
- 考虑预留实例。
- 使用预配的存储。
- 了解异地冗余成本。
- 评估存储纵向扩展决策。
- 部署到与应用相同的区域。
- 面向高可用性的成本说明。
- 合并数据库和服务器。
成本建议
建议 | 好处 |
---|---|
选择正确的分层和 SKU。 | 选择定价等级并计算支持您工作负载特定需求的 SKU。 Azure 顾问提供优化和减少整体 Azure 支出的建议。 建议包括应该遵循的服务器大小调整。 |
了解高可用性模式。 | 高可用性使备用服务器始终在同一区域或区域中可用。 启用高可用性会使成本加倍。 |
调整计算层和存储层。 | 应手动调整计算层和存储层,以满足应用程序随时间推移的要求。 |
使用“开始/停止”功能。 | 灵活服务器具有启动/停止功能,可用于在不需要服务器时阻止服务器运行。 |
考虑预留实例。 | 考虑一年或三年的预订,以获得计算方面的大幅折扣。 将这些预留用于一年或更长时间内计算使用保持一致的工作负荷。 |
使用预配的存储。 | 如果备份存储空间未超过 100% 的总预配服务器存储空间,则无需额外付费。 |
了解冗余成本。 | 异地冗余存储(GRS)的成本是本地冗余存储(LRS)的两倍。 GRS 需要 LRS 的存储容量的两倍。 |
了解受保护的实例和备份存储成本 | 使用 Azure 备份对 PostgreSQL 灵活服务器进行备份时,您需要支付受保护的实例服务费用(每 250 GB)和备份存储费用(根据存储的数据总量和冗余类型)。 |
评估存储纵向扩展决策。 | 在纵向扩展存储之前,应评估当前和将来的存储需求。 扩展存储容量后,无法缩减。 |
部署到与应用相同的区域。 | 部署到应用程序所在的同一区域,以最大程度地降低传输成本。 使用虚拟网络集成时,其他虚拟网络中的应用程序无权直接访问灵活服务器。 若要授予访问权限,需要配置虚拟网络对等互连。 虚拟网络对等互连具有很低的入站和出站数据传输成本。 |
面向高可用性的成本说明。 | 这是高可用性 (HA) 和成本之间的权衡。 HA 的成本是非 HA 配置的两倍,但这是必要的。 |
合并数据库和服务器。 | 可以将多个数据库和服务器合并到单个服务器中,以降低成本。 |
Azure 策略定义
Azure Policy 定义可帮助你为 Azure 环境中的资源强制实施特定的规则和配置。 若要确保 Azure Database for PostgreSQL 的成本优化,可以创建自定义 Azure Policy 定义来强制实施特定配置和最佳做法。 下面是为成本优化而创建的一些自定义 Azure Policy 定义示例:
卓越运营
卓越运营原则是一系列有助于实现卓越运营实践的注意事项。
若要在运营方面实现更高的能力,请考虑和改进软件的开发、部署、运营和维护方式。
卓越运营设计清单
应查看 设计原则,以优化体系结构的成本。
- 设置自动备份和保留策略以维护数据可用性并满足合规性要求。
- 实现自动修补和更新,以保持 PostgreSQL 实例安全,并保持最新状态。
- 使用 Azure Monitor 监视数据库运行状况和性能,并为关键指标设置警报。
卓越运营建议
建议 | 好处 |
---|---|
设置自动备份和保留策略以维护数据可用性并满足合规性要求。 或者,使用 Azure 备份策略 备份 Azure Database for PostgreSQL 服务器。 还可以使用此 Azure 备份策略保护 Azure Database for PostgreSQL 灵活服务器。 |
Azure Database for PostgreSQL 提供自动备份和可按时间点还原的功能用于您的数据库。 可以为备份配置最长 35 天的保留期。 使用 Azure 备份可以定义备份的创建方式和时间、恢复点的保留期以及数据保护和恢复规则。 可以在备份保管库中保留恢复点长达 10 年。 使用 Azure 备份策略 长期保护 Azure Database for PostgreSQL 灵活服务器,并管理数据库的安全性和完整性。 还可以使用 Azure 业务连续性中心来管理备份和还原操作。 |
实现自动修补和更新,以保持 PostgreSQL 实例安全,并保持最新状态。 | Azure Database for PostgreSQL 为数据库提供自动修补和更新。 可以为服务器配置维护时段,以最大程度地减少对工作负荷的影响。 |
使用 Azure Monitor 监视数据库运行状况和性能,并为关键指标设置警报。 | Azure Database for PostgreSQL 提供内置的监视和警报功能。 可以使用 Azure Monitor 监视数据库的运行状况和性能。 还可以为关键指标设置警报,以便在数据库未按预期执行时收到通知。 |
卓越运营策略定义
Azure Policy 定义可帮助你为 Azure 环境中的资源强制实施特定的规则和配置。 为了确保 Azure Database for PostgreSQL 的卓越运营,可以创建自定义 Azure Policy 定义来强制实施特定的配置和最佳做法。 下面是为卓越运营而创建的一些自定义 Azure Policy 定义示例:
性能效率
性能效率是指工作负载能够以高效地扩展以满足用户对它的要求。 我们建议您查看性能效率原则。
在下面的设计清单和建议列表中,标注指示每个选择是否适用于群集体系结构、工作负荷体系结构或两者。
性能效率设计清单
应查看 设计原则,以优化体系结构的成本。
- 设计架构和查询以提高效率,以最大程度地减少资源消耗。
- 实现只读副本以分担读取流量并提高整体性能。
性能效率建议
建议 | 好处 |
---|---|
设计架构和查询以提高效率,以最大程度地减少资源消耗。 | 应设计架构和查询以提高效率,以最大程度地减少资源消耗。 |
实现只读副本以分担读取流量并提高整体性能。 | 可以使用只读副本来分担读取流量并提高性能。 |
性能效率策略定义
Azure Policy 定义可帮助你为 Azure 环境中的资源强制实施特定的规则和配置。 为了确保 Azure Database for PostgreSQL 的性能效率,可以创建自定义 Azure Policy 定义来强制实施特定的配置和最佳做法。 下面是一些可为性能效率创建的自定义 Azure Policy 定义示例:
额外资源
考虑更多与 Azure Database for PostgreSQL 相关的资源。