java tomcat deployment production dropwizard

java - Cómo implementar una aplicación dropwizard



tomcat deployment (3)

Después de ejecutar el paquete mvn de su directorio de origen, maven crea dicho archivo jar en el directorio de destino.

Simplemente suba este archivo jar a un directorio de su agrado en el servidor, digamos / opt / myapplication /.

El archivo jar se puede ejecutar en el servidor con java -jar JARFILE , asegúrese de tener instalado java allí. Eso es todo, básicamente.

Ahora cuando ejecuta esto en producción, desea que el proceso sea supervisado (y se reinicie si falla) y se inicia automáticamente al arrancar. Para esto, busque en el sistema de inicio de sus servidores (systemd fue mencionado anteriormente para las distribuciones de Linux que lo soportan, pero en las versiones actuales de Debian / Ubuntu usted tiene ATM aún otros mecanismos de arranque, es probable que necesite escribir un script de inicio para / etc / init.d / myapplication).

Los controles de estado son, como se mencionó antes, integrados en la aplicación dropwizard, simplemente solicita la url de control de estado de forma regular. En entornos profesionales, debe tener una herramienta como nagios que pueda señalar a la URL.

Leí algunos comentarios sobre la compilación de las aplicaciones de Dropwizard: [1] "Dropwizard está diseñado para ejecutarse como un JAR, no como un archivo WAR". y [2] "No se puede hacer esto. Dropwizard incrusta Jetty. Debería considerar el uso de Jersey como una aplicación web estándar", entonces, mis preguntas son:

1 - ¿Cómo implementar un archivo jar en un entorno de producción?

2 - ¿Cómo administraré el servicio? por ejemplo, ¿hay alguna manera de controlar lo saludable de la aplicación? si la aplicación falla, ¿cómo puedo reiniciarla de nuevo automáticamente?

[1] ¿Cómo crear una guerra desde la aplicación dropwizard? [2] Dropwizard en contenedor de tomcat


Puede usar herramientas como runit o systemd para administrar su aplicación dropwizard en Linux. Pueden hacer cosas como asegurarse de que se inicie cuando el sistema se inicie y puede ayudar a detectar fallas. Hay un poco de scripting involucrado.

Puede señalar una herramienta de supervisión en la URL de comprobación de la salud de su aplicación para enviar alertas cuando esté inactivo.

Para la implementación, prefiero empaquetar aplicaciones utilizando el formato de paquete del sistema, .deb (sistemas basados ​​en Debian, incluido Ubuntu) o .rpm (sistemas basados ​​en RedHat). Utilice el generador de paquetes fpm para crearlo, e incluya sus archivos runit (o lo que sea) y scripts para copiar el archivo jar en algún lugar del sistema de destino. Si tiene un repositorio privado de paquetes, puede incluir compilaciones de su aplicación y la instalación se convierte en una cuestión de "apt-get install myapp" o "yum install myapp". De lo contrario, suelte el paquete en su servidor de destino y ejecute "rpm -i myapp.rpm" o similar.


Si su servidor es unix, puede crear paquetes fpm para instalar su servicio en el servidor. Simplemente crea fpm, copia al servidor e instálalo.

O use fabric ( http://www.fabfile.org/ ).