मुझे यह जानने में दिलचस्पी है कि लोग अपने केकेपीएचपी अनुप्रयोगों को कैसे तैनात कर रहे हैं। मुझे हाल ही में कुछ फ्रीलांस केकपीएचपी विकास करने के बारे में संपर्क किया गया है, जो मेरे लिए प्रस्तुति स्तर में कुछ अनुभव प्राप्त करने का एक अच्छा अवसर होगा (मेरे एफटी नौकरी में मैं व्यवसाय और दृढ़ता के स्तर में जावा ईई विकास करता हूं)।केकेपीएचपी आवेदन परिनियोजन
मेरे विचार थोड़ा इस बिंदु पर बेतरतीब हैं, लेकिन मैं निम्न परिदृश्यों पर विचार कर रहा हूँ:
डेवलपर एक IDE में काम कर रहे एक फ़ाइल है, जो स्वचालित रूप से है (पृष्ठभूमि में) को संशोधित करता है एक साथ सिंक्रनाइज़ विकास वेब सर्वर स्थानीय रूप से चल रहा है। यह परिदृश्य यह है कि मैं आदर्श रूप से विकास कैसे करना चाहूंगा ... परिवर्तन करें और बिना किसी अतिरिक्त कदम के कार्रवाई में बदलाव को देखने में सक्षम हो।
आईडीई में काम कर रहे डेवलपर एक फ़ाइल को संशोधित करता है, जो स्वचालित रूप से (पृष्ठभूमि में) एक विकास वेब सर्वर दूरस्थ रूप से चल रहे एफ़टीपी के माध्यम से सिंक्रनाइज़ होता है। यह परिदृश्य तब उपयोगी होगा जब मैं अपनी नेटबुक का उपयोग कर यात्रा कर रहा हूं (जो मेरे आईडीई को धीरे-धीरे चलाता है क्योंकि यह मिश्रण में वेब सर्वर के बिना है)।
- व्यवस्थापक एक कोड कोड रिपोजिटरी से स्थानीय रूप से चल रहे वेब सर्वर पर केकपीएचपी एप्लिकेशन का नवीनतम संस्करण तैनात करता है।
- व्यवस्थापक एक स्रोत कोड भंडार से एफ़टीपी के माध्यम से एक वेब सर्वर पर केकपीएचपी अनुप्रयोग के नवीनतम संस्करण को तैनात करता है।
- व्यवस्थापक एक कोड कोड रिपोजिटरी से स्थानीय रूप से चल रहे वेब सर्वर पर केकपीएचपी एप्लिकेशन का पुराना संस्करण तैनात करता है।
- व्यवस्थापक एफ़टीपी के माध्यम से एक वेब सर्वर पर एक स्रोत कोड भंडार से एक केकपीएचपी आवेदन के पुराने संस्करण को तैनात करता है।
विकास उपकरण जिन्हें मैं सबसे अधिक आरामदायक हूं, ग्रहण, चींटी और सबवर्जन हैं। मेरी वरीयता उन लोगों का उपयोग जारी रखना है, लेकिन अगर ऐसा करना स्विचिंग पर विचार करेगा तो परिदृश्यों को हासिल करना आसान हो जाता है।
सवाल:
- इन उचित परिदृश्यों हैं, या मैं विकास और एक अलग तरह से तैनाती के बारे में सोचने की जरूरत क्या करना चाहिए?
- कौन से टूल्स मौजूद हैं जो विकास/तैनाती को सरल बनाने में मदद कर सकते हैं? क्या मेरे लिए चींटी, स्क्रिप्ट इत्यादि के साथ अपना खुद का समाधान रोल करना बेहतर होगा?
- हम तैनाती के दौरान डेटाबेस समस्याओं को कैसे संभालेंगे? किसी विशेष परिनियोजन के लिए निर्दिष्ट डेटाबेस कनेक्शन गुण कैसे हैं? क्या होगा यदि केकेपीएचपी अनुप्रयोग के किसी नए संस्करण (या पुराने संस्करण पर वापस लौटना) को अपडेट करना डेटाबेस स्कीमा और डेटा माइग्रेशन में बदलाव की आवश्यकता है?
- हम उन संपत्तियों को कैसे कॉन्फ़िगर करते हैं जो तैनाती के बीच भिन्न होते हैं? उदाहरण के लिए विकास के दौरान उपयोग किए गए डीबग और लॉगिंग स्तरों में वृद्धि, विकास के दौरान भुगतान गेटवे पर भुगतान को रोकने से रोकने के लिए
- एक तैनाती को अपग्रेड करने या वापस करने से ग्राहकों को कैसे प्रभावित किया जाता है? उदाहरण के लिए यदि वे एक लेनदेन के बीच में हैं (उदाहरण के लिए एक उत्पाद खरीदना)?
- हम विभिन्न केकपीएचपी इंस्टॉलेशन प्रकारों को कैसे प्रबंधित करते हैं? स्थापना प्रकार के आधार पर फ़ाइलों को विभिन्न स्थानों में स्थापित करने की आवश्यकता हो सकती है। हम कैसे जान सकते हैं कि फाइलें कहां स्थापित की जानी चाहिए? केकेपीएचपी पुस्तक विकास, उत्पादन और उन्नत प्रतिष्ठानों का वर्णन करती है।
एक पोस्ट में इतने सारे प्रश्नों के लिए खेद है, लेकिन मुझे लगता है कि प्रश्न सभी संबंधित हैं और सोचा है कि चर्चा एक ही स्थान पर रखने के लिए उपयोगी होगी।
वैकल्पिक डीबी माइग्रेशन स्क्रिप्ट यहां पाई जा सकती हैं: http://stackoverflow.com/questions/2522372/good-db-migrations-for-cakephp – deizel