Bereitstellungsstrategien für Go-Dienste?

8

Ich schreibe einige neue Webdienste in Go.

Welche Bereitstellungsstrategien kann ich verwenden, unabhängig von der Zielplattform? Ich entwickle zum Beispiel auf einem Mac, aber auf den Staging- / Produktionsservern läuft Linux.

Gibt es einige vorhandene Bereitstellungstools, die ich für diese Go-Unterstützung verwenden kann? Wenn nicht, was kann ich tun, um den Prozess zu optimieren?

Ich benutze LiteIDE für die Entwicklung. Gibt es eine Möglichkeit, LiteIDE in den Bereitstellungsprozess einzubinden?

    
Daniele B 04.08.2013, 01:40
quelle

5 Antworten

8

Leider, da Go so eine junge Sprache ist, gibt es noch nicht viel, oder zumindest waren sie schwer zu finden. Ich wäre auch an der Entwicklung solcher Tools für Go interessiert.

Was ich herausgefunden habe ist, dass einige Leute es selbst gemacht haben, oder sie adaptiert andere Werkzeuge, wie Capistrano , um es für sie zu tun.

Höchstwahrscheinlich ist es etwas, was Sie selbst tun müssen. Und Sie müssen sich nicht auf Shell-Skripte beschränken - tun Sie es in Go! Tatsächlich werden viele der Go-Tools in Go geschrieben. Sie sollten das Kompilieren auf dem Zielsystem vermeiden, da es in der Regel eine schlechte Übung ist, Build-Tools in Ihrem Produktionssystem zu verwenden. Go macht es sehr einfach, Binärdateien zu kompilieren. Zum Beispiel kompilieren Sie so für ARM & amp; Linux:

%Vor%

Eine Sache, die du tun kannst, ist, auf den # go-nuts freenode IRC-Kanal zu springen oder dich dem Go Mailingliste und frage andere Gophers, was sie tun.

    
Luke 05.08.2013, 05:31
quelle
1

Capistrano klingt nach einer guten Idee für den Einsatz allein. Sie können auch eine Kreuzkompilierung durchführen, wie Lukas es vorgeschlagen hat. Beides wird gut funktionieren.

Allgemeiner gesagt ... Ich bin auch irgendwie zwischen OS X (Entwicklung) und Linux (Deployment) hin- und hergerissen und in der Tat habe ich einfach in einer virtuellen Maschine über VirtualBox und Vagrant entwickelt. Ich benutze TextMate 2 für die Textbearbeitung, aber die Installation vieler Entwicklungstools auf einem Mac ist nur ein wichtiger PITA und ich bin einfach wohler damit, dass Debian oder ähnliches irgendwo im Hintergrund läuft. Der Bonus ist - diese virtuelle Umgebung kann die Implementierungsumgebung widerspiegeln, so dass ich Überraschungen vermeiden kann, wenn ich meinen Code unabhängig von der Sprache bereitstellen muss.

    
Marcin Wyszynski 09.08.2013 20:32
quelle
0

Ich habe es selbst nicht versucht, aber es scheint, dass Sie cross kompilieren golang (entweder mit goxc oder Dave Cheney's golang-crosscompile ), wenn auch mit einigen Einschränkungen.

Aber wenn Sie die Umgebung mit der Produktion abstimmen müssen, was wahrscheinlich die meiste Zeit ist, ist es am sichersten zu gehen, wie Marcin vorgeschlagen hat.

Sie können einige vordefinierte VirtualBox-Images auf Ссылка finden, obwohl die Erstellung eines eigenen Images ziemlich einfach ist.

    
widyakumara 13.08.2013 10:37
quelle
0
  

Was kann ich tun, um den Prozess zu optimieren?

Die Cross-Compilation-Idee sollte mit Go 1.5 (Q3 2015) noch ansprechender sein, da Dave Cheney Details in "< a href="http://dave.cheney.net/2015/03/03/cross-compilation-just-got-a-whole-lot-better-in-go-1-5"> Cross Compilation hat gerade eine viel besser in Go 1.5 ":

Vorher:

  

Für eine erfolgreiche Kreuzkompilierung benötigen Sie

     
  • Compiler für die Zielplattform, wenn sie sich von Ihrer Hostplattform unterscheiden, dh Sie befinden sich auf darwin / amd64 (6g) und Sie wollen für linux / arm (5g) kompilieren.
  •   
  • eine Standardbibliothek für die Zielplattform, die einige Dateien enthielt, die an dem Punkt generiert wurden, an dem Ihre Go-Distribution erstellt wurde.
  •   

Nach (Go 1.5 +):

  

Mit dem Plan, den Go-Compiler nach Go zu übersetzen , der in Version 1.5 zum Tragen kommt, ist das erste Problem jetzt gelöst.

%Vor%
  

build for darwin / 386

%Vor%
  

Oder build für linux / arm

%Vor%
  

Ich entwickle auf einem Mac, aber auf den Staging / Produktionsservern läuft Linux.

Wenn man den Compiler für Go in Go betrachtet, sollte der Prozess zur Erstellung einer ausführbaren Linux-Datei von Ihrem Mac aus einfach sein.

    
VonC 03.03.2015 13:32
quelle
-1

Ich bin jetzt vielleicht etwas spät dran, aber ich habe kürzlich einen Blogeintrag darüber geschrieben, wie ich Go mithilfe von Capistrano bereitstellen und auf meinem lokalen Rechner kompilieren konnte.

Geben Sie ein los wenn Sie noch interessiert sind: Ссылка

    
alediaferia 18.06.2016 20:52
quelle