【发布时间】:2014-11-10 19:28:46
【问题描述】:
我们正在构建一个 SaaS 应用程序。我(目前 - 对于这个应用程序)对可用性没有很高的要求。它主要用于特定时区并且仅用于商业目的,因此预定在凌晨 3 点重新启动应该不成问题。
它是一个在 fastcgi 服务器上以单声道运行的 ASP.NET 应用程序。由于安全原因,每个客户都将部署自己的应用程序。这将使用 docker 容器来完成,前面有一个 Nginx 服务器,以基于 URL 分发请求。如何部署它的可能方式适合我:
- 仅使用 fcgi 服务器创建 docker 映像并从挂载点运行代码
- 使用 fcgi 服务器和代码创建 docker 映像
1. 的优点似乎
- 更新代码更容易,因为 docker 容器可以继续运行
- 配置可以与代码绑定
- 我可以轻松(如果我愿意的话)为特定客户添加微小的更改
2. 的优点似乎
- 一切都在图像中,无需乱用其他文件,只需拉取并运行即可
1 的缺点。
- 除了正在运行的容器之外,还为许多客户提供了许多文件夹
2 的缺点。
- 配置不能在图像中(或者可以吗?- 我应该使用他们的配置为每个客户创建特定的图像吗?)=> 仍然为每个客户附加文件
- 更新容器比较困难,因为我需要重新启动它 - 但不是什么大问题,如开头所述
现在 - 第一年 - 客户数量会很少,当需求低时,任何解决方案都足够好。我正在关注 - 超过 100 位客户的情况。
另外,为了将来我想为这个项目设置 CI,所以我们不需要手动更新所有客户实例。 Docker 镜像可以自动构建,但不确定是否足够。
我的顾虑基本上是 - 哪个解决方案不那么混乱,也许更容易自动化?
我找不到任何涵盖类似场景的 docker 最佳实践。
【问题讨论】:
标签: deployment nginx mono continuous-integration docker