![创建托管数据库时,每个应用程序是否应该有一个实例?](https://linux22.com/image/752613/%E5%88%9B%E5%BB%BA%E6%89%98%E7%AE%A1%E6%95%B0%E6%8D%AE%E5%BA%93%E6%97%B6%EF%BC%8C%E6%AF%8F%E4%B8%AA%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%98%AF%E5%90%A6%E5%BA%94%E8%AF%A5%E6%9C%89%E4%B8%80%E4%B8%AA%E5%AE%9E%E4%BE%8B%EF%BC%9F.png)
假设我有 10 个不同的应用程序,它们都具有 postgresql 数据库依赖项,并且必须使用 Azure 托管 postgresql 实例将这些应用程序部署到 Azure 上。为每个应用程序和每个环境(开发、暂存、生产)创建一个托管数据库实例(10 x 3 = 30 个实例)是最佳做法吗?还是我应该为每个环境创建一个更大的托管 postgresql 实例?这样,我只有三个托管数据库实例(开发、暂存、生产)
我关心的是性能、安全性和可维护性。总体而言是最佳实践。
答案1
每种方法都有优点和缺点。请参阅我应该为所有应用程序建立一个 MySQL 实例,还是为每个应用程序建立一个实例?
我用“混合”方法取得了很好的经验:
- 开发和准备阶段可以共享同一个实例
- 生产始终在单独的实例上(但可能在同一个实例上有多个生产应用程序)
- 低流量/低使用率/新应用程序默认在共享实例上运行
- 一旦您面临高使用率应用程序,和/或开始调查性能问题,请创建一个专用实例并将应用程序移到那里
- 对于安全问题或数据库版本冲突也是如此(两个应用程序依赖于不同的数据库版本)
一般来说,我认为没有适合所有场景的“最佳实践”。我会从一个简单的设置开始(即只有几个实例),然后在需要时进行改进。