使用 SSH 隧道部署应用程序

使用 SSH 隧道部署应用程序

我正在开发 spring-boot 应用程序,其中我的后端使用 ssh 隧道连接到数据库(此部分是必需的,不能更改)。我有三种部署应用程序的方法:

哪一个是最佳选择?为什么?

答案1

您应该选择选项 2:

创建 war 并在独立 tomcat 上部署(使用 ssh 隧道外部应用程序作为 linux 服务)

您希望 SSH 隧道由底层操作系统管理,而不是由您的应用管理。这样,系统管理员就可以委派它(最好使用配置管理工具)。

您开发的应用程序不应该关心管理系统任务,例如将隧道持久保存到后端。

这与“12 要素应用”处理‘支持服务’的方法:

十二要素应用程序的代码不区分本地服务和第三方服务。对于应用程序而言,两者都是附加资源,可通过 URL 或配置中存储的其他定位器/凭据进行访问。十二要素应用程序的部署应该能够将本地 MySQL 数据库替换为第三方管理的数据库(例如 Amazon RDS),而无需对应用程序的代码进行任何更改。

因此,如果您的代码库有任何与创建 SSH 隧道或持久系统连接相关的内容,那么您做错了;)

相关内容