跨多个 VM 部署 ASP.NET Core 组件的最佳实践

跨多个 VM 部署 ASP.NET Core 组件的最佳实践

我正在做一个需要在以及私有虚拟机客户提供了4台虚拟机,规定数据库放在一台虚拟机上,应用程序放在其他虚拟机上,某些服务放在特定的虚拟机上。

具体细节:单个 ASP.NET Core 项目:

我可以使用单个 ASP.NET Core Aspire 项目或者我是否需要不同的 APP HOSTS 来连接不同 VM 上的 Docker 容器?

部署建议:

在确保高效通信和可维护性的同时,在不同的虚拟机上部署系统的不同组件的最佳实践是什么?

Docker 容器化:

我是否应该考虑将服务和应用程序容器化,以便在不同的虚拟机之间简化部署?

数据库管理:

关于在单独的虚拟机上管理数据库同时保持与应用程序的顺畅交互,有什么建议吗?

如果我对任何概念有误,请随时纠正。我希望我的所有服务都部署在 Windows Server 上的 docker 上。

答案1

首先,远离 docker windows 容器,它们很麻烦。

您说您需要在私有网络和云中的几台虚拟机上部署 ASP.net 组件。我认为您首先需要查看您的架构。我需要前端吗?我需要后端吗?ASP.net 组件是否依赖于我们需要安装的服务器角色,例如 IIS。哪台服务器将拥有哪些角色和组件?

关于这个问题 部署建议:在确保高效通信和可维护性的同时,在不同的虚拟机上部署系统的不同组件的最佳实践是什么?

我认为最佳做法是:

  • 使用命名约定,并尽可能以相同的方式在服务器上部署所有内容(例如,将日志文件放在单独的驱动器上,并且在每个服务器上都相同) - 使用最小权限,授予服务帐户等,仅需要权限,并且尽可能少。记录
  • 仅在需要时打开网络端口,并尽可能保持最小。记录
  • 与客户一起进行尺寸确定并检查服务器是否有足够的资源。
  • 强化服务器,例如使用 cis 基准来尽可能降低攻击面。
  • 安装所有最新更新和补丁。

相关内容