ما نوع الضمانات التي تستخدمها لتجنب إجراء تغييرات غير مقصودة بطريق الخطأ على بيئة الإنتاج الخاصة بك؟

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

سؤال

نظرا لأننا ليس لدينا بيئة مرضية جيدة، فغالبا ما يتعين علينا تصحيح القضايا على أنظمة الإنتاج الخاصة بنا. لدينا خوادم الويب والتطبيق وقاعدة البيانات.

ما نوع الضمانات التي تستخدمها لتجنب إجراء تغييرات غير مقصودة بطريق الخطأ على بيئة الإنتاج عند القيام بذلك؟


تعديل:

التطبيق هو تطبيق ويب عمودي B2B معقدة للغاية. هناك الكثير من البيانات المعنية. تحتوي بعض الطاولات على ما يقرب من 100 مليون سجل.


تعديل:

لا تملك بيئة التدريج التي لدينا القدرة على مرآة الإنتاج. هناك أيضا مئات من جيجابايت من ملفات البيانات التي تنطوي عليها بيانات قاعدة البيانات الفعلية.


تعديل:

نحن نستخدم التحكم المصدر للحصول على الكود ولكن ليس للإجراءات المخزنة. هناك بعض الإجراءات المخزنة القديمة في التحكم المصدر ولكن لا أحد يحافظ على تحديث بعد الآن.

المخاوف الرئيسية هي قاعدة البيانات والبيانات على نظام الملفات.

راجع للشغل، أنا مستشار في هذه الشركة، وليس موظفا حقيقيا.

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

المحلول

الإجابة الأكثر مباشرة هي: "لا تفعل ذلك".

نصائح أخرى

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

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

نحافظ على إصدارات الإنتاج السابقة لتراجع في حالة القضايا.

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

بغض النظر، في بعض الأحيان تحصل الأمور ...

فقط السماح بحسابات معينة من الحسابات، لذلك عليك تسجيل الدخول بشكل مختلف لإجراء تغيير

على خادم الويب، لديك هياكل دليلين، والتي تعكس بعضها البعض، واحد حيث يمكن للمعرف الوحيد أن يكتب، ويمكن للجميع التدريج الآخر، والجميع الكتابة.

في خادم قاعدة البيانات، لديك إنتاج واحد DB، حيث يمكن للمعرف واحد فقط أن يكتب، لديك DB تندرج حيث يمكن للجميع الكتابة. يمكن أن يكون DB التدريجي لاستعادة نسخة احتياطية ليلا.

ومع ذلك، إذا كان لديك استعلام سيء أو سيتم سحب بعض خنازير الموارد في موارد نظام التدريج الخاصة بك من الإنتاج، ويمكن أن يتعطل الجهاز.

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

بالنسبة لخوادم قاعدة البيانات، أود أن أقوم بتكوين حسابات المستخدمين على نظام الإنتاج لمنحهم قراءة الحقوق فقط.

قراءة فقط / حسابات الضيوف. عنجد. إنه نفس الأسباب التي لا تستخدمها دائما كجذر أو مسؤول.

هذا شيء صعب، ويذهب مع إقليم "عدم وجود بيئة التدريج".

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

شيء واحد رأيته هو استخدام VMS: بصرف النظر عن بيئة التصحيح، يمكنك إنشاء PLOM-PROD في VM واستخدام ذلك لتصحيح التصحيح. قد لا يكون هذا عمليا بالنظر إلى نوع التطبيق الذي تقوم بتطويره، لذا فإن التفاصيل الإضافية في تلك المنطقة ستكون مفيدة.

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

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

إذا لم تكن معتادا على مفاهيم أنظمة التحكم في الإصدار، فسنصوصيك بالقيام ببعض الأبحاث. انهم معقدة من الناحية النظرية ولكن مفيدة بشكل لا يصدق وقوي. مقالة ويكيبيديا هي مكان جيد للبدء:http://en.wikipedia.org/wiki/revision_control.

أنا آسف، يجب أن يكون لديك بيئة التدريج. ليس هناك تجول في هذا. إذا كان هذا يعني أن لديك لضغط حجم مجموعات البيانات الخاصة بك، فهذا ما عليك فعله. استخدم محول VMWare و VMware لاستيراد أنظمة الإنتاج أثناء الفترات الهادئة، إذا كان لديك (هذه عملية عدة ساعات، فربما غير عملي).

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

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

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

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