Implementando aplicativo com túnel SSH

2

Estou desenvolvendo o aplicativo spring-boot onde meu backend está se conectando ao banco de dados usando o tunelamento ssh (essa parte é necessária e não pode ser alterada). Eu tenho três maneiras de implantar o aplicativo:

  • criando o jar (com o tomcat embeded e o ssh dentro do aplicativo)
  • criando war e implantando no aplicativo standalone tomcat (com ssh túnel fora como serviço linux)
  • criando war e implantando no tomcat autônomo (com o ssh túnel dentro ), com essa opção problema conectado Não consigo resolver link

Qual é a melhor escolha e por quê?

    
por banabella 11.04.2018 / 14:42

1 resposta

0

Você deve escolher a opção 2:

creating war and deploy on standalone tomcat (with ssh tunnel outside application as linux service)

Você deseja que o seu túnel SSH seja gerenciado pelo SO subjacente, não pelo seu aplicativo. Desta forma, ele pode ser delegado por um SysAdmin (de preferência usando uma ferramenta de gerenciamento de configuração).

Um aplicativo desenvolvido não deve se preocupar com o gerenciamento de tarefas do sistema, como a persistência de um túnel para o back-end.

Isso se alinha ao método "12 Factor App" de tratamento de 'serviços de apoio':

The code for a twelve-factor app makes no distinction between local and third party services. To the app, both are attached resources, accessed via a URL or other locator/credentials stored in the config. A deploy of the twelve-factor app should be able to swap out a local MySQL database with one managed by a third party (such as Amazon RDS) without any changes to the app’s code.

Então, se a sua base de código tem algo relacionado à criação de um túnel SSH ou à persistência da conexão do sistema, você está fazendo errado;)

    
por 11.04.2018 / 14:57