Capistrano für Java?
-
06-07-2019 - |
Frage
Ich bin ein großen Fan von Capistrano, aber ich brauche eine automatisierte Deployment-Skript für einen Java-only-Shop zu entwickeln. Ich habe sah Ant und Maven und sie scheinen nicht gut zu Remote-Administration ausgerichtet werden, um die Art und Weise Capistrano ist - sie scheinen viel stärker auf den Aufbau einfach und Verpackungsanwendungen. Gibt es ein besseres Werkzeug da draußen?
Lösung
Ich glaube nicht, dass es eine Capistrano-ähnliche Anwendung ist für Java-Web-Anwendungen, aber das sollte man nicht wirklich verhindern, indem es (oder Alternativen wie Stoff) Ihre Anwendungen bereitstellen. Wie Sie bereits gesagt haben, Ant ist ein Ersatz für GNU Make während Maven primäre eine buildout / dependency-Management-Anwendung ist.
Da Java Web-Anwendungen dank der .war Behälter sind weniger abhängig von externen Bibliotheken, können Sie (je nach Anwendungsserver) machen eine Anwendung so einfach wie die Bereitstellung eines einfachen HTTP-PUT-Anfrage ausgeführt wird.
Wenn Sie jedoch zusätzliche Schritte erfordern, Stoff hat sehr gut funktioniert für mich so weit und ich nehme an, dass Capistrano auch Operationen generic-Shell-Befehl setzen und erhalten bietet. Also ich würde nicht für eine Alternative zu lange suchen, wenn, was Sie bereits haben bereits funktioniert: -)
Andere Tipps
Ich denke, dass Control (siehe: http://controltier.org ) ist das, was Sie suchen. Obwohl braucht Control nicht ausschließlich verwendet werden für Java entfaltet.
Sehen Sie diesen Auszug aus der Dokumentation (siehe: Steuer Tier-Dokumentation ):
Ist Control die gleiche wie Capistrano, Stoff oder Func?
In ihren grundlegenden Konzepten, Control, Capistrano, Stoff und Func sind ähnliche Werkzeuge. Heiraten auf jeden Fall nennen Capistrano, Stoff, und Func Grundbefehls Dispatching Frameworks.
Allerdings Controltier, von Design, geht weit darüber hinaus, was diese andere Werkzeuge zur Verfügung stellen. die Automatisierung Bibliotheken und die Web-basierte Tools, die Control bietet ausgelegt sind, lassen Sie die volle Automatisierungssysteme bauen bereit für die Nutzung durch Unternehmen oder groß angelegtes Web-Operations-Team. Es gibt auch Funktionen wie Fehlerbehandlung und zentrale Protokollierung dass sind einfach nicht in den Geltungsbereich anderer Befehl Dispatching-Tools.
Auch ist Capistrano ein Ruby-basiertes Tool das ist in erster Linie konzentriert sich auf die Bedürfnisse die Ruby on Rails-Community. Controltier, während in Java geschrieben, ist es nicht erforderlich zu wissen, Java benutze es. In der Tat können Sie verwenden, was auch immer Skriptsprachen Sie sind komfortabel mit (einschließlich Rubin). Control versucht als Sprache zu sein und Plattform (Linux, Unix, Windows, etc ..) neutral wie möglich.
Bei meiner Arbeit verwenden wir ausschließlich Capistrano alle unsere Java-Anwendungen zu implementieren. Es ist auf jeden Fall möglich.
Ich verwende ein Capistrano Rezept dspace (einen Java-Webapp, die wiederum Maven verwendet) für den Aufbau von Quelle: Installation dspace mit Capistrano
Capistrano konnten alle grundlegenden Web-Anwendung bereitstellen. Deployments für die andere Sprache sind fast gleich:
- Update-Code
- drücken Sie den Code auf dem Produktionsserver
- bereiten die Konfigurationsdateien für diese Bereitstellung
- restart-Server. (Dünn, nginx, tomcat)
in meiner Firma verwenden wir Capistrano java, Vuejs, PHP, Ruby, Python-Anwendungen zu implementieren.
Was interessant ist, dass Capistrano Idee eines Repo geht davon aus, dass Sie mit einem SCM (Source Control Manager) zu tun hat. Die Struktur auf dem Server und die damit verbundenen Versionierung der Anwendung arbeitet auf der Anwendungsquelle. Dies macht Sinn, für eine interpretierte Sprache sein.
In einer kompilierten Sprache wie Java, obwohl, kommt die Versionierung und Verzweigung vor der Bereitstellung und der zum Zeitpunkt der Anwendung kompiliert und gebaut wird das Quellkontrollsystem bereits hinter sich gelassen und was ergibt, ist ein versioniert Glas oder Teer enthalten die Anwendung. Typischerweise diese Tarball (jar + config) auf eine Maven Artefakt-Repository veröffentlicht wird wie Nexus oder Artifactory.
Überraschenderweise dieses Artefakt Repo-Karten auf den Capistrano Repo gut. Anstelle des SCM können wir diese Tarball als SCM (der Quelle werden versioniert) behandeln. In diesem Sinne habe ich implementiert eine Capistrano SCM-Plugin für Maven Artefakt repos . Es ist neu, aber funktioniert ziemlich gut.
Es vereint unsere Ruby und Java-Projekte auf einem Werkzeug, und was am wichtigsten ist, es bringt die Leistung von Capistrano des SSHKit und Harke in unseren Java-Projekten.