2011-10-09 17 views
6

मैं एक बादल आधारित (एडब्ल्यूएस EC2) पीएचपी वेब अनुप्रयोग पर काम कर रहा है, और मैं एक मुद्दे के साथ संघर्ष कर रहा हूँ जब यह कई सर्वरों के साथ काम करने के लिए आता है (सभी एक एडब्ल्यूएस लचीला के तहत करने के लिए सामग्री भार संतुलन)। एक सर्वर पर, जब मैं नवीनतम फाइल अपलोड करता हूं, तो वे तुरंत पूरे एप्लिकेशन में उत्पादन में होते हैं। लेकिन एकाधिक सर्वरों का उपयोग करते समय यह सच नहीं है - हर बार जब आप कोई परिवर्तन करते हैं, तो आपको उनमें से प्रत्येक को फ़ाइलों को अपलोड करना होगा। यह ठीक से काम कर सकता है अगर आप अक्सर कुछ भी अपडेट नहीं करते हैं, या यदि आपके पास सिर्फ एक या दो सर्वर हैं। लेकिन क्या होगा यदि आप दस सप्ताह में एक सप्ताह में सिस्टम को कई बार अपडेट करते हैं?तैनात एकाधिक सर्वर (EC2)

क्या मैं के लिए देख रहा हूँ एक तरह से हमारे देव या परीक्षण सर्वर से परिवर्तन 'के लिए प्रतिबद्ध' के लिए और यह हमारे उत्पादन सर्वर के सभी के लिए बाहर तुरंत 'धक्का दिया' है। आदर्श रूप में अद्यतन एक समय (भले ही यह सिर्फ एक दूसरे या दो प्रति सर्वर लेता है) में केवल एक ही सर्वर पर लागू किया जाएगा तो ईएलबी इसे करने के लिए यातायात नहीं भेजेंगे, जबकि फ़ाइलों को बदल रहे हैं किसी भी उत्पादन यातायात हो सकता है कि बाधित करने के लिए इतनी के रूप में नहीं ईएलबी के लिए बहती है। ऐसा करने का सबसे अच्छा तरीका क्या है? मेरे विचारों में से एक देव सर्वर पर एसवीएन का उपयोग करना होगा, लेकिन यह वास्तव में सर्वर को 'धक्का' नहीं देता है। मैं एक ऐसी प्रक्रिया की तलाश में हूं जो अद्यतन करने के लिए कुछ सेकंड लेता है और बाद में इसे सर्वर पर लागू करना शुरू कर देता है। साथ ही, आप में से उन लोगों के लिए जो एडब्ल्यूएस से परिचित हैं, नवीनतम अपडेट के साथ एएमआई को अपडेट करने का सबसे अच्छा तरीका क्या है ताकि ऑटो-स्केलर हमेशा सॉफ्टवेयर के नवीनतम संस्करण के साथ नए उदाहरण लॉन्च करे?

ऐसा करने के अच्छे तरीके होने चाहिए ... वास्तव में फेसबुक, Google, ऐप्पल, अमेज़ॅन, ट्विटर इत्यादि जैसी तस्वीरों को चित्रित नहीं कर सकते हैं और सैकड़ों या हजारों सर्वरों को मैन्युअल रूप से अपडेट कर सकते हैं और एक-एक करके एक बदलाव करें।

आपकी मदद के लिए अग्रिम धन्यवाद। मुझे उम्मीद है कि हम इस समस्या का कुछ समाधान ढूंढ सकते हैं ...। पिछले दिन से कम से कम 100 Google खोजों को कम से कम 100 Google खोजों को इस समस्या को हल करने में सबसे अधिक असफल साबित हुआ है।

एलेक्स

+0

यह वही प्रश्न है: http://stackoverflow.com/questions/6730360/best-way-to-load-php-classes-in-ec2-instancestore-ebs-or-s3 – andig

उत्तर

0

KwateeSDCM अच्छी तरह से देखने लो। यह आपको सर्वर-विशिष्ट पैरामीटर को कस्टमाइज़ करने के लिए, किसी भी सर्वर पर फ़ाइलों और सॉफ़्टवेयर को तैनात करने में सक्षम बनाता है और यदि आवश्यक हो, तो। संभव है कि अनेक बिल्ला उदाहरणों पर एक के बारे में deploying a web application पद है, लेकिन यह भाषा नास्तिक है और बस के रूप में अच्छी तरह से जब तक आप ssh अपने AWS सर्वर पर सक्षम किया गया है PHP के लिए काम करेंगे।

1

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

  1. हम एक वेब पर स्रोत कोड और तैनाती को अद्यतन करने के Phing का उपयोग करें:

    हम मूल रूप से यहाँ सब तैनाती परिवर्तन हम क्या करना चाहते हैं पूरा नहीं किया है, लेकिन हम अपने उत्पादन परिवेश में नए संस्करणों को तैनात है सर्विस। हमने एक ऐसा कार्य बनाया जो एक गिट पुल निष्पादित करता है और डेटाबेस परिवर्तन चलाता है (डीबीडीओफ़ फ़िंग कार्य)। http://www.phing.info/trac/

  2. हम एक खोल स्क्रिप्ट है कि Phing कार्यान्वित लिखा था और हम इसे एक स्क्रिप्ट के रूप में scalr को जोड़ा गया। Scalr स्क्रिप्ट प्रबंधित करने के लिए एक अच्छा इंटरफ़ेस है।

    #!/bin/sh 
    
    cd /var/www 
    phing -f /var/www/build.xml -Denvironment=production deploy 
    
  3. scalr एक विशिष्ट खेत में सभी उदाहरणों पर आलेख निष्पादित करने का विकल्प होता है, इसलिए प्रत्येक रिलीज हम सिर्फ GitHub में मास्टर शाखा करने के लिए धक्का और scalr स्क्रिप्ट को निष्पादित।

हम एक जीथब हुक बनाना चाहते हैं जो मास्टर शाखा में धक्का देते समय स्वचालित रूप से तैनात होता है। स्केलर में एपीआई है जो स्क्रिप्ट निष्पादित कर सकती है, इसलिए यह संभव है।

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