我们正在构建SaaS应用程序。我现在没有(对于这个应用程序)对可用性的高要求。它主要用于特定的时区,仅用于商业目的,所以在凌晨3点重新安排的时间根本不应该成为问题。
这是一个使用fastcgi服务器以mono运行的ASP.NET应用程序。出于安全原因,每个客户都将部署自己的应用程序。这将使用docker容器完成,前面有一个Nginx服务器,用于根据URL分发请求。部署它的可能方法适合我:
缺点1。
为2的利弊。
目前 - 第一年 - 客户数量很少,而当需求低时,任何解决方案都足够好。我正在寻找 - 与100位客户合作的方式。
同样为了将来我想为这个项目设置CI,所以我们不需要手动更新所有客户实例。 Docker镜像可以有自动构建,但不确定是否足够。
我的担忧基本上是 - 哪种解决方案不那么混乱,可能更容易实现自动化?
我无法找到与docker相关的最佳做法,其中包含类似的情况。
答案 0 :(得分:1)
您的应用程序的依赖项很可能依赖于代码,因此您仍然需要重建映像并重新启动容器(无论何时添加新的依赖项)。
这意味着您将拥有两个升级工作流程:
这很可能是不受欢迎的,因为它很难实现自动化。
所以,我建议在图像上捆绑代码。
您应该确保应用程序的配置可以存储在其他位置(例如,在卷上,或通过环境变量访问)。
最终,Docker是a platform to package, deploy and run applications,因此打包应用程序(即将代码捆绑在图像上)似乎是更好的使用方式。