هل نجح أحدكم في تشغيل Discourse على AWS ECS أو ما شابه؟

لقد قرأت مواضيع مثل هذا ومواضيع أخرى، ويبدو أنه حتى الآن لا توجد طريقة سهلة لإدراج صورة Discourse في شيء مثل ECS أو GKE أو أي نظام تخطيط حاويات تفضله وجعلها تعمل بسهولة…

أستخدم Terraform لإدارة مجموعة Elasticache، ووحدة RDS، ومجموعة ECS. كل ما أريده هو أن أقول: “ها هي صورة Discourse الخاصة بي، وها هي متغيرات البيئة للاتصال بـ Postgres و Redis و SMTP وما إلى ذلك.”

هل يوجد شيء مشابه لهذا في عام 2020؟ يبدو أنه في جميع المحادثات السابقة حول هذا الموضوع، لم يتم التوصل إلى حل مُرضٍ، ولا زلنا عالقين مع السكربتات المخصصة لـ Discourse التي تتحدى اتفاقيات الحاويات وتكسر التوافق مع الطريقة المعيارية التي يستخدم بها الناس الحاويات…

لقد أجبت على سؤال مماثل قبل يومين

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

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

لماذا يتطلب ذلك سكريبت بدء تشغيل (bootstrap) غريبًا يشغّل الحاويات ويعمل كمُوجِّه (orchestrator)؟

لماذا لا يمكن لصورة Discourse قبول متغيرات البيئة (env variables) والوصول من نقطة الدخول (entrypoint) إلى جميع هذه الموارد وإنشاء الجداول التي تحتاجها، وما إلى ذلك؟ فقد تم نجاحًا في تجميع خدمات وتطبيقات ويب أخرى تعتمد على طبقات تخزين خارجية في حاويات بهذه الطريقة. كل ما عليك فعله هو وضعها في ECS أو EKS أو أي شيء مشابه، وإخبارها بمكان العثور على قاعدة البيانات، وهكذا، وستعمل جميعها بشكل ممتاز. هل هذا ممكن مع Discourse؟

السبب هو أننا في الطرف المعاكس - منظمة غير ربحية بدون ميزانية ضخمة - نرغب في الحفاظ على التكاليف منخفضة قدر الإمكان من خلال وضع جميع تطبيقاتنا المؤسسية على خادم AWS ECS واحد. لكن هذا يتطلب أن تكون التطبيقات الفردية مغلّفة في حاويات بشكل منظم ويمكن تعريفها كتعريفات مهام (task definitions) لـ ECS، أي صور Docker مستقلة بذاتها.

حسنًا، إلى حد ما — نظرًا لأن Discourse يعمل بسهولة على خادم VPS بقيمة 5 دولارات شهريًا كصورة Docker بسيطة للتثبيت، فأنا لست متأكدًا من أن توفير بضع سنتات من هذا المبلغ — مع زيادة هائلة في صعوبة التثبيت وتعقيد الصيانة المستمرة — يستحق العناء حقًا؟ دعها بسيطة!

كما يوضح الرابط أعلاه، يمكنك بناء الحاويات وتشغيلها باستخدام Kubernetes. لقد قمت بنشر تطبيقات على GKE لبعض العملاء الذين أصرّوا على ذلك لأنهم كانوا مرتبطين بالمنصة.

إذا كان هدفك هو توفير المال، فإن الخيار الأنسب هو الاشتراك الشهري الذي يتراوح بين 5 إلى 10 دولارات.

تم تحسين أدواتنا للمستخدم الأكثر شيوعًا على الإطلاق: المجموعات الصغيرة التي لا تملك فريق تكنولوجيا معلومات متخصصًا لإدارة تنسيق الحاويات.

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

يوضح ملف samples/web_only.yml الموجود فيه كيفية استخدام الموارد الخارجية.

كما أن سكريبت launcher قادر أيضًا على بناء صورة Docker مخصصة باستخدام أمر bootstrap الفرعي.