Read this page in English
→ سجل المشروع

التغيير الصغير يصل الآن إلى الموقع خلال دقائق

حتى 4 تشرين الثاني كانت معظم تغييرات الشيفرة تنتظر من يطلق النشر يدوياً، وكان أي تغيير في شكل الموقع يعيد بناء كل الصفحات. أما الآن فالدمج ينشر نفسه، وتغيير القالب أو النص لا يعيد بناء إلا الصفحات التي يمسّها، وتعديل التذييل يرفع إطاراً واحداً بدلاً من 760,000 صفحة.

كيف يُبنى الموقع الثابت

الدمج ينشر نفسه.

كان دمج الشيفرة لا يُنشر إلا بعد تغيير في البيانات، فأُطلقت 6 من 7 عمليات نشر يدوياً في 2 و3 تشرين الثاني. أما الآن فكل دفع إلى main يمسّ شيفرة الموقع يطلق النشر. وعند انتهاء النشر يقارن فحصٌ الموقعَ الحيّ بـmain ويطلق نشراً جديداً إن كان متأخراً. وإذا فشل النشر أُعيد تشغيل مهامه الفاشلة مرة واحدة، ويتحوّل الفحص إلى الأحمر عند الفشل الثاني.

إطار واحد للترويسة والتذييل.

كانت كل صفحة تحمل نسختها الخاصة من الترويسة والتذييل، فكان تغيير كلمة واحدة في التذييل يعيد بناء نحو 760,000 صفحة ورفعها، بنحو 3.40 دولار من عمليات الكتابة في التخزين في كل مرة. أما الآن فتُخزَّن الصفحات أجزاءً، ويجمعها الـWorker بإطار مشترك واحد لكل لغة. والتغيير نفسه في التذييل يرفع الآن إطارين وقائمة الإطارات وصفحتي البحث.

الصفحات التي يمسّها التغيير فقط.

تسجّل كل عملية بناء الآن القوالب ونصوص الواجهة التي استخدمها كل نوع من الصفحات. فتغيير قالب أو نص أو دليل موضوع لا يعيد بناء إلا الصفحات التي استخدمته: تعديل تجريبي على صفحتي الخصوصية والشروط خطّط لبناء 4 صفحات بالضبط، الصفحتين باللغتين. أما تغيير شيفرة Go فما زال يعيد بناء كل شيء، لأن معرفة الصفحات التي تبلغها دالة في Go تحتاج إلى مخطط استدعاءات، وأي خطأ فيه يترك صفحة قديمة على الموقع.

بناء أسرع.

صار بناء ما يصل إلى 5,000 صفحة يجري على جهاز واحد بدلاً من 24. وكانت كل عملية بناء تمضي من 3 إلى 6 دقائق في تحميل قاعدة البيانات من data/؛ أما الآن فتسحب صورة قاعدة البيانات المبنية من تلك البيانات نفسها وتبدأ في نحو دقيقتين. واستغرقت إعادة بناء صفحة «حول» باللغتين 6 دقائق و34 ثانية من البداية حتى الرفع. ويستغرق بناء كل الصفحات نحو 28 دقيقة.

فحوص في 3 دقائق.

كانت فحوص طلبات الدمج تعمل مرتين لكل التزام وتحمّل قاعدة البيانات كاملة أربع مرات، فتستغرق من 12 إلى 13 دقيقة في كل مرة. أما الآن فتعمل مرة واحدة، من دون البيانات، في أقل من 3 دقائق. ولا يعمل فحص قاعدة البيانات الكامل إلا عندما تتغيّر البيانات أو الشيفرة التي تبني قاعدة البيانات.

المصادر

استخدم المكتبة