نحن نبني celld، وقت تشغيل لتطبيقات Cloudflare Workers و Durable Objects على أجهزتك الخاصة. يمكنه العمل مع almacén de objetos compatible con S3 كخدمة خارجية الوحيدة.
celld نظام distribúted. جعل الأنظمة distribúted موثوقة困难، جزئياً لأننا قد نعتمد بشكل غير قصد على suppositions لا تحمل في الواقع، حتى ونحن نعرف الفخاخ. قائمة Peter Deutsch ثمانية أخطاء الحوسبة distribúted تذكر ثمانية suppositions مثل "الشبكة موثوقة" و "التأخير صفر".
يمكن أن يعتمد bug على تسلسل محدد من الرسائل المؤجلة، والكتابة الفاشلة، وإعادة تشغيل العقد. يمكن أن تحدث هذه الأحداث بترتيب مختلف في التشغيل التجريبي التالي، مما يجعل الفشل صعب إعادة إنتاجه. نحتاج إلى القدرة على تكرار التشغيل الفاشل حتى نتمكن من التحقيق في السبب والتحقق مما إذا كان الاقتراح الإصلاح حقاً يحل المشكلة. ولهذا السبب نستخدم الاختبار المحاكي المحدد (DST).
لا يزال لدينا simulator قيد التطوير ولا يوجد في مستودع celld العام، ولكنه قد عثر بالفعل على أخطاء لم تُعرف من قبل. في هذا المقال، سنمر عبر كيفية عمل DST في celld وكيف ساعدنا في العثور على خطأ واحد، وإعادة إنتاجه، وتصحيحه. يعمل DST على تشغيل كود الإنتاج الخاص بـ celld في بيئة خاضعة للتحكّم من قبل المحاكي. تعمل خلية في celld على تشغيل كود التطبيق ولديها herown قاعدة بيانات SQLite. مع قيام الخلايا بعملها، يقوم celld بمعالجة أحداث مثل الطلبات الواردة، وإتمام عمليات التخزين، وتشغيل المؤقتات. الكود الذي يختار الحدث التالي هو منفصل عن الكود الذي يتعامل معه. هذا يسمح للمحاكي بالتحكم في ترتيب الأحداث أثناء تشغيل نفس كود التعامل مع الأحداث الذي يعمل في الإنتاج.
المصدر: Hacker News · لخّصه HeadlinesBriefing