اذهب إلى المحتوى
  • 0

كيفية نشر تطبيق Laravel بدون توقف باستخدام أدوات واستراتيجيات مناسبة؟

Mohammed Jawareesh

السؤال

اريد حل نهائي لطريقه  deploy and build على سيرفر دون ان يحصل downtime وبطء الرفع وعن طريق الgithub 

laravel

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

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

استخدام خدمات الاستضافة المخصصة لـ Laravel: توفر خدمات الاستضافة المخصصة لـ Laravel مثل Laravel Forge و Laravel Vapor إعدادات مسبقة للنشر والتحكم في الإصدارات والتحديثات دون توقف الخدمة. تتضمن هذه الخدمات أيضًا أدوات مثل Git و SSH للتحكم في الإصدارات والتحديثات.

استخدام أدوات النشر المستمر: يمكن استخدام أدوات النشر المستمر مثل Travis CI و CircleCI لإعداد سيرفرات الإنتاج وتحديثات البرمجيات دون توقف. يمكن استخدام هذه الأدوات لتحديد مراحل النشر والاختبار والتحديثات الدورية.

استخدام Docker: يمكن استخدام Docker لإنشاء حاويات Docker ونشرها على خوادم الإنتاج بدون توقف. يتم إنشاء حاويات Docker المحمولة بسهولة ويمكن نقلها بين الخوادم بسهولة، ويمكن استخدام أدوات مثل Docker Compose لتسهيل العملية.

استخدام إدارة التحميل: يمكن استخدام إدارة التحميل مثل Envoyer لتبسيط عملية النشر والتحديثات الدورية دون توقف. يوفر Envoyer واجهة برمجة التطبيقات (API) لتوصيل البرامج وإعدادات مسبقة للنشر.

استخدام استراتيجيات النشر: يمكن استخدام استراتيجيات النشر مثل Blue-green deployment و Canary release لنشر الإصدارات الجديدة بشكل تدريجي ومراقبة الأداء والاستجابة قبل إطلاقها بشكل كامل. يمكن استخدام هذه الاستراتيجيات لتخفيض أي تأثير على الخدمة الحالية وزيادة الثقة في الإصدار الجديد.

استخدام خوادم التحميل الموزعة: يمكن استخدام خوادم التحميل الموزعة مثل NGINX و Apache لتقليل وقت الانتظار وتحسين أداء النشر عن طريق توزيع الحمولة على عدة خوادم.

بالنسبة للنشر عبر GitHub، يمكن استخدام خدمات CI/CD مثل Travis CI و CircleCI لإنشاء سيرفرات الإنتاج وتحديثات البرمجيات بشكل تلقائي. يمكن استخدام Git hooks لتنفيذ إجراءات محددة عند الإصدارات الجديدة، مثل تحديث قاعدة البيانات وتحميل الملفات الثابتة. يمكن أيضًا استخدام Docker وإدارة التحميل لتسهيل عملية النشر. يتم ذلك عن طريق إنشاء ملفات Dockerfile و docker-compose.yml لتعريف الحاويات والخدمات المطلوبة لتشغيل التطبيق. يمكن تحديث هذه الملفات وتنفيذ عمليات النشر عن طريق خدمات CI/CD المتكاملة مع GitHub.

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

  • 0

بدون أي اضافة او خدمة خارجية؟ الـ downtime لا بد منه، ولو جزءا من الثانية. وصحيح، قد يمكن تقليله بالتزام بعض الممارسات ولكن لا أحسب أنه يمكن تحقيق zero downtime إلا ببعض خدمات الطرف الثالث التي تتوفر على تقنيات ادارة الحمل load balanceers والتنصيب المتعدد Multisite deployment وغيرها من ممارسات zero downtime. يذكر في توثيق لارافيل مثلا خدمات من مثل: 

أجدها خيارات ممتازة ان كنت تريد تحقيقه. 

في العادة، قد يحدث لمجرد ثواني قليلة، في حالة تعدي ذلك او أخذ وقت طويل يحتمل أن تكون المشكلة متعلق بشيء آخر تماما.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 1 ساعة قال Adnane Kadri:

بدون أي اضافة او خدمة خارجية؟ الـ downtime لا بد منه، ولو جزءا من الثانية. وصحيح، قد يمكن تقليله بالتزام بعض الممارسات ولكن لا أحسب أنه يمكن تحقيق zero downtime إلا ببعض خدمات الطرف الثالث التي تتوفر على تقنيات ادارة الحمل load balanceers والتنصيب المتعدد Multisite deployment وغيرها من ممارسات zero downtime. يذكر في توثيق لارافيل مثلا خدمات من مثل: 

أجدها خيارات ممتازة ان كنت تريد تحقيقه. 

في العادة، قد يحدث لمجرد ثواني قليلة، في حالة تعدي ذلك او أخذ وقت طويل يحتمل أن تكون المشكلة متعلق بشيء آخر تماما.

نعم بدون اي خدمه خارجيه

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

بدون أدوات خارجية سيتعين عليك التالي:

  1.  استخدم توازن الحمل load balancer لتوزيع حركة المرور الواردة على عدة نسخ من التطبيق الخاص بك، وذلك يضمن وجود نسخة واحدة على الأقل تخدم الطلبات أثناء عملية النشر.
  2. إذا تضمنت عملية النشر تغييرات في هيكل قاعدة البيانات، استخدم ميزة ترحيل قاعدة البيانات في Laravel، حيث تتيح لك الترحيلات تطبيق التغييرات على هيكل قاعدة البيانات مع استمرار تشغيل التطبيق، ويتعامل Laravel مع ذلك من خلال تطبيق الترحيلات في عملية انتقالية، لذا إذا فشلت عملية الترحيل، سيقوم Laravel تلقائيًا بإلغاء التغييرات.
  3. إعداد بيئة منفصلة للنشر مثل بيئة التجريب أو الاختبار ، ويجب أن تكون تلك البيئة مطابقة لبيئة الإنتاج الحية قدر الإمكان، وذلك بإختبار عملية النشر بدقة في هذه البيئة قبل تطبيقها على بيئة الإنتاج الحية.
  4.  استخدام نظام التحكم في الإصدار مثل Git لإدارة الكود مما يسمح لك بتتبع التغييرات وإعادة التراجع إذا لزم الأمر. 
  5. بدلاً من نشر جميع نسخ التطبيق الخاصة بك دفعة واحدة، تستطيع اعتماداستراتيجية النشر التدريجي، وينطوي ذلك على نشر النسخ الجديدة تدريجيًا واحدة تلو الأخرى، بينما تستمر النسخ الحالية في تلبية الطلبات، مما يقلل من تأثير النشر على المستخدمين ويضمن استمرارية الخدمة.
  6. تنفيذ فحوصات الحالة لمراقبة حالة نسخ التطبيق الخاصة بك، للتحقق مما إذا كانت النسخة جاهزة لتلقي الطلبات، وتكوين توازن الحمل لتنفيذ فحوصات الحالة وتوجيه المرور إلى النسخ المناسبة والسليمة فقط.

بينما من الأسهل لك هو أتمتة عملية النشر وهي تضمن توحيد الأسلوب وتقليل الأخطاء وذلك باستخدم أدوات النشر مثل Jenkins أو GitLab CI/CD أو Laravel Envoyer لأتمتة عملية النشر، وذلك لجلب أحدث كود، وتشغيل الاختبارات، وتنفيذ الترحيلات، وتنفيذ خطوات النشر بشكل تلقائي.

وهناك العديد من الأدوات المفيدة التي يمكن استخدامها لتحقيق نشر تطبيق Laravel بدون توقف، وفيما يلي بعض الأدوات الشائعة:

  • Envoyer by Laravel
  • Deployer
  • Jenkins
  • GitLab CI/CD
  • Laravel Vapor
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...