شكراً مقدماً.
أخطط لإعداد Discourse بتوفر عالٍ في بيئة الإنتاج. أدناه خطة التصميم وبعض شروط البيئة.
الإعداد مع 3 خوادم تطبيقات وخادمين لقاعدة بيانات Postgres. دائمًا خادم PG واحد في وضع الكتابة والآخر في وضع القراءة فقط.
ستشير خوادم التطبيقات الثلاثة هذه إلى نفس خادم قاعدة البيانات.
يجب أن تخدم كل نسخة من قاعدة البيانات عمليات القراءة والكتابة فقط على التوالي.
لا تمتلك خوادم الإنتاج اتصالاً بالإنترنت ولكن يمكنني سحب صور dockerHub.
لدينا خادم GitLab الخاص بنا.
هل من الممكن تهيئة صورة Docker وهذه الصورة على خوادم متعددة؟
من فضلكم ساعدوني في القيام بهذا الإعداد. إذا كانت هناك أي روابط أو اقتراحات، يرجى إرسال رسالة خاصة لي.
إعجابَين (2)
Falco
(Falco)
14 مارس 2022، 8:57م
2
بعد تشغيل ./launcher bootstrap app في مكان ما ، ستحتاج إلى حفظ صورة الحاوية الناتجة (عادةً ما يتم ذلك عن طريق دفعها إلى سجل) ثم تنزيلها وتشغيلها على خوادم التطبيق الثلاثة الخاصة بك.
ستحتاج أيضًا إلى خادم Redis مركزي (وربما نسخ متماثلة له). أنت تفتقد أيضًا موازن تحميل لتوجيه الطلبات إلى خوادم التطبيق المختلفة هذه.
3 إعجابات
شكراً على الرد @Falco
نحن نستخدم موازن التحميل HAProxy ومستودع Nexus لتخزين القطع الأثرية.
إعجاب واحد (1)
مرحباً @Falco
في بيئة الإنتاج الخاصة بي، ليس لدي وصول إلى الإنترنت، لذا فإن ما أخطط له هو إجراء التمهيد على جهاز يمكن الوصول إليه عبر الإنترنت، وأخذ صورة التمهيد هذه إلى خوادم الإنتاج. أثناء القيام بذلك على جهاز الإنتاج الافتراضي، لا يتم تشغيل الحاوية لأن خادم Unicorn يبحث عن معرف عملية أب، لذلك لا يعمل.
هل يمكنك مساعدتي هنا، هل أحتاج إلى نسخ دليل التمهيد الذي تم إجراؤه /var/discourse إلى خادم الإنتاج؟
Falco
(Falco)
17 مارس 2022، 5:45م
5
Veeru_Badavath:
أثناء القيام بهذا
ما هو “هذا”؟ هل هو الإقلاع (bootstrap) أم تشغيل صورة الحاوية التي تم إقلاعها مسبقًا؟
إعجاب واحد (1)
عندما أقوم بتشغيل صورة الحاوية التي تم إنشاؤها مسبقًا
Falco
(Falco)
17 مارس 2022، 6:11م
7
كيف قمت بحفظ الصورة وتصديرها إلى خادم الإنتاج؟
كيف، بالضبط، تحاول تشغيل هذه الصورة المحفوظة في بيئة الإنتاج؟
إعجاب واحد (1)
صورة تم تهيئتها مسبقًا يتم دفعها إلى مستودع Nexus ومن مستودع Nexus يتم سحبها في خادم الإنتاج.
أمر تشغيل Docker يتم إنشاؤه من ./launcher start-cmd app وتشغيل نفس الأمر في خادم الإنتاج.
إعجاب واحد (1)
Falco
(Falco)
17 مارس 2022، 6:22م
9
هل يمكنك مشاركة سجل الأخطاء عند بدء التشغيل في بيئة الإنتاج؟
run-parts: executing /etc/runit/1.d/00-ensure-links
run-parts: executing /etc/runit/1.d/00-fix-var-logs
run-parts: executing /etc/runit/1.d/01-cleanup-web-pids
run-parts: executing /etc/runit/1.d/anacron
run-parts: executing /etc/runit/1.d/cleanup-pids
Cleaning stale PID files
run-parts: executing /etc/runit/1.d/copy-env
Started runsvdir, PID is 42
chgrp: invalid group: ‘syslog’
ok: run: redis: (pid 51) 0s
ok: run: postgres: (pid 56) 0s
supervisor pid: 53 unicorn pid: 75
config/unicorn_launcher: line 71: kill: (75) - No such process
config/unicorn_launcher: line 15: kill: (75) - No such process
(53) exiting
ok: run: redis: (pid 51) 7s
ok: run: postgres: (pid 101) 0s
supervisor pid: 96 unicorn pid: 103
config/unicorn_launcher: line 71: kill: (103) - No such process
config/unicorn_launcher: line 15: kill: (103) - No such process
(96) exiting
ok: run: redis: (pid 51) 14s
ok: run: postgres: (pid 127) 0s
supervisor pid: 120 unicorn pid: 129
config/unicorn_launcher: line 71: kill: (129) - No such process
config/unicorn_launcher: line 15: kill: (129) - No such process
(120) exiting
ok: run: redis: (pid 51) 22s
timeout: down: postgres: 0s, normally up, want up
ok: run: redis: (pid 51) 30s
timeout: down: postgres: 1s, normally up, want up
ok: run: redis: (pid 51) 37s
ok: run: postgres: (pid 174) 0s
supervisor pid: 165 unicorn pid: 176
config/unicorn_launcher: line 71: kill: (176) - No such process
config/unicorn_launcher: line 15: kill: (176) - No such process
(165) exiting
ok: run: redis: (pid 51) 48s
ok: run: postgres: (pid 196) 1s
supervisor pid: 191 unicorn pid: 198
config/unicorn_launcher: line 71: kill: (198) - No such process
config/unicorn_launcher: line 15: kill: (198) - No such process
(191) exiting
ok: run: redis: (pid 51) 54s
timeout: down: postgres: 1s, normally up, want up
Falco
(Falco)
17 مارس 2022، 7:51م
11
هل تستخدم PostgreSQL و Redis و Object Storage خارجيًا؟ هذا متوقع عند القيام بـ HA، ويحتاج كل من خوادم الإنتاج وخوادم البناء إلى الوصول إلى تلك الخدمات الخارجية.
مجرد اختبار للسيناريو، يتم تنفيذ bootstrap على خادم واحد وتشغيل صورة حاوية تم bootstrap عليها على خادم آخر بإعداد مستقل.
هل هناك سبب لذكر تخزين الكائنات، ألا يمكننا استخدام التخزين الداخلي للخادم؟
في إعداد HA، هل نحتاج إلى نسخ الدليل discourse الذي تم تنفيذه في البداية على جميع خوادم التطبيقات؟
Falco
(Falco)
17 مارس 2022، 8:34م
16
كيف ستتعامل مع خوادم التطبيقات المتعددة وتحميلات المستخدمين؟ هل سيكون لديك محرك أقراص شبكة مشترك بين جميع الخوادم؟ قد ينجح ذلك، ولكن حلنا الرسمي لذلك هو تخزين الكائنات باستخدام واجهة برمجة تطبيقات S3.
لا حاجة لذلك، طالما أنك
نعم، أستخدم خادم Postgres خارجي ومجموعة Redis
3 خوادم تطبيقات تستخدم لمجموعة Redis مع التطبيق.
لذلك أحتاج إلى استخدام دليل مشترك/تخزين لدليل بناء discourse . شكراً لك @Falco أصبح الأمر واضحاً الآن بالنسبة لي.
عذرًا على إزعاجك @Falco ، لدي استفسار أخير.
عند إجراء خطوة إعادة البناء، هل ستؤثر على البيانات الموجودة في قاعدة بيانات Postgres؟ إذا كان الأمر كذلك، فكيف يمكن التعامل معها؟
Falco
(Falco)
17 مارس 2022، 8:55م
21
نعم، هناك عمليات ترحيل سيتم تشغيلها أثناء إعادة البناء، والتي ستغير كلاً من البيانات والهيكل.
في بيئة التوفر العالي (HA)، ستحتاج إلى اتباع الإرشادات المتوفرة لدينا هنا: Introducing Post Deployment Migration
إعجاب واحد (1)
system
(system)
تم إغلاقه في
16 أبريل 2022، 8:55م
22
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.