
Ressourcen teilen
Mein erstes Beispiel für einen Snap-Build ist ein von mir entwickelter Java-Server. Ich habe es geschafft, einen Snap zu erstellen, der die JRE, meinen Server und den Dienststart enthält. Alles funktioniert einwandfrei.
Die Snap-Datei ist 106 MB groß und besteht hauptsächlich aus Java. Ich habe mich gefragt, ob es eine Möglichkeit gibt, die Java-Installation zwischen Servern zu teilen? So dass meine Snap-Dateien sehr klein werden und nur spezifischen Code für meine Installation enthalten?
In meinem Kopf würde das ungefähr so aussehen:
Snap 1: Ein Snap, der die Java-Laufzeit enthält und Java für andere zur Nutzung verfügbar macht. Ich glaube, dafür werden Slots verwendet, aber da bin ich mir nicht 100 % sicher. Snap 2: Server A, der nur meine Jars enthält und die Java-Laufzeit von Snap 1 verwendet. Snap 3: Wie Snap 2, aber mit anderen Jars. Ich würde Snap 2 und 3 von Snap 1 abhängig machen, sodass, wenn jemand Snap 2 installiert, automatisch Snap 1 installiert wird. Wenn Snap 1 installiert ist, wird das übersprungen und einfach verwendet?
Ich bin nicht sicher, ob dies unterstützt wird oder ob es überhaupt so funktionieren soll.
Antwort1
Ja, bald wird es einen Mechanismus geben, mit dem Sie Dateien in einem Ihrer Snaps mit anderen Snaps, die Sie erstellt haben, teilen können. Achten Sie in den nächsten Wochen auf die „Inhaltsschnittstelle“.
Es wird auch Delta-Updates für Snaps geben, die den Upload/Download für einen bestimmten Snap reduzieren, aber das ist eine andere Sache.
Antwort2
Aus der Antwort von @didrocks:
Dieser Mechanismus ist derzeit nicht verfügbar (wir führen möglicherweise in Zukunft einen ein, mit den 3 getrennten Snaps, wie Sie vermuten, aber derzeit ist dieser nicht verfügbar). Eine andere Option, die Sie in Betracht ziehen können, ist, wenn Snap 2 und 3 eng gekoppelt sind. Sie können einen Snap haben, der die JVM und Ihre 2 Dienste enthält. Dann eine Konfiguration, um auszuwählen, was gestartet werden soll (Dienst 1, Dienst 2 oder beide).
Aktualisieren:
Ich sah gerade:Erhalten Snap-Pakete differenzielle (Delta-)Updates?was das Problem meiner Meinung nach im Wesentlichen löst. Meine Sorge war, dass ich die JRE jedes Mal neu verpacken müsste, wenn ich eine neue Version meiner Software veröffentliche. Mit einem Delta-Update (bei dem ich noch herausfinden muss, wie das geht) verschwindet dieses Problem. Ich bin froh, wenn ein Paket seine eigene JRE hat, während es diese wiederverwendet.
Nochmals editieren: Zum jetzigen Zeitpunkt (20. Juni 2016) sind die Delta-Updates noch nicht veröffentlicht, es wird aber experimentiert und sie werden wahrscheinlich bald kommen. Quelle: #snappy auf freenode