ما مدى قرب خوادم الويب الخاصة بالتطوير من خوادم الويب الخاصة بالإنتاج؟

StackOverflow https://stackoverflow.com/questions/216489

سؤال

سيكون لدى معظم أطر عمل بايثون خادم ويب للتطوير من نوع ما والذي سيحتوي على تحذير بأنه ليس للاستخدام كخوادم إنتاج.ما مدى اختلافها عن نظيراتها في الإنتاج؟

لم أقرر تمامًا أي إطار عمل ، وأقل بكثير من خادم الإنتاج الذي يجب استخدامه ، لذلك من الصعب بالنسبة لي أن أقوم بتثبيت هذا الأمر إلى "قارن خادم التطوير X إلى خادم الإنتاج Y." لذلك مع ذلك ، اسمحوا لي أن أجعل السؤال أكثر دقة قليلاً:في تجربتك السابقة مع إطار عمل بايثون، كم من الوقت كان عليك أن تقضيه في إعداد تطبيقك وتشغيله مع نظام إنتاج بمجرد تطويره على خادم تطوير؟أم أنك تخطيت خادم التطوير وقمت بتطوير تطبيقك على خادم يشبه إلى حد كبير ما ستستخدمه في الإنتاج؟

هل كانت مفيدة؟

المحلول

يجب أن تحاول البيئات السفلية مطابقة بيئة الإنتاج قدر الإمكان بالنظر إلى الموارد المتاحة.ينطبق هذا على جميع جهود التطوير بغض النظر عما إذا كانت تعتمد على لغة بايثون أو حتى تعتمد على الويب.ومن الناحية العملية، فإن معظم المنظمات ليست على استعداد لإنفاق هذا النوع من الأموال.في هذه الحالة حاول أن تجعل البيئة التي تقع تحت الإنتاج مباشرة على الأقل قريبة من الإنتاج قدر الإمكان.

بعض المتغيرات التي يجب وضعها في الاعتبار هي:

  • في كثير من الأحيان توجد أجهزة متعددة (خادم التطبيقات، خادم قاعدة البيانات، خادم الويب، موازنات التحميل، جدران الحماية، إلخ) في الإنتاج.ضع كل هذه الأمور في الاعتبار.

  • أنظمة التشغيل

  • عدد وحدات المعالجة المركزية.يمكن أن يؤدي الانتقال من بيئة أقل لوحدة المعالجة المركزية (CPU) واحدة إلى بيئة إنتاج متعددة النواة إلى كشف مشكلات متعددة الخيوط لم يتم اختبارها

  • توزيع الحمل.في كثير من الأحيان لا تكون البيئات المنخفضة متوازنة التحميل.إذا كنت تقوم بنسخ الجلسات (على سبيل المثال) عبر خوادم تطبيقات إنتاج متعددة، فيجب أن تحاول القيام بنفس الشيء في بيئة أقل

  • إصدارات البرامج/المكتبة

نصائح أخرى

وأطور مع جانغو. خادم الإنتاج لدينا هو بعيد، لذلك فمن ألم يتم استخدامه من أجل التنمية. وهكذا، في البداية، أنا خلق VM وحاول المباراة بأكبر قدر أستطع البيئة خادم همز. في مرحلة ما أن VM حصلت مسقي (بسبب حادث منفصل). أخذت تقييم الوضع في ذلك الوقت، وأدركت كان هناك فعلا أي سبب وجيه لتكون باستخدام VM المخصصة للتنمية. منذ الموارد المتاحة للبرنامج لم تكن على نفس الخادم همز، كان لا يصلح لتوقيت استفسار على أي حال (بالمعنى المطلق).

وقال ذلك، أنا الآن استخدام في جانغو بنيت في خادم ديف مع سكليتي للتنمية، واباتشي / WSGI وكيو للإنتاج. طالما تم استيفاء تبعيات الثعبان على كلا الجانبين، انها متوافقة 100٪. والمشكلة الوحيدة المحتملة أن تكون الكتابة مزود الخام بدلا من استخدام مكتب إدارة السجلات.

وعموما، هم نفس من حيث الإعدادات التي يتم المطلوبة لتشغيل التطبيقات التي تشمل إعداد البيئة.
ومع ذلك، وعملاء لها genereally أنظمة ديف والتي هي أقل قوة من حيث تجهيز الطاقة وغيرها من ح / ث الموارد. لقد رأيت استخدامها الملقمات الظاهرية في افيرونمينت ديف لأن لديهم عموما مشاريع متعددة يجري في موازاة وهذا يساعدهم على تقليل التكلفة.

ومن الناحية المثالية، ينبغي أن يكون التكوين المنطقي للتطوير واختبار وخادم الإنتاج نفسها. يجب أن لديهم نفس الإصدار من نظام التشغيل، خادم الويب، وجميع الموجودات البرامج الأخرى المستخدمة لتشغيل التطبيق. ومع ذلك، وهذا يتوقف على مدى قوة الأشياء البيئة الخاصة بك وسوف المحاصيل - ناحية نسخ الصور / مخطوطات وغيرها على جهاز ديف التي لا تجعل من خلال اختبار وأو إنتاج

وللحد من هذا وربما كنت بحاجة الى بعض النوع من السيناريو دفعة التي يمكن نقل لكم من مرحلة إلى أخرى، أي PushVersionDev، PushVesionTest، PushVersionProd. من الناحية المثالية ينبغي أن يكون هذا نفس السيناريو مع المعلمات لخادم الهدف (ق) التي تمثل كل ما تحتاج إلى نقل التطبيق من خلال مختلف المراحل.

وأنصح قراءة كتاب ثيو Schlossnagle في الإنترنت قابلة لل أبنية لمزيد من الأفكار حول هذه المسألة.

لإجابة على سؤالك مباشرة .... تحصل مرة واحدة طلبك اختبارها وتنفيذها، والوقت للفة لproductoin ليست كبيرة - نشر OS، خادم الويب، ودعم الأطر اذا كانوا بحاجة الى تركيب وتطبيق وكنت جيدة لل اذهب. من المعدن لقد رأيت خوادم لينكس تذهب على الانترنت في 1 ساعة، والنوافذ حوالي 90 دقيقة. إذا كان لديك نظام التشغيل وخادم الويب تسير حتى less..minutes.

يجب أن تحاكي بيئة التدريج الخاصة بك بيئة الإنتاج الخاصة بك.التنمية أشبه بالملعب، ولا ينبغي أن تكون السيطرة على بيئة التطوير صارمة للغاية.ومع ذلك، يجب تحديث بيئة التطوير بشكل دوري من بيئة الإنتاج (على سبيل المثال، .نسخ بيانات المنتج إلى قاعدة بيانات المطورين، وأغلق المنافذ الموجودة على المطور والمغلقة في المنتج، وما إلى ذلك).

من الناحية المثالية، يكون كل من dev وstage وprod على أجهزة منفصلة.يمكن أن تكون الأجهزة المنفصلة عبارة عن صناديق فعلية منفصلة، ​​أو أجهزة افتراضية في نفس الصندوق الفعلي، حسب الميزانية/الاحتياجات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top