أحببت أن أشارك معكم تجربتي في تحويل مدونتي من WordPress إلى #Laravel، على منصة أعمل عليها كمنتج تجاري أقوم ببيعه لعملائنا منذ أكثر من 4 سنوات كنواة لمشاريعنا وقد قمنا بتسميتها 8ECMS ؛ الرقم ثمانية (8) مأخوذ من الرمز الرياضي المقلوب (infinity) والذي يعني اللانهائية فيكون المختصر (infinity Enterprise Content Management System).
بدايات دخولي عالم التدوين كانت في 2008 حيث قمت ببرمجة مدونتي بواسطة Classic ASP لعدة أسباب أهمها: دعم التاريخ الهجري وسبب دعمه لكي يكون لنا تواجد بهويتنا بشكل أو بآخر وبعدها قمت بنقلها إلى PHP ببرمجة خاصة في عملية سريعة ومن ثم انتقلت أخيرا إلى WordPress.
سبب اختيار WordPress هو لأن هناك لوحة تحكم وأيضا موضوع دعم التكامل والصداقة مع محركات البحث، حيث إن SEO كان متقدما في WordPress.
خلال رحلتي لقرابة 13 سنة من التدوين كان WordPress مثل الصديق (الغثيث \ الثقيل) وقت الوحدة والذي تود أن تتهرب منه وفي نفس الوقت لا تود أن تجلس وحيدا!
هذا الصديق الثقيل (WordPress) خدمني لأكثر من 12 سنة وقد فتح لي الكثير من أبواب الرزق وسهل حياتي في الكثير من الأحيان بسبب متجر إضافاته الضخم جدا، ومازلت أعتقد أنه أسهل نظام إدارة محتوى منتشر ولديه شعبية ومجتمع كبير، إذ يذكر البعض بأنه ربما 40% من مواقع الإنترنت اليوم مبنية بواسطة WordPress.
ولكنني كمطور (مبرمج) أعي نقاط القصور والضعف فيه وكيف يتم حل المحدودية عبر ترقيات منهكة للمنصة ولكن الكثير راضٍ كون المخرجات تتم.
تجربتي مع WordPress كانت مفيدة لفهمي للنظام وتصميم قاعدة بياناته وماهي المحدودية والمطبات التي وقع فيها النظام ومطوّرو الإضافات التي سببت في بطئه في أغلب المشاريع. وفي نفس الوقت استطعت أن أبيع عدة مواقع مبنية على WordPress بسبب السرعة المطلوبة في بناء المشروع مثلا خلال 24 أو 48 ساعة وهذه النقطة تحسب له.
خلال هذه السنوات تعرضت فيها لاختراقات ربما خمس مرات آخرها منذ بضعة أشهر، وكانت العملية عبارة عن محاولة ابتزاز بنشر قاعدة البيانات، وسبب الاختراق غالبا ما يكون ثغرة بسبب القالب المستخدم أو الإضافات غير المحدثة أو ترك سماحية على المجلدات وقت تجربة معينة. // ترك المجلدات متاحة وقت تجربة معينة.
ملاحظة: بخصوص آخر اختراق لم أقم حتى بالتواصل معهم وهذه نصيحتي للجميع، فعلينا التعامل مع هذه الحثالة كالإرهابيين، لا نتفاوض معهم حتى لا يكون لهم سلطة علينا أو يتمادوا في تكرار ذلك. بالتأكيد هذا يعتمد على الحالة التي لديك ولكن في حالتي ضاعت عدة مقالات وكانت لدي نسخة منها وبعض التعليقات لا غير.
هذا لا يعني بأن WordPress غير آمن بل هو مثل أي نظام إن أهملته ولم تقم بصيانته وتحديثه أو إساءة التعامل مع إعداداته فستكون هناك مشكلة كون الثغرات يتم اكتشافها وتناقلها بسرعة وعادة يتم إيجاد تحديثات للمشكلة قبل انتشار الثغرة بشكل واسع ولكن الإهمال وعدم المتابعة هو ما يترك لأحدهم تجربة وجود الثغرة في موقعك.
دائما ماكان ثقل WordPress وتعقيد تصميم قاعدة بياناته مزعجا جدا لي ولكن لا وقت لدي بأن أقوم بتطوير شيء جديد، حتى حصلت حادثة الابتزاز الأخيرة فقررت ألا أترك باب النجار مخلوعا.
أغلب المطورين خلال حياتهم يقومون ببناء ما يسمى مكتبات برمجية أو تأسيس برمجي لمشاريعهم ويقومون بإعادة استخدامها وقد كان لدي هذا الأساس منذ بداياته لأكثر من 16 سنة، ولكن منذ قرابة أربع سنوات قررت أن أقوم بإعادة كتابة الكود البرمجي والتركيز على تكنولوجيا محددة وفي عالم محدد لكي يكون لدي منصة قابلة لإعادة الاستخدام وقابلة للتوسع وتمتلك كل الإمكانيات المطلوبة لأي مشروع مهما كان حجمه، فها أنا قد قمت بتركيبه على أبسط نظام إدارة محتوى كمدونة وفي الوقت ذاته نفس المنصة تقوم بخدمة مشاريع عملاقة أحدها قام بتخطي خدمة أكثر من 550 ألف عميل في ليلة واحدة.
هذه المرة قمت بإعادة تطويرها مع فريقي واخترنا أن نطورها على مبدأ Framework over Framework وكان Laravel كإطار أساسي ومن فوقه ما أسميناه #8ECMS كمنصة وإطار للمشاريع.
إطار المشاريع (8ECMS) يعمل بكفاءة حاليا لأكثر من أربعة مشاريع عملاقة وعدة مشاريع صغيرة وخدمت الملايين من الزوار خلال هذه الفترة وكل يوم ينضج 8ECMS بشكل أكبر ومع كل استخدام لمشروع جديد تتم إعادة الكثير من الوحدات فيه لتتناسب مع أي احتمالات لم تكن بالحسبان.
خلال عطلة نهاية الأسبوع الماضي قررت أن أستخدم 8ECMS على مدونتي والموضوع كان سهلا ولم يأخذ وقتا إلا في نقل البيانات Data Migration والسبب ضرورة بناء Data Mapping للحقول من نظام WordPress لنظامنا والذي فادني فيه فهمي القديم له.
الموضوع تطلب قرابة 8 ساعات للخروج بالحد الأدنى المقبول من نقل البيانات والصور والردود واخترت قالب HTML سريع من envato وحولته إلى Blade خلال ساعتين.
اليوم مدونتي مستضافة على أرخص خادم لدى Digitalocean بتكلفة 5 دولار شهريا فقط، وضمن اختبار Stress load لقوة التحمل يمكنها خدمة أكثر من 2000 زائر في نفس اللحظة باستغلال أقل من 80% من موارد الخادم فقط، وهذا الرقم خرافي في عالم الإنترنت بل ويعد ضربا من الخيال إذ أن القدرة الطبيعية لخادم بهذه المواصفات وقاعدة بيانات معقدة لنظام إدارة محتوى أن يخدم بحد أقصى 100 – 200 شخص في أفضل الأحوال.
فما قمت بعمله فعليا هو أني قمت بتركيب محرك طائرة بوينج على دراجة هوائية، ولكن هذه العملية فادتنا في تبنّي بعض الإضافات في نظامنا والتي كانت كماليات في نظرنا ولكنها أساسية في عالم المدونات والإضافات.
القيم الجوهرية (The CORE values) لنواة نظام (8ECMS)
- Unify
- Standard
- Reuse
- Maximize