ما هو المفضل لديك php نشر استراتيجية ؟ [مغلقة]

StackOverflow https://stackoverflow.com/questions/425692

  •  06-07-2019
  •  | 
  •  

سؤال

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

لدي تجربة مع النشر باستخدام كابيسترانو مع روبي فضلا عن بعض الأساسية shell scripting.

قبل الغوص أول رئيس في بلدي سيكون من الرائع أن نسمع كيف أن الآخرين قد اقترب هذا في مشاريعهم.

مزيد من المعلومات

حاليا للمطورين العمل على المنشآت المحلية من موقع ارتكاب التغييرات إلى التخريب مستودع.النشر الأولية تتم عن طريق تصدير الموسومة بيان من svn و تحميلها إلى الخادم.

تغييرات إضافية تكون عادة مصنوعة مجزأة يدويا تحميل الملفات التي تم تغييرها.

هل كانت مفيدة؟

المحلول

PHP, SVN مع Phing بناء البرامج النصية هي وسيلة للذهاب.Phing مشابه النمل ولكن هو مكتوب في PHP ، مما يجعل من الاسهل بكثير بالنسبة مطوري PHP تعديل لتلبية احتياجاتهم.

لدينا النشر الروتينية على النحو التالي:

  • يضع الجميع على نفس الخادم المحلي في العمل ، كل مطور له الخروج على آلة الوطن كذلك.
  • يرتكب الزناد بعد ارتكاب ربط التحديثات التي خادم التدريج.
  • الاختبارات ركض على التدريج الخادم ، إذا كانت تمر - تستمر.
  • Phing بناء السيناريو هو ركض:
  • يأخذ أسفل خادم الإنتاج, تحويل المجال إلى "تحت الإنشاء" صفحة
  • يعمل إس في تحديث على إنتاج الخروج
  • يدير مخطط دلتا النصي
  • تشغيل الاختبارات
  • إذا اختبارات الفشل تشغيل الاستعادة النصي
  • إذا اختبارات تمرير الخادم الطرق إلى إنتاج الخروج

هناك أيضا phpUnderControl, وهو مستمر تكامل server.لم تجد أنه من المفيد جدا بالنسبة مشاريع على شبكة الإنترنت إلى أن نكون صادقين.

نصائح أخرى

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

ونحن نستخدم Webistrano ، الواجهة على شبكة الإنترنت لكابيسترانو، ونحن سعداء جدا معها.

وWebistrano يسمح متعددة المراحل، نشر متعددة للبيئة من SVN، GIT وغيرها. وقد بنيت في ذلك دعم العودة إلى الحالة السابقة، ودعم أدوار الملقم منفصلة مثل شبكة الإنترنت، ديسيبل، التطبيق، وما إلى ذلك، وتنشر في نفس الوقت. انها تسمح لك لتجاوز معلمات التكوين على مستويات متعددة، مثل في المسرح، ويسجل نتائج كل نشر والبريدية ذلك اختياريا.

وعلى الرغم من كابيسترانو وWebistrano هي تطبيقات روبي، بناء جملة "وصفات" نشر سهلة وقوية بما يكفي لفهم لأي PHP مبرمج. في الأصل بنيت كابيسترانو لروبي على القضبان المشاريع، ولكن بسهولة يستوعب مشاريع PHP.

وبمجرد تكوين بل لعله من السهل بما فيه الكفاية لاستخدامها من قبل غير المبرمجين، مثل اختبار نشر نسخة التدريج.

لتوفير أسرع نشر ممكن نحن تثبيت fast_remote_cache الأسلوب، الذي يعد استكمالا لإس ذاكرة التخزين المؤقت نسخة تعمل على الملقم البعيد، ومن ثم hardlinks النتيجة.

أباتشي النملة لنشر لأهداف مختلفة (ديف، QA والعيش). تم تصميم النملة للعمل من أجل نشر جافا، ولكنه يوفر حل قضية عامة مفيدة جدا لنشر الملفات التعسفي.

وبناء جملة ملف build.xml من السهل جدا لتعلم - أن تحدد أهداف مختلفة وتبعيات الخاصة بهم والتي يتم تشغيلها عند استدعاء البرنامج النمل على سطر الأوامر

وعلى سبيل المثال، لدي أهداف لديف، QA والعيش، كل منها يعتمد على الهدف cvsbuild الذي يتحقق من أحدث مراجعة رئيس من خادم CVS لدينا، نسخ الملفات المناسبة إلى الدليل بناء (باستخدام علامة fileset) ثم rsyncs الدليل بناء على الملقم المناسب. هناك عدد قليل من المراوغات للتعلم، ومنحنى التعلم ليست مسطحة تماما، ولكن لقد تم القيام به على هذا النحو لسنوات مع عدم وجود مشكلة لذلك أنصح الحالة الخاصة بك، على الرغم من أنني الغريب ما إجابات I الآخر سوف نرى في هذا الموضوع.

وأفعل الاشياء يدويا باستخدام بوابة. واحد مستودع للتنمية، الذي يحصل على git push --mirror'ed لالريبو العام، ويعيش الخادم هو الريبو الثالث سحبت من ذلك. هذا الجزء أعتقد هو نفس الإعداد الخاص بك.

والفارق الكبير هو أن أستعمل فروع تقريبا كل تغيير أعمل على (لقد حصلت على حوالي 5 الآن)، وتميل إلى الوجه ذهابا وإيابا بينهما. الفرع الرئيسي لا يحصل تغير مباشرة باستثناء دمج الفروع الأخرى.

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

أعلم Phing وقد ذكر عدة مرات الآن ، ولكن كان لدي حظ كبير مع phpUnderControl.بالنسبة لنا نحن

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

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

ووأجزاء من الكمية المخصصة أوصي هو dotCloud ، بالإضافة إلى PHP (<لأ href = "HTTP: // docs.dotcloud.com/tutorials/php/quickstart/ "يختلط =" نوفولو "> ينظرون الى PHP التشغيل السريع ) فإنه يمكن أيضا نشر الخلية، MongoDB ومجموعة كاملة من الخدمات الإضافية. كما أن لديها من الأشياء الجيدة لطيفة مثل نشر صفر التوقف، تراجع الفورية، الدعم الكامل لSSL وwebsocket، وغيرها، وهناك الطبقة الحرة التي هي دائما لطيفة:)

وبالطبع أنا منحاز قليلا منذ أعمل هناك! خيارات أخرى تستحق التدقيق بها بالإضافة إلى dotCloud هي Pagodabox وأوركسترا (وهي الآن جزء من محرك يارد).

وآمل أن يساعد هذا!

وسليمان

وهذا لك تلقائيا وبشكل أعمى اتخاذ التغييرات من مستودع إلى خوادم الإنتاج يبدو خطيرا. ما إذا كان رمز ملتزمة يحتوي على خلل الانحدار، لذلك التطبيق الإنتاج يحصل glitchy؟

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

وأنا الطريق في وقت متأخر إلى الحزب، ولكنني اعتقدت انني سوف تتقاسم طرقنا. نحن نستخدم Phing مع Phingistrano ، الذي يوفر وظائف كابيسترانو تشبه إلى Phing عبر ملفات البناء بنيت قبل. انها باردة جدا، ولكن يعمل فقط إذا كنت تستخدم جيت في الوقت الراهن.

ولدي نسخة العمل لفرع الإفراج SVN على الخادم. تحديث الموقع (عندما لم تكن هناك تغييرات مخطط) سهلا كما هو إصدار أمر التعديل SVN. ليس لدي حتى تأخذ الموقع حاليا.

وPhing ربما هو أفضل رهان، إذا كنت تستطيع أن تصمد أمام الألم من ملفات التكوين أكس. في الإطار symfony ديه ميناء الخاصة من أشعل النار (pake)، الذي يعمل بشكل جيد جدا، ولكن بدلا تقترن بإحكام إلى بقية ل symfony (على الرغم من أنك ربما يمكن الفصل بينهما).

وثمة خيار آخر هو استخدام كابيسترانو. من الواضح أنه لا تدمج وكذلك مع PHP، كما هو الحال مع روبي، ولكن لا يزال بإمكانك استخدامها لكثير من الاشياء.

وأخيرا، يمكن أن تكتب دائما مخطوطات قذيفة. وحتى الآن، وهذا ما فعلت.

http://controltier.org/wiki/Main_Page

ونحن نذهب لاستخدامها لنشر متعددة الخادمات والصيانة.

ولمدة عام في وقت متأخر ولكن ... في حالتي، ونشر ليست تلقائية. أجد أنه من الخطورة لنشر رمز وتشغيل قاعدة بيانات الهجرة مخطوطات تلقائيا.

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

وفي عملي نفسي وزملائي في الفريق وضعت بديلا Phing الموجهة لنشر كابيسترانو ولقد أدرجت أيضا بعض الأشياء الجيدة المتاحة في phing مثل اختبار PHPUnit، phpcs وPHPDocumentor. لقد جعلت من الريبو بوابة التي يمكن أن تضاف إلى المشروع باعتباره حدة ثانويه في بوابة وأنها تعمل بشكل جيد جدا. لقد تعلق على حفنة من المشاريع وانها وحدات يكفي أنه من السهل أن تجعل من العمل مع أي مشروع في أي من عدة بيئات (التدريج، الاختبار، والإنتاج، الخ ...).

مع البرامج النصية phing بناء يمكنك تشغيلها من سطر الأوامر يدويا، ولقد كان أيضا نجاح أتمتة بناء / نشر الروتينية مع هدسون والآن جنكينز كاريتاس الدولية.

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

وأعتقد SVN نشر الطريقة ليست جيدة جدا. للأسباب التالية:

وتحتاج إلى فتح وصول SVN للعالم كله

ولها العديد .svn في خوادم الويب الانتاج

وأعتقد Phing لإنتاج فرع + الجمع بين جميع شبيبة / المغلق + استبدال مرحلة التكوين + تحميل سه لكافة ملقمات www غير طريقة أفضل.

وسه إلى خادم 10 على شبكة الاتصالات العالمية وإس يصل هو أيضا مشكلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top