RIMA

رویکردها، ابزارها و فرآیند استقرار

مراحل اجرای پروژه از ابتدا تا انتها

1.5.رویکردها، ابزارها و فرآیند استقرار

استقرار یکی از مهمترین مراحل در طول چرخه حیات یک پروژه است. یک پروژه، در طول اجرای آن مرتبا در حال گسترش و به روز رسانی است. در اغلب موارد مفهوم استقرار با مفهوم محصول نهایی اشتباه گرفته می شود، در حالیکه استقرار شامل محیط هایی مانند سرور محلی، تجمیع، همگام سازی و آزمون است. در این بخش خلاصه ای درباره فرآیند بسط و گسترش پروژه از یک محیط به محیط دیگر و رویکردهای اساسی آن را شرح می دهیم.

رویکردهای استقرار

اولین چیزی که باید در فرآیند استقرار مورد توجه قرار بگیرد، روش استقرار است. رویکردی که ما برای انجام این مرحله انتخاب می کنیم بستگی به عواملی همچون ماهیت تغییرات، منابع پروژه، تعداد نفرات تیم، نوع پروژه و محیط های مبدا و مقصد می باشد.

دو نوع رویکرد پایه ای برای استقرار وجود دارد: استقرار دستی و استقرار اتوماتیک. بعضی وقت ها ما از ترکیب هر دو رویکرد استفاده می کنیم یعنی برخی موارد را بصورت دستی و مابقی را به صورت اتوماتیک انجام می دهیم.

  • استقرار دستی در مورد کدها معمولا به معنای کپی فایل های کدنویسی از طریق ابزارهایی مانند ftp انجام می شود. در مورد تغییرات پایگاه داده معمولا استقرار دستی به معنای اجرای اسکریپت های SQL به صورت دستی است.
  • استقرار اتوماتیک کدها معمولا از طریق سرورها یا سرویس های کامپایل انجام می شود. استقرار تغییرات در پایگاه های داده معمولا با این روش ها انجام می شود اما ممکن است و می تواند از طریق ابزارهایی مانند همگام سازی یا وب فارم هم انجام شود که این دو مورد از امکانات تعبیه شده در ریما هستند.

علاوه بر مکانیزم استقرار، ما افرادی را برای اینکار تعیین می کنیم (کرده ایم) که وظیفه آن ها استقرار تغییرات است. در واقع و با یک دید بازتر می توان عنوان کرد که برای هر مجموعه از تغییرات می توان یک گروه از افراد را برای مدیریت استقرار تغییرات تعییین کرد.

روش دیگری که برای استقرار تغییرات وجود دارد، ایجاد سرور و یا سرویس برای این کار است. در صورت انتخاب این روش حتما فردی برای نظارت بر این موضوع بکار گرفته می شود. مسئولیت این فرد می تواند نسبت به محیط های پروژه متفاوت باشد.

در نهایت فرد یا افرادی که در این زمینه مسئولیت خواهند داشت باید بدانند که چه موقعی فرآیند استقرار انجام می شود. ممکن است تغییرات انجام شده بر روی پروژه در یکجا جمع شوند و بعدا فرآیند استقرار اجرا شود یا ممکن است تغییرات بلافاصله بر روی محیط های مختلف اعمال شوند. همه اینکارها در طول روند اجرائی پروژه مشخص می شوند و قوانینی هم وجود دارند که اگر عملیات استقرار با خطا مواجه شد یا بعد از آن خطایی در پروژه به وجود آمد بدانیم که باید سراغ چه کسی برویم و با چه کسی در این رابطه صحبت کنیم.

ابزارهای استقرار

سیستم مدیریت محتوای ریما دو نوع امکان را در اختیار ما قرار داده است :

  • امکان همگام سازی محتوا که از همگام سازی فایل ها و تغییرات انجام شده بر روی برخی از انواع جداول پایگاه داده پشتیبانی می کند اما از تغییرات انجام شده بر روی فایل های کد پشتیبانی نمی کند.
  • امکان خروجی/ورودی که از فایل ها و برخی از انواع کدها پشتیبانی نمی کند.

ابزارهای زیادی وجود دارند که می توانند به عملیات استقرار کمک کنند مانند compare cms، team city، web deploy، redgate sql compare، octapus deploy و بسیاری دیگر.

فرآیند استقرار

قبل ار آغاز فرآیند استقرار در هر محیطی، ما مدتی را صرف حذف اشکالات احتمالی می کنیم. در لیست زیر مواردی را که ما برای آن ها وقت می گذاریم و بررسی می کنیم آورده شده است :

  • اجرای inspection و توجه به پیشنهادات ارائه شده توسط آن.
  • امکاناتی از سیستم را که  در پروژه مورد استفاده قرار نگرفته اند غیرفعال می شوند تا در مصرف منابع صرفه جویی شود (وظایف زمانبندی شده، ماژول REST).
  • بررسی پیکربندی های اختصاصی محیطی (مانند web.config، App Settings).
    • غیر فعال کردن عیب یابی، فعال کردن مکانیزم کَش، بررسی تنظیمات cdn، غیرفعال کردن لاگرهای غیر ضروری.
  • مشخص کردن نوع تغییراتی که باید همگام سازی شوند.
    • فیلتر کردن تغییرات غیر ضروری ار فرآیند استقرار.
    • اطمینان از اینکه همه وابستگی ها در فرآیند استقرار قرار دارند.
    • استفاده از compare cms برای مشخص کردن تفاوت بین پروژه های نصب شده در محیط های مختلف.
  • آماده سازی پکیج های استقرار
    • انجام فرآیند precompile برای بهبود کارائی و کاهش زمان بارگذاری سایت در اولین درخواست.
  • آزمایش فرآیند استقرار قبل از همگام سازی
    • اطلاع داریم که در صورت بروز اشکال در هنگام استقرار امکان بازگشت به نقطه قبل از استقرار وجود ندارد.
  • از کلیه داده ها و اطلاعات پروژه در محیط مقصد پشتیبان گیری می شود تا در صورت بروز اشکال بتوان به نقطه صفر برگشت کرد.
  • تعیین ترتیب همگام سازی (برای مثال، ابتدا کدها بعد جداول پایگاه داده یا برعکس)
    • در اغلب موارد ما ابتدا کدها را در محیط مقصد مستقر می کنیم.
  • هنگام اجرای عملیات استقرار، چون پروژه یا سایت در مقصد باید از حالت آنلاین خارج شود ، در این مدت پیامی را به کاربران نمایش می دهیم تا بدانند سایت در حال تعمیر و نگهداری است.