2013-08-04 8 views
8

मैं गो में कुछ नई वेब सेवाएं लिख रहा हूं।गो सेवाओं के लिए परिनियोजन रणनीतियों?

लक्षित प्लेटफॉर्म पर ध्यान दिए बिना, मैं कुछ तैनाती रणनीतियों का उपयोग कैसे कर सकता हूं? उदाहरण के लिए, मैं मैक पर विकास कर रहा हूं, लेकिन स्टेजिंग/उत्पादन सर्वर लिनक्स चलाएंगे।

क्या कुछ मौजूदा तैनाती उपकरण हैं जिनका उपयोग मैं उस समर्थन का उपयोग कर सकता हूं? यदि नहीं, तो प्रक्रिया को सुव्यवस्थित करने के लिए मैं कुछ चीजें क्या कर सकता हूं?

मैं विकास के लिए लाइटिड का उपयोग करता हूं। क्या तैनाती प्रक्रिया में लाइटिड को हुक करने का कोई तरीका है?

उत्तर

8

दुर्भाग्य से चूंकि ऐसी युवा भाषा अभी तक मौजूद नहीं है, या कम से कम उन्हें ढूंढना मुश्किल हो गया है। मुझे गो के लिए ऐसे उपकरणों के विकास में दिलचस्पी होगी।

मुझे जो मिला है वह यह है कि कुछ लोग इसे स्वयं कर रहे हैं, या उनके पास adapted other tools, such as Capistrano है, ताकि उनके लिए ऐसा किया जा सके।

अधिकतर ऐसा कुछ है जो आपको स्वयं करना होगा। और आपको खुद को खोल स्क्रिप्ट पर सीमित नहीं करना है - इसे गो में करें! वास्तव में गो गो टूल्स गो में लिखे गए हैं। आपको लक्ष्य प्रणाली पर संकलन से बचना चाहिए क्योंकि यह आमतौर पर आपके उत्पादन प्रणाली पर निर्माण उपकरण बनाने का एक बुरा अभ्यास है। जाओ संकलन बाइनरी पार करना वास्तव में आसान बनाता है। उदाहरण के लिए, यह आप एआरएम & लिनक्स के लिए कैसे संकलन है:

GOARCH=arm GOOS=linux go build myapp 

एक बात तुम कर सकते हो #go-nuts freenode IRC channel पकड़नी है या Go mailing list में शामिल होने और अन्य गोफ़र्स वे क्या कर रहे पूछना है।

1

Capistrano अकेले तैनाती के लिए एक अच्छा विचार की तरह लगता है। ल्यूक के सुझाव के रूप में आप क्रॉस-संकलन भी कर सकते हैं। दोनों ठीक काम करेंगे।

अधिक आम तौर पर हालांकि ... मैं ओएस एक्स (विकास) और लिनक्स (तैनाती) के बीच भी टूटा हुआ हूं और वास्तव में मैं केवल वर्चुअलबॉक्स और वाग्रेंट के माध्यम से वर्चुअल मशीन में विकसित हुआ हूं। मैं पाठ संपादन के लिए टेक्स्टमैट 2 का उपयोग कर रहा हूं लेकिन मैक पर कई विकास उपकरण स्थापित करना सिर्फ एक प्रमुख पिटा है और मैं डेबियन या पृष्ठभूमि में कहीं भी चलने की तरह अधिक आरामदायक हूं। बोनस है - यह वर्चुअल वातावरण तैनाती के माहौल को दर्पण कर सकता है, इसलिए जब मैं अपना कोड तैनात करता हूं, तो जो भी भाषा है, मैं आश्चर्य से बच सकता हूं।

0

मैं इसे अपने आप प्रयास नहीं किया है, लेकिन ऐसा लगता है कि आप कर सकते cross compile golang (या तो goxc या डेव चेनी के golang-crosscompile के साथ), कुछ कैविएट्स के साथ यद्यपि।

लेकिन यदि आपको उत्पादन के साथ पर्यावरण से मिलान करने की आवश्यकता है, जो शायद आपको अधिकतर समय चाहिए, तो मार्किन ने सुझाव दिया है कि यह सबसे सुरक्षित है।

आप http://virtualboxes.org/images/ पर कुछ प्रीबिल्ट वर्चुअलबॉक्स छवियां पा सकते हैं हालांकि स्वयं को बनाना बहुत आसान है।

0

प्रक्रिया को सुव्यवस्थित करने के लिए मैं कुछ चीजें क्या कर सकता हूं?

क्रॉस-संकलन विचार गो 1 के साथ और अधिक आकर्षक होना चाहिए।में "Cross compilation just got a whole lot better in Go 1.5" 5 (Q3 2015), Dave Cheney के रूप में विवरण:

से पहले:

सफल पार संकलन के लिए आप लक्ष्य मंच के लिए

  • compilers की आवश्यकता होगी अगर वे अपने से मतभेद मेजबान मंच, यानी आप डार्विन/एमएम 64 (6 जी) पर हैं और आप लिनक्स/बांह (5 जी) के लिए संकलित करना चाहते हैं।
  • लक्ष्य प्लेटफार्म के लिए एक मानक लाइब्रेरी, जिसमें आपके गो वितरण के बिंदु पर उत्पन्न कुछ फाइलें शामिल थीं।

के बाद (जाओ 1.5+):

Go compiler into Go 1,5 रिहाई पहला मुद्दा अब हल हो गई है में उपयोग करने के लिए आ रहा अनुवाद करने के लिए योजना के साथ

। डार्विन के लिए

package main 

import "fmt" 
import "runtime" 

func main() { 
     fmt.Printf("Hello %s/%s\n", runtime.GOOS, runtime.GOARCH) 
} 

निर्माण/386

% env GOOS=darwin GOARCH=386 go build hello.go 
# scp to darwin host 
$ ./hello 
Hello darwin/386 

या लिनक्स के लिए निर्माण/हाथ

% env GOOS=linux GOARCH=arm GOARM=7 go build hello.go 
# scp to linux host 
$ ./hello 
Hello linux/arm 

मैं मैक पर विकास कर रहा हूं, लेकिन स्टेजिंग/उत्पादन सर्वर लिनक्स चलाएंगे।

गो के लिए कंपाइलर को ध्यान में रखते हुए, आपके मैक से निष्पादन योग्य लिनक्स उत्पन्न करने की प्रक्रिया सरल होनी चाहिए।

-1

मुझे थोड़ा देर हो सकती है लेकिन मैंने हाल ही में एक ब्लॉग पोस्ट लिखा है कि मैं कैपिस्ट्रानो का उपयोग करके गो को कैसे तैनात करने में कामयाब रहा, मेरी स्थानीय मशीन पर क्रॉस-कंपाइलिंग।

इसे एक बार जाना अगर आप अभी भी रुचि रखते हैं: http://thread0.me/2016/03/deploy-go-with-capistrano/

+0

लिंक टूटा। 502 खराब गेटवे – crantok

संबंधित मुद्दे