你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure Well-Architected 框架评审 - Azure Database for PostgreSQL
本文提供Azure Database for PostgreSQL的体系结构最佳做法。
本指南基于卓越体系结构的五大支柱:
- 可靠性
- 安全性
- 成本优化
- 卓越运营
- 性能效率
先决条件
了解 Well-Architected 框架支柱有助于生成高质量、稳定且高效的云体系结构。 建议使用 Azure Well-Architected 框架评审评估来查看 工作负荷。
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 Server 提供高可用性配置,确保在发生区域中断且不会丢失任何数据时服务保持可用。 配置高可用性后,Azure Database for PostgreSQL服务器会自动预配和管理备用副本 (replica) 。 |
配置异地冗余备份。 | 可以部署跨区域只读副本,以保护数据库免受区域级故障的影响。 在所选区域中启用异地冗余备份,如果主服务器区域关闭,则有助于灾难恢复。 |
测试灾难恢复计划,确保在发生故障时快速还原数据。 | 如果需要灾难恢复,可以将只读副本部署在不同的区域,并提升为读写服务器。 |
监视服务器以确保其正常运行并按预期运行。 | 我们部署了数据库监视,以监视数据库级故障并发出警报。 |
提示
有关Azure Database for PostgreSQL可靠性指南的详细信息,请参阅Azure Database for PostgreSQL的可靠性。
Azure 策略定义
Azure Policy定义有助于为 Azure 环境中的资源强制实施特定规则和配置。 若要确保Azure Database for PostgreSQL的可靠性,可以创建自定义Azure Policy定义来实现特定的配置和最佳做法。 下面是一些可创建用于提高可靠性的自定义Azure Policy定义的示例:
安全性
考虑从设计和实现到部署和运营的整个应用程序生命周期的安全性。 Azure 平台可防范各种威胁,例如网络入侵和 DDoS 攻击。 你仍然需要在应用程序和 DevOps 进程中构建安全性。
安全设计清单
应查看 设计原则 以优化体系结构的成本。
- SSL 和强制加密来保护传输中的数据。
- 实现网络安全组和防火墙来控制对数据库的访问。
- 使用 Azure Active Directory 进行身份验证和授权,以增强标识管理。
- 配置行级别安全性。
安全建议
建议 | 好处 |
---|---|
SSL 和强制加密来保护传输中的数据。 | 从受信任的证书颁发机构部署 DigiCert 全局根证书 (CA) 通过 SSL 与客户端应用程序进行通信所需的证书。 |
实现网络安全组和防火墙来控制对数据库的访问。 | 作为安全零信任模型的一部分,建议使用网络分段,在这种情况下,组件之间的通信路径 (,应用程序和数据库服务器) 仅限于所需的内容。 这可以使用网络安全组和应用程序安全组来实现。 |
使用 Azure Active Directory 进行身份验证和授权,以增强标识管理。 | Microsoft Azure Active Directory (Azure AD) 身份验证是一种使用 Azure AD 中定义的标识连接到 Azure Database for PostgreSQL 的机制。 |
配置行级别安全性。 | 行级别安全性 (RLS) 是一项 PostgreSQL 安全功能,支持数据库管理员定义策略来控制特定行数据显示并操作一个或多个角色。 行级别安全性是可应用于 PostgreSQL 数据库表的附加筛选器。 |
成本优化
成本优化是关于了解配置选项和建议的最佳做法,以减少不必要的费用并提高运营效率。 应查看工作负载,确定降低成本的机会。
成本设计清单
应查看 设计原则 以优化体系结构的成本。
- 选择正确的层和 SKU。
- 了解高可用性模式。
- 缩放计算层和存储层。
- 请考虑预留实例。
- 使用预配的存储。
- 了解异地冗余成本。
- 评估存储纵向扩展决策。
- 部署到应用所在的同一区域。
- 面向高可用性的成本说明。
- 合并数据库和服务器。
成本建议
建议 | 好处 |
---|---|
选择正确的层和 SKU。 | 选择支持工作负荷特定需求的定价层和计算 SKU。 Azure 顾问提供了优化和减少总体 Azure 支出的建议。 建议包括应遵循的服务器大小调整。 |
了解高可用性模式。 | 高可用性使备用服务器始终在同一区域或区域中可用。 启用高可用性可使成本增加一倍。 |
调整计算层和存储层。 | 应手动调整计算层和存储层,以满足应用程序随时间推移的要求。 |
使用“启动/停止”功能。 | 灵活服务器具有启动/停止功能,可用于在不需要时停止服务器运行。 |
请考虑预留实例。 | 考虑一年或三年的预留,以获得显著的计算折扣。 将这些预留用于具有一年或更多一致性计算使用量的工作负载。 |
使用预配的存储。 | 备份存储最多占预配服务器总存储的 100%,无需额外付费。 |
了解冗余成本。 | 异地冗余存储 (GRS) 成本是本地冗余存储 (LRS) 的两倍。 GRS 的存储容量是 LRS 的两倍。 |
评估存储纵向扩展决策。 | 在纵向扩展存储之前,应评估当前和未来的存储需求。 纵向扩展存储后,无法纵向缩减。 |
部署到与应用相同的区域。 | 部署到应用程序 () 的同一区域,以最大程度地降低传输成本。 使用虚拟网络集成时,不同虚拟网络中的应用程序无法直接访问灵活服务器。 若要授予他们访问权限,需要配置虚拟网络对等互连。 虚拟网络对等互连具有名义的入站和出站数据传输成本。 |
面向高可用性的成本说明。 | 这是 HA 和成本的权衡。 HA 是非 HA 配置成本的两倍,但需要。 |
合并数据库和服务器。 | 可以将多个数据库和服务器合并到单个服务器中以降低成本。 |
Azure 策略定义
Azure Policy定义有助于为 Azure 环境中的资源强制实施特定规则和配置。 若要确保Azure Database for PostgreSQL的成本优化,可以创建自定义Azure Policy定义来强制实施特定配置和最佳做法。 下面是可为成本优化而创建的一些自定义Azure Policy定义的示例:
卓越运营
卓越运营的原则是一系列有助于实现卓越运营实践的考虑因素。
若要提高运营能力,请考虑并改进软件的开发、部署、操作和维护方式。
卓越运营设计清单
应查看 设计原则 以优化体系结构的成本。
- 设置自动备份和保留策略,以保持数据可用性并满足合规性要求。
- 实现自动修补和更新,使 PostgreSQL 实例保持安全和最新。
- 使用 Azure Monitor 监视数据库运行状况和性能,并为关键指标设置警报。
卓越运营建议
建议 | 好处 |
---|---|
设置自动备份和保留策略,以保持数据可用性并满足合规性要求。 | Azure Database for PostgreSQL为数据库提供自动备份和时间点还原。 可以为备份配置最长 35 天的保留期。 |
实现自动修补和更新,使 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相关的资源。