لدى كثير من الفرق احتياجات لا ترقى إلى تبرير تطبيق كامل: أداة مقارنة لمراجعة العروض، أو سجل للقرارات، أو قائمة جرد لن تلزم إلا خلال عملية ترحيل. وعادةً ما تُحل هذه الاحتياجات بما هو متاح في المتناول. فبناء شيء خاص يفرض تحديد مكان استضافته، وطريقة حفظ بياناته، ومن يحق له الدخول إليه. وأحيانًا يكون هذا العمل المحيط أثقل من الأداة نفسها.
في مقال حين يدوم البرنامج بقدر ما تدوم المشكلة تحدثنا عن تطبيقات تُولَّد لمهمة محددة. لكن كتابة الشيفرة ليست سوى جزء من الأمر: فهذه التطبيقات تحتاج إلى مكان تعمل فيه، وتحفظ ما ننجزه، ويمكن مشاركتها منه. يقترح Cloudflare OS هذا المكان. وقد نشرناه في Codin لنستكشف ما يمكن فعله به.
بيئة عمل يمكنك تعديلها أيضًا
Cloudflare OS مشروع مفتوح من Cloudflare يجمع بين وكلاء الذكاء الاصطناعي والتطبيقات الصغيرة والوصول المضبوط إلى الخدمات الخارجية. يُستخدم من المتصفح، ويمكن نشره في تثبيت خاص.
والتشبيه الذي تقترحه Cloudflare يساعد على فهمه: تخيّل حزمة برامج مكتبية يمكن أن يكون فيها كل ملف تطبيقًا مصممًا حسب الحاجة. فبدلًا من الاختيار دائمًا بين مستند أو جدول بيانات أو عرض تقديمي، يمكنك إنشاء أداة بالحقول والعروض والإجراءات التي تحتاج إليها. يسمي OS هذه التطبيقات gadgets، ويمكنك تكييفها ومشاركتها.
ويتضح الفرق بمثال بسيط. لنفترض أننا نريد مقارنة عروض عدة موردين. يجمع الجدول البيانات، لكن ربما نحتاج أيضًا إلى تمييز نقاط الشك، والاحتفاظ بتفسير كل تقييم، وعرض الفروق المهمة فقط. وتطبيق خاص بنا سيتيح جمع هذا المسار كله في شاشة واحدة. وتكمن أهمية OS في أنه يقدم بيئة مشتركة لبناء أدوات كهذه، من دون إعداد بنية تحتية منفصلة لكل واحدة منها.
مثال توضيحيمن فكرة إلى أداة
المحادثة
أريد مقارنة ثلاثة عروض من موردين: المدة والنطاق والدعم.
سأُعدّ أداة مقارنة فيها عمود لكل عرض وصف لكل معيار.
أضف شروط كل عرض، واسمح بالتصفية حسب شمول الدعم.
صِف: ينطلق الطلب من مهمة محددة. يكفي أن تشرح ما الذي تريد مقارنته ووفق أي معايير.
ابنِ: يقترح المساعد إصدارًا أول من الـ gadget. وهو هنا مخطط يضم ثلاثة موردين افتراضيين ومددهم ونطاق عروضهم.
كيّف: تظهر حاجة جديدة أثناء المراجعة. تضيف الأداة صفًا للشروط وعامل تصفية ينقل العرض الذي لا يشمل الدعم إلى الخلفية.
من طلب أداة إلى العمل بها
يتيح المساعد المدمج وصف gadget وطلب تعديلات عليه. ويمكن أن تستمر المحادثة بعد وجود الإصدار الأول: إضافة عرض جديد، أو تغيير طريقة تقديم نتيجة، أو إدراج إجراء. وتبقى شيفرة الأداة متاحة لمواصلة تعديلها.
وهذا يغيّر علاقتنا بالتطبيق الصغير. فبالعودة إلى أداة المقارنة، إذا اكتشفنا في منتصف المراجعة أننا نحتاج إلى تسجيل شرط من شروط المورد، فقد يؤدي ذلك إلى تعديل في الأداة. لن نضطر بعد الآن إلى حشر المهمة كلها ضمن ما تتيحه الشاشة الأولى. وبطبيعة الحال، سيكون علينا التحقق من أن هذا التعديل يحافظ على البيانات ويفعل ما نتوقعه.
في OS، تتشارك المحادثة والتطبيق المساحة نفسها. على اليسار يبقى الطلب وسجله؛ وعلى اليمين يمكننا استخدام الـ gadget أو فتح ملفاته أو مراجعة الخدمات المتصلة به. هذه هي العروض الثلاثة من تثبيتنا:
لقطات شاشة حقيقيةgadget واحد وثلاث طرق للعمل
1 · يبقى الطلب ظاهرًا. وفي هذه الحالة: نظام CRM يضم مسار مبيعات ومتابعة وفرصًا من Radar. وأسفله سجلّ يثبت أن التعديلات قُبلت.
2 · يُستخدم التطبيق إلى جانبه. يفتح تبويب App الـ gadget: يمكن الاطلاع على اللوحة والعمل على بياناتها من دون مغادرة المساحة.
1 · الملفات في المتناول. يجمع تبويب Code واجهة الـ gadget ومنطقه. ويمكننا الانتقال من التطبيق إلى طريقة تنفيذه بتبويب واحد.
2 · يمكن مراجعة القواعد. هنا تظهر مراحل نظام CRM والسياق الذي يستخدمه. وتبقى المحادثة إلى جانبنا بينما نفحص الشيفرة.
1 · لموارد الـ gadget لوحتها الخاصة. يعرض تبويب Connections النموذج المتاح والاسم الذي تستخدمه الشيفرة للإشارة إليه: LUNA. ويتيح هذا الاتصال طلب تحليل من داخل نظام CRM.
ساعدنا نظام 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 هو هذه الإمكانية تحديدًا: أن يكون المكان الذي يمكن أن تعيش فيه هذه الأدوات جاهزًا مسبقًا. فإذا تطلبت كل أداة إطلاق مشروع كامل، فلن يُفكَّر في كثير منها أصلًا. أما إذا كان جزء من العمل محلولًا بالفعل، فقد يقترب السؤال أكثر من المهمة نفسها: ما الذي نحتاج إلى فعله، وأي تطبيق سيساعدنا على فعله.


