19

تجاربكم مع برمجة الـ Serverless

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

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

مهتم بمعرفة تجاربكم مع فكرة الـ Serverless وهل طبقها أحدكم في بيئة عمله؟ كيف كانت انعكاس هذا الشيء على الكلفة؟


بشكل جانبي

يبدو أنك لاتحتاج إلى Lambda كونك تملك مدونة ثابتة (أفترض) ولايوجد بها أمور ديناميكية

لذا أنصحك بشيء ثابت مباشرة، يمكنك بناء قالب بسيط على gatsbyjs كتابة كامل المحتوى الخاص بك على ملفات md أو في منصة مثل contentful (في الخطة المجانية) واستضافة كل شيء في netlify (استضافة مجانية) (ولو كنت تملك أمور ديناميكية، يمكنك استخدام netlify functions والتي هي ببساطة عبارة عن abstraction فوق lambda وتتيح لك)

netlify تملك خدمة CI يمكن ربطها بضغطة زر مع contentful و gatsbyjs بحيث بمجرد تحريرك لشيء ما، يتم بناء نسخة جديدة من موقعك ورفعها اوتوماتيكيا ل netlify

نصيحة جيدة و من الممكن استخدام Netlify CMS أيضا كبديل ل Contentful. ال JAMStack رهيب و سريع و موفّر إذا عندك build pipeline رهيب مثل Netlify.

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

هذا صحيح

لماذا تضيع حياتك بمثل هذه التفاصيل

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

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

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

هي ليست معقده كما تبدو فقط مولد صفحات ستاتيكيه و Netlify ما تحتاجه

مثلا مدونتي استخدم hugo و Netlify من اجل الاستضافه و كذالك استخدم دومين فرعي الخاص بهم

@assassinateur‍ @medo baayou‍ 

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

أفضل أن أتخلص من هذا الصداع كون البدائل متوفرة لأركز على الهدف الأساسي وهو بناء مدونة...أما البرمجة سأتركها لمشاريع خاصة بعيداً عن اعادة اختراع العجلة.