Cloudflare OS: مكان لأدواتك الخاصة

رسم توضيحي مولَّد بالشيفرة: يجمع Cloudflare OS أدوات مختلفة فوق أساس مشترك للتشغيل والبيانات والوصول.

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

في مقال حين يدوم البرنامج بقدر ما تدوم المشكلة تحدثنا عن تطبيقات تُولَّد لمهمة محددة. لكن كتابة الشيفرة ليست سوى جزء من الأمر: فهذه التطبيقات تحتاج إلى مكان تعمل فيه، وتحفظ ما ننجزه، ويمكن مشاركتها منه. يقترح Cloudflare OS هذا المكان. وقد نشرناه في Codin لنستكشف ما يمكن فعله به.

بيئة عمل يمكنك تعديلها أيضًا

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

والتشبيه الذي تقترحه Cloudflare يساعد على فهمه: تخيّل حزمة برامج مكتبية يمكن أن يكون فيها كل ملف تطبيقًا مصممًا حسب الحاجة. فبدلًا من الاختيار دائمًا بين مستند أو جدول بيانات أو عرض تقديمي، يمكنك إنشاء أداة بالحقول والعروض والإجراءات التي تحتاج إليها. يسمي OS هذه التطبيقات gadgets، ويمكنك تكييفها ومشاركتها.

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

مثال توضيحيمن فكرة إلى أداة

المحادثة

أريد مقارنة ثلاثة عروض من موردين: المدة والنطاق والدعم.

سأُعدّ أداة مقارنة فيها عمود لكل عرض وصف لكل معيار.

أضف شروط كل عرض، واسمح بالتصفية حسب شمول الدعم.

مقارنة العروضالتصفية: الدعم مشمول
الموردABC
المدة6 أسابيع4 أسابيع8 أسابيع
النطاقكاملجزئيكامل
الدعممشمولمنفصلمشمول
الشروطشهريغير مفصّلحسب المراحل

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

رسم توضيحي للعملية بموردين افتراضيين. يمكنك التنقل بين الخطوات؛ هذا العرض لا يولّد شيفرة ولا يستعلم أي نموذج.

من طلب أداة إلى العمل بها

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

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

في OS، تتشارك المحادثة والتطبيق المساحة نفسها. على اليسار يبقى الطلب وسجله؛ وعلى اليمين يمكننا استخدام الـ gadget أو فتح ملفاته أو مراجعة الخدمات المتصلة به. هذه هي العروض الثلاثة من تثبيتنا:

لقطات شاشة حقيقيةgadget واحد وثلاث طرق للعمل

Cloudflare OS وفيه الطلب الأولي لنظام CRM وسجل التعديلات المقبولة على اليسار، والـ gadget قيد التشغيل مع تبويباته App وCode وConnections على اليمين.

1 · يبقى الطلب ظاهرًا. وفي هذه الحالة: نظام CRM يضم مسار مبيعات ومتابعة وفرصًا من Radar. وأسفله سجلّ يثبت أن التعديلات قُبلت.

2 · يُستخدم التطبيق إلى جانبه. يفتح تبويب App الـ gadget: يمكن الاطلاع على اللوحة والعمل على بياناتها من دون مغادرة المساحة.

تبويب Code في Cloudflare OS: قائمة الملفات README.md وclient.js وdomain.js وserver.js، ويعرض المحرر مراحل نظام CRM وقواعده إلى جانب الطلب الأصلي.

1 · الملفات في المتناول. يجمع تبويب Code واجهة الـ gadget ومنطقه. ويمكننا الانتقال من التطبيق إلى طريقة تنفيذه بتبويب واحد.

2 · يمكن مراجعة القواعد. هنا تظهر مراحل نظام CRM والسياق الذي يستخدمه. وتبقى المحادثة إلى جانبنا بينما نفحص الشيفرة.

تبويب Connections في Cloudflare OS مع مورد نموذج متصل بنظام CRM والمرجع LUNA الذي تستخدمه شيفرته.

1 · لموارد الـ gadget لوحتها الخاصة. يعرض تبويب Connections النموذج المتاح والاسم الذي تستخدمه الشيفرة للإشارة إليه: LUNA. ويتيح هذا الاتصال طلب تحليل من داخل نظام CRM.

جولة في مساحتنا على OS. سُجّل الطلب الظاهر على اليسار عند تثبيت الـ gadget من Codex عبر واجهة البرمجة. يمكنك التبديل بين العروض والنقر على كل لقطة لتكبيرها.

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

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

البناء بالأدوات التي تستخدمها أصلًا

في تجربتنا كتبنا الـ gadget باستخدام Codex من بيئة عملنا المعتادة، وثبّتناه عبر واجهة برمجة OS. وتستخدم هذه الواجهة Cap’n Web، وهي مكتبة من Cloudflare لاستدعاء دوال بعيدة من JavaScript. وكانت العملية تتلخص في تعديل الشيفرة ومراجعتها وإرسال الإصدار الجديد.

ونرى أن هذه الإمكانية مفيدة بشكل خاص للفرق التقنية. إذ يمكننا الاحتفاظ بالمحرر والنموذج وطريقة مراجعة الشيفرة التي نعمل بها أصلًا. ويصبح OS المكان الذي يعمل فيه التطبيق ويحتفظ ببياناته، حتى لو جرى بناؤه خارج مساعده.

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

مشاركة أداة أو إعادة استخدام تصميمها

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

وهناك طريقة أخرى للمشاركة لا تقل أهمية: المخططات (blueprints). وهي قوالب لتطبيقات كاملة. تتيح لشخص آخر إنشاء نسخته الخاصة من الـ gadget بتخزين واتصالات خاصة به، من دون أن ينتقل إليه السجل أو البيانات المحفوظة أو بيانات الاعتماد الخاصة بالنسخة الأصلية.

والفرق عملي. يمكن لفريق أن يعمل معًا على قائمة الجرد نفسها لعملية ترحيل. ويمكن لفريق آخر أن يعيد استخدام تصميمها لعملية ترحيل مختلفة، بأنظمته ومسؤوليه. في الحالة الأولى يتشاركون العمل؛ وفي الثانية يتشاركون أداة توفر عليهم البدء من الصفر.

مثال توضيحيمشاركة العمل أو التصميم

لوسياالنسخة نفسهاالنسخة الأصلية

ترحيل الشمال

  • خادم البريد لوسيا: مراجعة DNS
  • قاعدة العملاء أندريس: صُدّرت
  • VPN المكتب لوسيا: قيد الانتظار

أندريسالنسخة نفسهانسخة جديدة

ترحيل الشمال

  • خادم البريد لوسيا: مراجعة DNS
  • قاعدة العملاء أندريس: صُدّرت
  • VPN المكتب لوسيا: قيد الانتظار

ترحيل الجنوب

  • بوابة الموردين أندريس: طلب الوصول
  • مخزن الملفات
  • طابعات الطابق أندريس: جردها

العمل معًا: يفتح الشخصان الأداة نفسها ويريان البيانات نفسها، فما يدوّنه أحدهما يظهر للآخر. بصلاحية الاستخدام يمكنهما تسجيل المعلومات؛ أما تعديل الشيفرة فيتطلب صلاحية البناء.

رسم توضيحي بأشخاص وبيانات افتراضية. المشاركة تفتح الأداة نفسها؛ أما المخطط (blueprint) فيتيح إنشاء أداة أخرى انطلاقًا من تصميمها.

وللاتصالات الخارجية مكانها أيضًا في هذا الطرح. يستخدم OS ما يسمى Gatekeepers، وهي مكونات تتوسط وصول الوكلاء والـ gadgets إلى موارد محددة. ويتطلب ذلك إعداد عمليات التكامل المقابلة: فنشر OS لا يربط تلقائيًا جميع أنظمة الشركة.

ما الذي يستحق أداة خاصة به

تقدّم Cloudflare نظام OS بوصفه مشروعًا لا يزال قيد التطوير. وتجربتنا أيضًا ما زالت مبكرة: لقد جرّبنا تطبيقًا واحدًا، ولم نقس تغيرًا في إنتاجية الفريق. كما أن الأداة الخاصة تظل بحاجة إلى صيانة؛ وقد يكون المنتج الراسخ أقدر على خدمة عملية تعتمد على تكاملات كثيرة أو تحتاج إلى دعم مستمر.

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

وما نريد مواصلة استكشافه في Cloudflare OS هو هذه الإمكانية تحديدًا: أن يكون المكان الذي يمكن أن تعيش فيه هذه الأدوات جاهزًا مسبقًا. فإذا تطلبت كل أداة إطلاق مشروع كامل، فلن يُفكَّر في كثير منها أصلًا. أما إذا كان جزء من العمل محلولًا بالفعل، فقد يقترب السؤال أكثر من المهمة نفسها: ما الذي نحتاج إلى فعله، وأي تطبيق سيساعدنا على فعله.

المصادر

العودة إلى المدونة