MAISON CODE .
/ Tech · Performance · Edge · Cloud · Architecture

حوسبة الحافة: التغلب على سرعة الضوء

سرعة الضوء هي حد صعب. كيفية استخدام وظائف Edge (Vercel/Cloudflare) لتشغيل المنطق على بعد 10 مللي ثانية من المستخدم الخاص بك.

AB
Alex B.
حوسبة الحافة: التغلب على سرعة الضوء

إذا كان الخادم الخاص بك في فيرجينيا (us-east-1) والمستخدم الخاص بك موجود في طوكيو:

  • طلب قطع مسافة 10000 كم.
  • الكمون = ~ 150 مللي ثانية.
  • رحلة ذهابًا وإيابًا = ~300 مللي ثانية. لا يمكن لأي قدر من تحسين التعليمات البرمجية إصلاح الفيزياء. الطريقة الوحيدة للتحرك بشكل أسرع هي تقليل المسافة الجسدية. تعمل حوسبة الحافة على نقل المنطق من “الخادم” (مكان واحد) إلى “الحافة” (في كل مكان). بدلاً من خادم واحد في فيرجينيا، لديك كود يعمل على 500 خادم في 500 مدينة. يقوم المستخدم في طوكيو بالاتصال بخادم طوكيو. الكمون = 10 مللي ثانية.

لماذا تتحدث Maison Code عن هذا

في Maison Code Paris، نعمل كضمير معمari لعملائنا. غالبًا ما نرث حزمًا “حديثة” تم بناؤها دون فهم أساسي للحجم.

نناقش هذا الموضوع لأنه يمثل نقطة تحول حاسمة في النضج الهندسي. التنفيذ الصحيح يميز MVP الهش عن منصة مؤسسية مرنة يمكنها التعامل مع حركة مرور الجمعة السوداء.

برنامج Edge الوسيط (المعترض)

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

  1. التخصيص:
    • قراءة ملف تعريف الارتباط: user_segment=vip.
    • أعد كتابة عنوان URL: /home -> /home-vip.
    • يحدث هذا على الفور عند الحافة. لا يوجد وميض من جانب العميل.
  2. الحظر الجغرافي / التوجيه:
    • “المستخدم موجود في فرنسا؟” -> إعادة التوجيه إلى /fr.
    • “هل المستخدم موجود في Office IP؟” -> عرض بيئة التدريج.
  3. اختبار أ/ب:
    • تقسيم حركة المرور 50/50.
    • تعيين ملف تعريف الارتباط.

مشكلة قاعدة البيانات

تم حل التعليمات البرمجية قيد التشغيل على Edge (Vercel، Cloudflare Workers، AWS Lambda@Edge). لكن البيانات تعيش عادة في مكان واحد (قاعدة البيانات الأولية).

  • وظيفة الحافة (طوكيو) -> قاعدة البيانات (فيرجينيا).
  • لقد أعدنا تقديم الكمون! ** الحلول **:
  1. قراءة النسخ المتماثلة: ضع قاعدة بيانات للقراءة فقط في طوكيو. (جيد لمواقع المحتوى).
  2. قواعد البيانات العالمية: استخدم Turso (LibSQL) أو Cloudflare D1. يقومون بنسخ البيانات إلى الحافة تلقائيًا.
  3. ** التخزين المؤقت للحافة **: قم بتخزين استجابة قاعدة البيانات مؤقتًا في Redis at the Edge (Upstash).

هل “بدون خادم” هو نفس “الحافة”؟

لا.

  • بدون خادم (Lambda): يتم إنشاء حاوية في منطقة معينة (على سبيل المثال، us-east-1). يمكن أن تكون عمليات البدء الباردة بطيئة (500 مللي ثانية). لديه قوة Node.js الكاملة.
  • الحافة (العمال): تولد عزلة (V8) في أقرب مركز بيانات. البدايات الباردة تكون فورية (0 مللي ثانية). لديه واجهة برمجة تطبيقات محدودة (واجهة برمجة تطبيقات الويب القياسية). قرار الهندسة المعمارية:
  • استخدم Edge للتوجيه وفحوصات المصادقة والمنطق البسيط.
  • استخدم بدون خادم للمعالجة الثقيلة (تغيير حجم الصورة، وإنشاء ملف PDF).

4. حالة الحافة: كائنات متينة

قدم عمال Cloudflare الكائنات المعمرة. يتيح لك ذلك تخزين الحالة على عقدة الحافة نفسها. حالة الاستخدام: التعاون في الوقت الفعلي (نمط مستندات Google).

  1. يتصل المستخدم أ (باريس) بـ DO في باريس.
  2. يتصل المستخدم B (لندن) بـ DO في باريس (أقرب عقدة نشطة).
  3. يتشاركون في اتصال WebSocket بزمن انتقال يبلغ 10 مللي ثانية.
  4. يتم تخزين الحالة (نص المستند) في ذاكرة الوصول العشوائي (RAM) على الحافة. لا توجد رحلة ذهابًا وإيابًا إلى فيرجينيا.

5. مشكلة إبطال ذاكرة التخزين المؤقت

“هناك شيئان صعبان فقط في علوم الكمبيوتر: إبطال ذاكرة التخزين المؤقت وتسمية الأشياء.” إذا قمت بتخزين HTML مؤقتًا على Edge، فسيكون تحديث الموقع فوريًا بالنسبة لك، ولكن يرى المستخدمون الإصدار القديم. الاستراتيجية: لا معنى لها أثناء إعادة التحقق (SWR).

  1. يقدم Edge المحتوى المخزن مؤقتًا (الفوري).
  2. يقوم Edge بجلب محتوى جديد بشكل غير متزامن من Origin.
  3. يقوم Edge بتحديث ذاكرة التخزين المؤقت.
  4. يرى المستخدم التالي المحتوى الجديد. أو استخدم مفاتيح بديلة. ضع علامة على المحتوى الخاص بك (المنتج-123). عندما تقوم بتحديث المنتج 123، اطلب من CDN إزالة العلامة “product-123”.

7. تحسين الصورة على الحافة

تقليديًا، يمكنك تغيير حجم الصور على الخادم أو استخدام خدمة مثل Cloudinary. الآن، يمكن لـ Edge أن تفعل ذلك. يتم تشغيل Cloudflare Images أو Vercel Image Optimization على الحافة. يكتشف: “المستخدم موجود على Android؟ هل يخدم WebP.” “هل المستخدم موجود على iPhone؟ يخدم JPEG.” يتم تغيير حجمه بناءً على رأس “العرض”. يؤدي هذا إلى تفريغ عمل وحدة المعالجة المركزية الضخمة من الخادم الأصلي الخاص بك. أصلك يخدم صورة رئيسية واحدة عالية الدقة. يخدم The Edge 50 نوعًا محليًا.

8. عرض تحسين محركات البحث على الحافة

تتحسن محركات البحث (Googlebot) في JS، لكن HTML الخام لا يزال هو المسيطر. إذا كان لديك SPA (تطبيق صفحة واحدة) مخصصًا، فيمكنك استخدام Edge “للعرض المسبق” للروبوتات فقط. وكيل المستخدم: Googlebot -> تعرض وظيفة Edge HTML -> إرجاع الصفحة الثابتة. وكيل المستخدم: Chrome -> تعمل وظيفة Edge كوكيل -> إرجاع حزمة SPA. هذا هو الخدمة الديناميكية. يمنحك تحسين محركات البحث لموقع ثابت مع تجربة المستخدم للتطبيق.

9. التخصيص المفرط على الحافة

“مرحبًا، [الاسم]” أمر أساسي. “مرحبًا، نحن نرى أنها تمطر في طوكيو. هل تريد شراء مظلة؟” هو تخصيص الحافة. نحن نبحث عن عنوان IP الخاص بالمستخدم -> Weather API (المخزن مؤقتًا في Edge). نعيد كتابة شعار البطل لإظهار معاطف المطر. نظرًا لأن المنطق يعمل في طوكيو (بالقرب من المستخدم)، فإنه يضيف 0 مللي ثانية إلى زمن الوصول مقارنة بالصفحة الثابتة. يمكننا أيضًا إعادة ترتيب شبكات المنتج استنادًا إلى “نقاط التقارب” المخزنة في ملف تعريف الارتباط Edge.

10. الامتثال للسياج الجغرافي

القانون العام لحماية البيانات (أوروبا) مقابل CCPA (كاليفورنيا) مقابل PIPL (الصين). قواعد سيادة البيانات صارمة. “بيانات المستخدم الواردة من ألمانيا يجب ألا تغادر ألمانيا.” وظائف الحافة تحل هذا. نقوم بتوجيه عناوين IP الألمانية إلى مركز بيانات فرانكفورت. تقوم وظيفة Edge بالكتابة إلى قاعدة بيانات D1 محلية في فرانكفورت. البيانات لا تعبر المحيط الأطلسي أبدًا. وهذا يجعل “الامتثال العالمي” قاعدة توجيه، وليس كابوسًا قانونيًا.

11. WebAssembly (WASM) على الحافة

إن عزلات V8 سريعة، لكنها جافا سكريبت. في بعض الأحيان تحتاج إلى طاقة خام (Rust/C++). يدعم عمال Cloudflare WASM. حالة الاستخدام: تغيير حجم الصورة (الفوتون)، أو التشفير، أو الاستدلال بالذكاء الاصطناعي (ONNX). يمكنك تجميع كود Rust الخاص بك إلى WASM وتحميله على Edge. يستدعي العامل الدالة WASM بأداء قريب من الأداء الأصلي. يتيح لنا ذلك تشغيل عمليات حسابية “ثقيلة” (مثل تحويل ترميز الفيديو أو خوارزميات التخصيص) دون تشغيل جهاز Lambda.

10. لماذا ميزون كود؟

في Maison Code، نحن مهووسون بـ الوقت حتى البايت الأول (TTFB). نحن لا نكتفي بـ “السرعة الكافية”. نريد “فورية”. نحن نصمم حلولنا (الهيدروجين/الريمكس) للاستفادة من الحافة بشكل افتراضي. نحن نعرف أي الرؤوس يجب تعيينها (stale-while-revalidate)، وقواعد البيانات التي يجب استخدامها (Turso/D1)، وكيفية توجيه حركة المرور عالميًا. نحن نحول الفيزياء إلى حليفك، وليس عدوك.

12. وضع العلامات على جانب الخادم على الحافة

عادةً ما يتم تشغيل وحدات البكسل التسويقية (Facebook CAPI، وأحداث TikTok) في المتصفح. إنهم يبطئون الصفحة ويتم حظرهم بواسطة AdBlockers. ننقلهم إلى الحافة.

  1. ينقر المستخدم على “شراء”.
  2. يرسل المتصفح إشارة ضوئية واحدة خفيفة الوزن إلى “edge.maisoncode.paris”.
  3. تقوم وظيفة Edge بإعادة توجيه الحدث إلى Facebook وTikTok وGoogle وSnapchat. النتيجة:
  • دقة البيانات بنسبة 100% (يتجاوز AdBlock).
  • 0ms حظر الموضوع الرئيسي.
  • آمن (مفاتيح API مخفية على الخادم).

13. تحليل تكلفة الحافة

“هل الحافة باهظة الثمن؟” في الواقع، إنها أرخص من الخوادم التقليدية.

  • AWS Lambda: أنت تدفع مقابل المدة (جيجابايت بالثواني). البدايات الباردة تكلف المال.
  • Cloudflare Workers: أنت تدفع مقابل الطلبات (مليون عملية). غالبًا ما يكون وقت وحدة المعالجة المركزية مجانيًا (ضمن الحدود).
  • لا توجد تكلفة خاملة: لا تدفع مقابل الخوادم الفارغة في الساعة 3 صباحًا. بالنسبة للمواقع ذات حركة المرور العالية، تعمل “نسبة الوصول إلى ذاكرة التخزين المؤقت” الموجودة على الحافة على تقليل الحمل على قاعدة بيانات Origin الخاصة بك بنسبة 90%، مما يقلل فاتورة قاعدة بياناتك بشكل كبير. إنه يدفع ثمن نفسه.

14. قائمة مراجعة استراتيجية الحافة

الانتقال إلى الحافة؟

  1. تحديد المسارات الديناميكية: ما هي الصفحات التي تحتاج بالفعل إلى التخصيص؟
  2. ** محلية قاعدة البيانات **: هل قاعدة بياناتك عالمية (Turso) أم إقليمية (AWS RDS)؟
  3. إدارة الرأس: قم بتكوين stale-while-revalidate.
  4. ** معالجة الاستثناءات **: منطق الرجوع إلى المحتوى الثابت في حالة فشل Edge.
  5. ** التسجيل **: قم بإعداد مصارف السجل (Cloudflare -> Datadog).
  6. CI/CD: النشر التلقائي إلى Edge عند الدفع عبر git.
  7. ** سقف التكلفة **: ضع حدودًا على طلبات العمال لمنع مفاجأة الفواتير.
  8. ** متغيرات البيئة **: مزامنة الأسرار مع بيئة Edge.
  9. بدايات التشغيل الباردة: قم بقياس زمن الوصول P99.
  10. الإجراءات الاحتياطية: إذا كان Edge معطلاً، فهل يقدم CDN محتوى قديمًا؟

15. الاستنتاج

The Edge هو مستقبل الواجهة الأمامية. نحن نقوم بنقل المنطق من جهاز المستخدم (العميل) ومن الخادم المركزي (الأصل) إلى المساحة بينهما. يؤدي ذلك إلى تمكين “السرعة الثابتة” مع “التخصيص الديناميكي”. إنه أفضل ما في العالمين.


الكمون مرتفع جدًا؟

نحن ننفذ إستراتيجيات Edge Middleware لتخصيص المحتوى دون التضحية بـ TTFB.

[ادفع إلى الحافة](/جهة اتصال). قم بتوظيف مهندسينا.