2008-10-19 21 views
5

अधिकांश पायथन ढांचे में किसी प्रकार का विकास वेबसर्वर होगा जिसमें एक चेतावनी होगी कि यह उत्पादन सर्वर के रूप में उपयोग के लिए नहीं है। वे अपने उत्पादन समकक्षों से कितना अलग होते हैं?विकास वेबसर्वर उत्पादन वेबसर्वर के करीब कितने करीब हैं?

मैंने तय नहीं किया है कि किस फ्रेमवर्क के साथ जाना है, उत्पादन सर्वर का उपयोग करने के लिए बहुत कम है, इसलिए यह मेरे लिए "विकास सर्वर एक्स से उत्पादन सर्वर वाई की तुलना करें" को पिन करना मुश्किल है। तो इसके साथ, मुझे सवाल थोड़ा और सटीक बनाने दो: एक पाइथन ढांचे के साथ आपके पिछले अनुभव में, विकास पर विकसित होने के बाद आपको अपने आवेदन को प्राप्त करने और उत्पादन प्रणाली के साथ कितना समय व्यतीत करना पड़ा सर्वर? या आपने विकास सर्वर को छोड़ दिया है और एक सर्वर पर अपना ऐप विकसित किया है जो आप उत्पादन में क्या उपयोग करेंगे?

उत्तर

5

निचले वातावरण को संसाधनों के उपलब्ध होने के साथ-साथ उत्पादन वातावरण से मिलान करने की कोशिश करनी चाहिए। यह सभी विकास प्रयासों पर लागू होता है चाहे वे पाइथन-आधारित या यहां तक ​​कि वेब-आधारित भी हों। व्यावहारिक रूप से, अधिकांश संगठन उस प्रकार के पैसे खर्च करने को तैयार नहीं हैं। इस मामले में कम से कम पर्यावरण को कम करने की कोशिश करें जो उत्पादन के करीब जितना संभव हो सके उत्पादन के करीब है।

चर को ध्यान में रखना से कुछ हैं:

  • कई बार वहाँ एक उत्पादन में कई मशीनों (अनुप्रयोग सर्वर, डाटाबेस सर्वर, वेब सर्वर, लोड बैलेंसर्स, आग दीवारों, आदि) कर रहे हैं। इन सभी को ध्यान में रखें।

  • आपरेटिंग सिस्टम

  • CPUs की संख्या।एक सीपीयू निचले वातावरण से एक बहु कोर उत्पादन वातावरण में स्थानांतरित करने से बहु-थ्रेडिंग मुद्दों का खुलासा किया जा सकता है जिनका परीक्षण नहीं किया गया था

  • लोड संतुलन। कई बार कम वातावरण संतुलित लोड नहीं होते हैं। आप एक से अधिक उत्पादन एप्लिकेशन सर्वर पर (उदाहरण के लिए) सत्र नकल कर रहे हैं, तो आप

  • सॉफ्टवेयर/पुस्तकालय संस्करणों

2

आम तौर पर, वे उन सेटिंग्स को चलाने के लिए आवश्यक हैं जो पर्यावरण सेटिंग को शामिल करने वाले अनुप्रयोगों को चलाने के लिए आवश्यक हैं।
हालांकि, ग्राहकों के पास ईमानदारी से देव प्रणालियों हैं जो प्रसंस्करण शक्ति और अन्य एच/डब्ल्यू संसाधनों के मामले में कम शक्तिशाली हैं। मैंने उन्हें dev evononment में वर्चुअल सर्वर का उपयोग करके देखा है क्योंकि आम तौर पर समानांतर में कई परियोजनाएं चल रही हैं, इससे उन्हें लागत कम करने में मदद मिलती है।

1

आदर्श रूप से, विकास, परीक्षण और उत्पादन सर्वर की तार्किक विन्यास समान होना चाहिए। उनके पास ओएस, वेब सर्वर, और एप्लिकेशन चलाने के लिए उपयोग की जाने वाली सभी अन्य सॉफ़्टवेयर संपत्ति का एक ही संस्करण होना चाहिए। हालांकि, इस पर निर्भर करता है कि आपके पर्यावरण की चीजें कितनी मजबूत होंगी - देव मशीन पर हाथों की प्रतिलिपि बनाई गई छवियां/स्क्रिप्ट इत्यादि जो इसे परीक्षण और उत्पादन के माध्यम से नहीं बनाती हैं।

इसे कम करने के लिए आपको शायद कुछ प्रकार की पुश स्क्रिप्ट चाहिए जो आपको एक चरण से अगले चरण तक ले जा सकती है, यानी पुशवर्सियनडेव, पुशवीसन टेस्ट, पुशवर्सनप्रोड। आदर्श रूप से यह एक ही स्क्रिप्ट होना चाहिए जिसमें लक्षित सर्वर (ओं) के पैरामीटर हैं जो आपको विभिन्न चरणों के माध्यम से ऐप को स्थानांतरित करने के लिए आवश्यक हैं।

मैं इस मामले पर अधिक विचारों के लिए थियो श्लोस्नागल की पुस्तक Scalable Internet Architectures के पढ़ने की अनुशंसा करता हूं।

सीधे आपके प्रश्न का उत्तर देने के लिए .... एक बार जब आप अपना आवेदन परीक्षण और कार्यान्वित कर लेते हैं, तो उत्पादक में रोल करने का समय बहुत अच्छा नहीं होता है - ओएस, वेब सर्वर, समर्थन ढांचे को तैनात करते हैं यदि उन्हें इंस्टॉलेशन, एप्लिकेशन और आप अच्छे हैं जाना। नंगे धातु से मैंने देखा है कि लिनक्स सर्वर 1 घंटे में ऑनलाइन चलते हैं, खिड़कियां लगभग 9 0 मिनट। यदि आपके पास ओएस और वेब सर्वर भी कम है .. मिनट।

2

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

उस ने कहा, अब मैं विकास के लिए स्क्लाइट के साथ डीजेंगो में निर्मित सर्वर का उपयोग करता हूं, और अपाचे/wsgi और postgresql उत्पादन के लिए। जब तक दोनों पक्षों पर अजगर निर्भरताएं पूरी की जाती हैं, यह 100% संगत है। एकमात्र संभावित समस्या ओआरएम के बजाय कच्चे एसक्यूएल लिख रही होगी।

0

आपके स्टेजिंग पर्यावरण को आपके उत्पादन वातावरण की नकल करनी चाहिए। विकास एक खेल के मैदान की तरह है, और विकास पर्यावरण पर नियंत्रण काफी सख्त नहीं होना चाहिए। हालांकि, विकास पर्यावरण को समय-समय पर उत्पादन पर्यावरण से ताज़ा किया जाना चाहिए (उदाहरण के लिए, डीवी डीबी में कॉपी किए गए प्रोड डेटा, प्रोड पर बंद देव पर बंदरगाह बंद करें)।

आदर्श रूप से, देव, चरण, और प्रोड सभी अलग मशीनों पर हैं। अलग-अलग मशीनें अलग-अलग भौतिक बक्से, या समान भौतिक बॉक्स पर वर्चुअल मशीन, बजट/जरूरतों के आधार पर हो सकती हैं।

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