it-swarm.asia

المتداول التحديثات في مزرعة خادم الويب؟

لا تقوم مواقع الويب الكبيرة (Amazon و Facebook و Yahoo وغيرها) بجدولة وقت التوقف عن الترقيات. عادة ما يتم "العيش" وتدحرجت تدريجيا من خلال مزرعة الخوادم. لديهم أيضًا بنية تحتية وفرق كبيرة لإدارة هذا.

عادة ما تأخذ مواقع الويب الصغيرة الموقع بأكمله دون اتصال بالإنترنت لتحديث بنية قاعدة البيانات وترقية الكود الذي يعمل على خوادم الويب. يمكن أن يكون وقت التوقف أقل ما يمكن ولكن لا يزال انقطاعًا للعملاء.

كيف قمت بالقفز إلى التحديثات دون توقف؟ ما هي المتطلبات الدنيا لإنجاز هذا؟ ماذا يمكننا أن نفعل لبناء التطبيقات التي تجعل هذا ممكنا من البداية؟

5
Gareth Farrington

ما هي المتطلبات الدنيا لإنجاز هذا؟

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

ماذا يمكننا أن نفعل لبناء التطبيقات التي تجعل هذا ممكنا من البداية؟

تصميم التطبيق الخاص بك مع متطلبات موازنة التحميل في الاعتبار.

5
danlefree

تعطل 0 هو خادم الويب المكافئ لـ "التصميم يجب أن يبدو كما هو في كل متصفح." تعطل جدول زمني على ما يرام ، فقط قم بجدولة ذلك ووضع إشعار ثابت. ما لم يكن في الواقع يكلفك الكثير من الزيارات أو الأموال ، والتي كموقع صغير سيكون التعريف لا. إذا كنت لا ترغب في أن يراها أي شخص فعلها خلال الرابع من يوليو (أو عيد الشكر أو أي لحظة مناسبة أخرى) إلا إذا كان موقعك الإلكتروني هو نتيجة بحث Google الأولى عن "Fire fire burn treatment" أو "Francis Scott Keywords" ، فستكون بخير.

القيام بذلك من البداية يؤدي عادة إلى خطر أكبر بكثير: الهندسة الزائدة.

0
Thomas

هناك دائمًا سبب ما للتوقف المؤقت ، لكن يمكن التقليل منه.

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

في عدد من المواقع التي تديرها PHP ، أحتفظ بنسخ جنبًا إلى جنب من قاعدة البيانات ، دعنا نقول الإصدار 1.0 و 1.1 و 1.2:

/sites/site-1-0-0
/sites/site-1-1-0
/sites/site-1-2-0

ثم أنشئ روابط يمكن أن يستخدمها خادم الويب:

/sites/production --> /sites/site-1-1-0
/sites/staging    --> /sites/site-1-2-0

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

$ rm /sites/production; ln -s /sites/site-1-2-0 /sites/production

يستخدم خادم الويب الارتباطات الموجودة في مواصفات DocumentRoot ، وبالتالي فإن عملية النقل مؤقتة بشكل عملي.

هناك ، بالطبع ، مسكات ، هنا. يحتاج المرء إلى التأكد من تخزين البيانات الخارجية في مكان ما ، إيه ، خارجي. لا ترغب في كتابة ملفات مؤقتة ، أو تخزين محتوى تم إنشاؤه بواسطة المستخدم في نظام الملفات تحت أدلة الموقع x-y-z.

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

مع إعدادات أكثر قوة ومتوازنة للحمل ، تعمل الاستراتيجيات مثل تلك المقترحة في إجابة danlefree أيضًا.

0
timdev