आप Magento के उन्नयन के लिए अनुमान कैसे देते हैं?


63

अवलोकन:

यह सवाल मूल रूप से पूछा गया था और बाद में स्टैकऑवरफ्लो पर बंद हो गया । हमने मेटा में कहा , इस प्रश्न के लिए यहाँ सही जगह है।

यह प्रश्न कई लोगों को मैगेंटो के उन्नयन का अनुमान लगाने का उचित तरीका खोजने में मदद करने के पक्ष में है।

प्रश्न:

मुझे यह जानने में दिलचस्पी है कि आप Magento के उन्नयन के लिए आवश्यक समय कैसे मापेंगे? मुझे लगता है, कि आप में से अधिकांश के पास ग्राहक के सवाल पर जवाब देने के लिए कठिन समय था: "मेरे Magento स्टोर को अपग्रेड करने में कितना समय लगेगा?"

आमतौर पर ग्राहक को उदाहरण के लिए बस एक नंबर सुनना पड़ता है: "इसमें X घंटे लगेंगे और इसकी कीमत Y रुपये होगी।"

प्रश्न के पीछे मुख्य विचार तकनीकी पक्ष के बारे में है और आप Magento के उन्नयन के लिए अपनी गणना करने के लिए डेवलपर के रूप में क्या जाँच करते हैं।

मैंने अगली चेक लिस्ट बनाई, सिर्फ अपने हिसाब से:

  • क्या Magento के कोर को छुआ गया है?
  • क्या Magento के DB स्कीमा को छुआ गया है?
  • क्या हमारे पास डीबी में असंगत डेटा है?
  • स्थानीय और सामुदायिक कोड पूल में कितने कस्टम एक्सटेंशन स्थापित हैं?
  • क्या कस्टम एक्सटेंशन Magento के नवीनतम संस्करण के साथ संगत है?
  • क्या थीम डेवलपर ने लेआउट निर्देशों के लिए local.xml फ़ाइल का उपयोग किया है, या बस कस्टम थीम के लेआउट निर्देशिका के आधार / डिफ़ॉल्ट / लेआउट से xml फ़ाइलों की प्रतिलिपि बनाई है?
  • क्या हमारे पास लेआउट xml फ़ाइलों में लेआउट निर्देश / ब्लॉक विधियां हैं?
  • क्या मैंने इस Magento दुकान को विकसित किया है?

क्या आपको लगता है, कि मुझे कुछ याद आ रहा है और यदि हाँ, तो क्या आप और मेरे समुदाय को चेक लिस्ट के अतिरिक्त बिंदुओं के साथ साझा करना चाहेंगे?


अपेक्षाकृत सरल ~ 0.875 से 1.75% वार्षिक राजस्व के लिए, मध्यम 1.75% से 3.5% वार्षिक राजस्व के लिए, मुश्किल से 2.625% से 5.25% वार्षिक राजस्व के लिए।

जवाबों:


100

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

सभी संशोधनों को सचमुच ऑफ-कोर और इन-कोर में विभाजित किया जा सकता है ।

ऑफ-कोर संशोधन वे हैं जिन्हें अपग्रेड के साथ अधिलेखित नहीं किया जाएगा। वे 3-पार्टी एक्सटेंशन हैं , कोर फाइलें स्थानीय दायरे (ऐप / कोड / स्थानीय / मैज) और एक कस्टम थीम में डाल दी जाती हैं

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

ऑफ-कोर संशोधन

3 पार्टी एक्सटेंशन

उन्नयन के दौरान तृतीय पक्ष एक्सटेंशन मुद्दों का मुख्य स्रोत हैं। जिसका अर्थ है कि आपके पास अधिक समय होने पर आपको और अधिक विश्लेषण करने की आवश्यकता होगी।

जांच करने के लिए पहली बात यह है कि एक्सटेंशन द्वारा प्रदान की गई कार्यक्षमता अभी तक आपके द्वारा नवीनीकरण किए जा रहे Magento के संस्करण में लागू नहीं की गई है। उदाहरण के लिए कुछ एक्सटेंशन जैसे कि या Magento 1.3.xx और पुराने में व्यापक रूप से उपयोग किए गए थे Yoast_CanonicalUrl, लेकिन अब कोर Magento कार्यक्षमता का हिस्सा हैं और अब आवश्यक नहीं हैं।Mxperts_CustomerAddressFontis_Wysiwyg

तब यह जांचना एक अच्छा विचार है (अपने ग्राहक से पूछें) यदि आपको वास्तव में उन सभी एक्सटेंशनों की आवश्यकता है जो आपके पास हैं। आपके द्वारा स्थापित कुछ एक्सटेंशन हो सकते हैं लेकिन वास्तव में कभी भी उपयोग नहीं किए जाते हैं। तो इस बिंदु पर एक प्रकार का सफाई करना अच्छा है।

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

नोट: सीधे तृतीय पक्ष एक्सटेंशन को संशोधित न करें, लेकिन एक नया एक्सटेंशन बनाएं जो एक पुराने को विस्तारित करेगा और फिर नए एक्सटेंशन के बूटस्ट्रैप XML में एक निर्भरता निर्धारित करेगा।

उन सभी के बाद शेष एक्सटेंशन के प्रत्येक का वास्तविक विश्लेषण प्रदान किया जा सकता है। यह हमेशा etc/config.xmlफ़ाइल की परीक्षा से शुरू होगा । देखने के लिए 3 चीजें हैं:

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

एप्लिकेशन / कोड / स्थानीय / दाना

अपने एक्सटेंशन के साथ समाप्त होने के बाद आपकी app/code/local/Mageनिर्देशिका पर एक नज़र डालने का समय है । यहां आपको संशोधित कोर फाइलें एक localदायरे में स्थानांतरित हो जाएंगी । उनमें से प्रत्येक निश्चित रूप से आपको कुछ भूरे बालों की कीमत देगा क्योंकि आप कभी नहीं जानते हैं (यदि यह आप नहीं थे जो उन्हें वहां डालते हैं) क्या वहां संशोधित किया गया था और किस कारण से। इसलिए आपको उनमें से प्रत्येक की तुलना एक मूल और माइग्रेट की गई कार्यक्षमता के साथ नए संस्करण की संवाददाता फ़ाइल से करनी होगी।

कस्टम थीम

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

इन-कोर संशोधन

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

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

यहां तक ​​कि अगर आपकी Magento की स्थापना git के अंतर्गत नहीं है, तब भी आप अपनी फ़ाइलों को एक अलग निर्देशिका में कॉपी कर सकते हैं और फिर git init चला सकते हैं। फिर प्रारंभिक कमिट करें, "क्लीन" मैगेंटो फ़ाइलों को कॉपी करें और चलाएं git status। आपको कुछ इस तरह मिलेगा:

अब संशोधित फ़ाइलों की संख्या के आधार पर आप git diffप्रत्येक फ़ाइल पर या पूरे बैच पर एक साथ चल सकते हैं। यह आपको किए गए सभी इन-कोर संशोधनों का व्यापक संदर्भ देगा। यदि आपके पास कोई दृश्य दृश्य है जैसे phpStorm तो जीवन आपके लिए बहुत आसान है:

मेरा सुझाव है कि git diff > changes.txtऐसा करने के लिए आपके पास हमेशा संशोधनों की एक सूची होगी।

मुख्य संशोधनों की सूची होने से आप अनुमान लगा सकते हैं कि नए संस्करण में क्या स्थानांतरित किया जाना है और ऐसा करने के लिए कितना समय देना होगा।

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

  • हम मान रहे हैं कि आप अपने विकास के माहौल में उन्नयन कर रहे हैं। अपने उत्पादन सर्वर पर अपग्रेड रनिंग एक आत्महत्या है।
  • जब आप उन्नयन कर रहे हों तो उन्हें उत्पादन में कुछ भी बदलने न दें। अपने Magento को संस्करण नियंत्रण या लेखन से अस्थायी लॉक फ़ाइलों के अंतर्गत रखें।
  • सभी तृतीय पक्ष एक्सटेंशन अक्षम करें, लेकिन ध्यान दें कि जो प्रारंभ में अक्षम थे, इसलिए आप उन्हें बाद में सक्षम नहीं करेंगे।
  • जाँच करें कि क्या सर्वर पर कोई Magento सफाई स्क्रिप्ट चल रही है। अन्यथा के साथ शुरू सभी तालिकाओं काटना dataflow_*, log_*, report_*
  • अपग्रेड समय पर डिफ़ॉल्ट थीम पर वापस लौटें।

अपग्रेड स्क्रिप्ट पूरी होने के बाद:

  • संदर्भित changes.txtआप से पहले सभी में कोर संशोधनों जो वास्तव में योग्य माइग्रेट कर रहे विस्थापित कर दिया।
  • app/code/local/Mageनवीनीकरण से पहले मिले संशोधनों को माइग्रेट करें ।
  • एक-एक करके तीसरे पक्ष के एक्सटेंशन को सक्षम करें।
  • अपनी थीम वापस रखें और बड़े पैमाने पर उत्पादन सर्वर के साथ परिणाम की तुलना करें।
  • एक बार जब आप परिणाम से खुश होते हैं, तो उत्पादन को तैनात करें।

निष्कर्ष

मुझे पता है कि यह सब डरावना लगता है, लेकिन अगर आप नियमित रूप से अपग्रेड कर रहे हैं, तो अपने कोर को साफ रखें और केवल विक्रेताओं से ही एक्सटेंशन लें, जिन पर आपको वास्तव में भरोसा है और केवल अगर आपको उनकी जरूरत है तो आपको इस लेख में वर्णित अधिकांश कठिनाइयों का सामना नहीं करना पड़ेगा। अपने Magento के EcoSystem को स्वस्थ रखें और आपको पुरस्कृत किया जाएगा।

स्क्रिप्टम के बाद

बहुत ही जटिल मामलों में यह नवीनतम मैगनेटो की एक नई स्थापना के साथ शुरू करने के लिए समझ में आता है और आपकी स्टोर थीम और कार्यक्षमता चरण-दर-चरण माइग्रेट करता है। यह निश्चित रूप से समय लेगा, लेकिन अंत में आपके पास एक स्वस्थ मैगेंटो प्रणाली होगी जिसमें आपकी पूरी जागरूकता होगी कि क्या हो रहा है।


इन-कोर संशोधनों का पता लगाने का एक और तरीका n98-magerun के प्लगइन Magento प्रोजेक्ट मेस डिटेक्टर का उपयोग करना है
जुलिएन लोइज़लेट

15

सामान्यतया, विकासशील रहते हुए कोर कोड को कभी नहीं छुआ जाना चाहिए। Magento में कई तंत्र हैं जो आपको किसी भी मुद्दे पर काम करने की अनुमति देते हैं, यहां तक ​​कि आंतरिक बग भी। यह कहा जा रहा है, वहाँ के रूप में अच्छी तरह से देखने के लिए अन्य मुद्दे हैं।

  1. क्या कोई समुदाय या स्थानीय मॉड्यूल कोर कोड को ओवरराइड करता है (इसके लिए मॉड्यूल फ़ोल्डर में खोजा जा सकता है <rewrite>, और यह बुरा अभ्यास है क्योंकि उन्हें वास्तव में गैर-अप्रिय कोड जैसे घटनाओं का उपयोग करना चाहिए)
  2. Magento कोड को पीछे की ओर संगत बनाए रखने की कोशिश करता है, लेकिन कभी-कभी कोड काफी बदल जाता है ( यहां पाया जा सकता है ), यदि बैकवर्ड असंगत परिवर्तन कई हैं, जो प्रक्रिया में जोड़ सकता है।
  3. क्या विकास के माहौल में कोड को डुप्लिकेट करना आसान / संभव है। अगर यह है, तो बस उन्नयन और परीक्षण चल रहा है कि सभी की जरूरत हो सकती है।
  4. क्या अपग्रेड की जरूरत है? क्या नए वर्जन में ऐसे फीचर्स हैं जो क्लाइंट के बिना नहीं रह सकते? कोई भी सुरक्षा समस्या (कई बार Magento बैक-पैच भी प्रदान करता है)

जहां तक ​​टेम्प्लेट का संबंध है, पिछले अनुभव से मैं आपको बता सकता हूं कि यह मुश्किल से टूटता है, जब तक कि टेम्प्लेट कोडिंग पर डेवलपर पागल नहीं हो जाता (जो कि वैसे भी ब्लॉकों में होना चाहिए)।


10

यहाँ कुछ बातों का ध्यान रखना है:

  • जांचें कि क्या थीम संगत है (यह देखने के लिए कि क्या टेम्प्लेट फ़ाइलों में व्यापक कोडिंग है - कभी-कभी जूनियर डेवलपर्स ऐसा करते हैं)
  • जांचें कि मीडिया कैसे संग्रहीत किया जा रहा है (क्या वे सीडीएन आदि का उपयोग कर रहे हैं)
  • जाँच करें कि क्या कोई विशेष कैशिंग विधियाँ हैं (APC Memcached etc)।

इस प्रकार के क्लाइंट अनुरोध को संभालने का एक तरीका, एक अनुमान समीक्षा करना है।

यह ग्राहक को यह बताने में मजबूर करता है कि आप इसे देखने के लिए कुछ (बिल योग्य) समय व्यतीत करेंगे, और परियोजना को करने के लिए उन्हें अधिक सटीक समय-सीमा / लागत देंगे।

इस मार्ग पर जाने से आपको और ग्राहक दोनों को लाभ होता है।

ग्राहक आमतौर पर आपके अनुमान में अधिक आत्मविश्वास महसूस करेगा, और आपकी सिफारिशों का सम्मान करेगा, जो संभव तनाव को कम करके, आपको लाभ पहुंचाता है।

अनुमानित समीक्षा:

वास्तविक अनुमान समीक्षा इन पंक्तियों के साथ कुछ होगी:

  • लाइव डेटाबेस को डंप करें और इसे एक विकास मशीन पर आयात करें
  • अपने लाइव मशीन से अपने देव मशीन के लिए Magento फ़ाइलों पर कॉपी करें
  • सुनिश्चित करें कि सब ठीक है और काम कर रहा है
  • उन्नयन का प्रयास करें और यह देखने के लिए कुछ प्रारंभिक परीक्षण करें कि क्या टूट रहा है

इस प्रक्रिया में औसतन दो बिलियन घंटे लगने चाहिए, और यह आपको सिस्टम में बहुत आवश्यक जानकारी प्रदान करेगा।


1
"लाइव डेटाबेस को डंप करें और इसे एक विकास मशीन पर आयात करें" - पीसीआई अनुपालन को केवल सिर में गोली मार दी गई थी। लाइव क्रेडेंशियल निर्यात नहीं करना सुनिश्चित करें ...
ल्यूक ए। लेबर

10

हमने Magento CE पर विभिन्न उन्नयन किए हैं, सबसे खराब 1.3 से 1.7 तक है जो हमें लगभग 4 पूर्ण दिन लग गए। प्रारंभिक अनुमान 1-2 दिन था। मुझे लगता है कि 1.x से 2.x पर अपग्रेड करना एक समान विशाल उपक्रम होगा और भले ही माइग्रेशन टूल कोर टीम द्वारा प्रदान किया जाएगा, यह सिर्फ खरोंच से शुरू करने के लिए क्लीनर हो सकता है।


6

मैं ऊपर दिए गए उत्कृष्ट उत्तरों में एक बात जोड़ना चाहता हूं:

  • जांचें कि क्या VCS और उचित परिनियोजन प्रक्रिया लागू है।

मैं इसके पीछे उचित प्रक्रियाओं के बिना एक अपग्रेड नहीं करूँगा और समस्या होने पर वापस कदम रखने की संभावना होगी (इससे भी अधिक अगर मैं साइट पर काम नहीं करता था)। लगभग 90% क्लाइंट्स हमें Magento के अपग्रेड के लिए संपर्क कर रहे हैं (जो पहले हमारे क्लाइंट नहीं थे) केवल किसी भी परीक्षण / स्टेजिंग के बिना एक जीवित वातावरण है, वीसीएस जो भी हो।


6

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

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


धन्यवाद, यह कुछ ऐसा है, जिसे मैंने अब तक कभी नहीं देखा है, लेकिन यह जानना अच्छा है!
Ceckoslab
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.