2014-10-02 17 views
9

Ho letto alcuni commenti sulla build di applicazioni dropwizard: [1] "Dropwizard è progettato per essere eseguito come JAR, non come file WAR." e [2] "Non puoi farlo: Dropwizard incorpora Jetty. Dovresti cercare di usare semplicemente Jersey come applicazione web standard.", quindi le mie domande sono:Come distribuire un'applicazione dropwizard

1 - Come distribuire un file jar in un ambiente di produzione?

2 - Come gestirò il servizio? per esempio, c'è un modo per monitorare la salute dell'applicazione? se l'applicazione cade, come posso riavviarlo automaticamente?

[1] How to create a war from dropwizard app? [2] Dropwizard in tomcat container

risposta

3

È possibile utilizzare strumenti come runit o systemd per gestire la vostra applicazione dropwizard su Linux. Possono fare cose come assicurarsi che inizi quando il sistema si avvia e può aiutare a rilevare i guasti. C'è un po 'di scripting coinvolti.

È possibile puntare uno strumento di monitoraggio sull'URL healthcheck della propria app per inviare avvisi quando è inattivo.

Per la distribuzione, preferisco il pacchetto di app utilizzando il formato di impacchettamento del sistema, .deb (sistemi basati su Debian, incluso Ubuntu) o .rpm (sistemi basati su RedHat). Usa il generatore di pacchetti fpm per crearlo e includi i tuoi file runit (o qualsiasi altra cosa) e gli script per copiare il file jar da qualche parte sul sistema di destinazione. Se hai un repository di pacchetti privato, puoi inserire build della tua app e l'installazione diventa una questione di "apt-get install myapp" o "yum install myapp". Altrimenti, rilascia il pacchetto sul server di destinazione ed esegui "rpm -i myapp.rpm" o simile.

+1

Se sei su Ubuntu, Jamie Furness ha scritto un ottimo plugin per maven [dropwizard-debpkg-maven-plugin] (https://github.com/reines/dropwizard-debpkg-maven-plugin) che può pacchettizzare il tuo app e config per te come file .deb e crea gli script init & upstart appropriati per te. –

+0

Grazie, ottima soluzione! – LucaA

2

Dopo aver eseguito il pacchetto mvn della directory di origine, il suddetto file jar viene creato nella directory di destinazione da maven.

Basta caricare questo file jar in una directory di tuo gradimento sul server, ad esempio/opt/myapplication /.

Il file jar può essere eseguito sul server con java-jar JARFILE, assicurarsi di aver installato java lì. Questo è tutto, in fondo.

Ora quando si esegue questo in produzione, si desidera che il processo sia supervisionato (e riavviato se non riesce) e avviato automaticamente all'avvio. Per questo, controlla il tuo sistema di avvio del server (per le distribuzioni Linux che lo supportano è stato menzionato systemd, ma sulle attuali versioni di debian/ubuntu hai ancora altri meccanismi di avvio di ATM, probabilmente devi scrivere uno script di avvio per/etc/init.d/myapplication).

I controlli di integrità sono - come accennato prima - integrati nell'app Dropwizard, è sufficiente richiedere l'url di controllo sanitario su base regolare. In ambienti professionali, dovresti avere uno strumento come nagios che potresti indirizzare all'URL.

0

Se il server è unix, è possibile creare pacchetti fpm per installare il servizio sul server. Basta compilare fpm, copiare sul server e installarlo.

Oppure utilizzare tessuto (http://www.fabfile.org/).