راه پرداخت
رسانه فناوری‌های مالی ایران

رویکرد چابک توسعه محصول برای خدمات بانکداری دیجیتال / یکپارچه‌سازی مستمر و تحویل و استقرار پیوسته (CI/CD)

مهدی مهربان، کارشناس پشتیبانی شبکه ادارات مرکزی شرکت گسترش فناوری‌های نوین / CI/CD یا یکپارچه‌سازی مستمر (CI) و تحویل و استقرار مستمر (CD)، روشی است که اغلب با اتوماسیون مراحل توسعه اپلیکیشن، تحویل برنامه‌ها را تسریع می‌کند. این رویکرد به دلیل کاهش زمان ورود به بازار، پاسخ بهنگام به بازخوردها، کاهش قابل توجه عملیات دستی و تسهیل و تسریع یکپارچه‌‏‏سازی مؤلفه‌‏‏های محصول و راهکار، مورد توجه فین‏‌تک‌‏‏ها و استارت‏اپ‏‏‌ها در سراسر جهان بوده است.

مؤسسه تحقیقات و مشاوره مدیریت مکنزی، رویکرد CI/CD را یکی از ابزارهای تبدیل‌شدن به استارت‏اپی در کلاس جهانی معرفی کرده است. البته بانک‌‏‏هایی نظیر ABN AMRO در هلند نیز به این رویکرد توجه داشته‏‌اند و از آن برای رسیدن به چابکی بهره گرفته‌‏اند. در این نوشتار رویکرد و روش «یکپارچه‌سازی مستمر و تحویل و استقرار پیوسته (CI/CD)» بحث و بررسی خواهد شد.


CI/CD چیست؟


CI/CD پروسه‌ای مستمر برای خودکارسازی (Automation) و پایش (Monitoring) دائم چرخه عمر یک اپلیکیشن است. این پروسه شامل یکپارچه‌سازی، تست، تحویل و استقرار است. به‌ طور کلی، به مجموعه این عملیات، خط لوله CI/CD یا
 CI/CD pipeline گفته می‌شود که با همکاری تیم‌ توسعه و مهندسان دواپس (DevOps) با رویکرد مدیریت چابک (Agile) پیاده‌سازی می‌شود.

چرخه بی‏نهایت CI/CD

 یکپارچه‌‏‏سازی مستمر چیست؟


یکپارچه‌‏‏سازی مستمر (Continuous Integration) به تیم‌های مهندسی چابک و دواپس کمک می‌کند تا تغییرات اعمال‌شده روی سورس‌کد در سیستم هر یک از برنامه‏‌نویسان و دولوپرها دائماً با مخزن سورس‌کد اصلی ادغام و یکپارچه‏‌سازی شوند.

باید توجه داشت که این کار ابتدا با پیاده‌سازی و اجرای یکسری تست‏‌ها انجام می‌‏شود تا اطمینان حاصل شود که کامپوننت‌ها/ کدهای جدید با کامپوننت‌ها/ کدهای قدیمی ناسازگاری ندارند. این استراتژی اساساً دو نتیجه و دستاورد بسیار مهم خواهد داشت: اولی به حداقل رسیدن بروز تداخل (Conflict) مابین فیچرهای جدیدی که توسط برنامه‌نویسان مختلف افزوده می‌شوند و دوم تضمین اینکه برنامه‏‌نویسان همواره به آخرین نسخه از تغییرات دسترسی دارند.


تحویل مستمر چیست؟


تحویل مستمر (Continuous Delivery) گام بعد از یکپارچه‌‏سازی مستمر است و این تضمین را ایجاد می‌کند که هر زمان که سازمان تمایل داشته باشد، تیم‌های توسعه نرم‌افزار می‌توانند با اطمینان خاطر کدهای جدید را روی سرور مستقر کنند؛ چراکه قبلاً تست‌های مختلفی روی سورس‌کد اعمال شده و هیچ مشکلی در ارتباط با انتشار نسخه جدید نرم‌افزار وجود نخواهد داشت.

در این فرایند، اقداماتی همچون ساخت (Build)، بسته‌‏سازی (پکیج‌کردن فایل اجرایی با فایل‌های مورد نیاز برای اجرا شدن فایل اجرایی) و سایر کارهای لازم برای کارا بودن یک نرم‌افزار نیز تکمیل می‏‌شوند. تحویل مستمر (CD) این امکان را به توسعه‌دهندگان می‌دهد که به صورت روزانه،‌ هفتگی یا ماهانه، نسخه جدید نرم‌افزار خود را در دسترس کاربران واقعی خود قرار دهند.

مسیر CI/CD

استقرار مستمر چیست؟


استقرار مستمر (Continuous Deployment) پس از تحویل مستمر صورت می‌گیرد؛ بدین‌ شکل که هر تغییری که در سورس‌کد اعمال شود و با موفقیت تست‌های مختلف را پشت سر گذارد، توسط سیستم به‌صورت خودکار روی سرور مستقر می‌شود و هرگز برای این کار نیازی به دخالت عامل انسانی نخواهد بود و تنها در صورتی متوقف می‌شود که سورس‌کد در تست‌ها موفق نباشد.

در مجموع می‏‌توان گفت از مزایای استقرار مستمر این است که توسعه‌دهندگان می‌توانند تمرکز خود را روی کدنویسی گذاشته و انتشار خلاقیت‌هایی که به خرج می‌دهند را به سیستم‌های کامپیوتری واگذار کنند. این کار منجر خواهد شد توسعه‌دهندگان، بازخوردهای مرتبط با تغییرات مد نظر خود را با سرعت بیشتری از کاربران تحویل گیرند.


جمع‏‏‌بندی و سخن پایانی


در مطالب ارائه‌شده دو هدف مشترک دنبال می‌شود:

  • سرعت بیشتر
  • اطمینان بالاتر

در واقع رویکرد CI/CD نسبت به روش استقرار فرآورده‌های نرم‌افزاری در محیط‌های کارفرمایی سرعت و اطمینان بالاتری ایجاد می‌‏کند. رسیدن به سرعت بیشتر در استقرار، از طریق حذف تمامی کارهای دستی مربوط به استقرار محقق می‌شود که این راهکار در مفهوم تحویل و استقرار مستمر (CD) تعبیه شده و دستیابی به اطمینان بالاتر نیز در گرو انجام صحیح تغییرات است که مفهوم یکپارچه‌‏سازی مستمر (CI) تضمین‌‏کننده آن است.

شرکت‏‌های فناوری اطلاعات بانک‌‏ها و شرکت‏‌های ارائه‌کننده راهکارهای بانکی، به چند صورت از مزایای رویکرد CI/CD بهره می‌‏‏برند:

  • تسریع در پاسخگویی به نیازمندی‏‏‌های بسیار متغیر مشتریان؛
  • کم‌شدن اثرات دردسر‏های بزرگ در سیستم‏‏‌های بانکی که ناشی از مقیاس بزرگ Core Banking و تعدد کارهای همزمان توسعه روی آنهاست؛
  • تسهیل و تسریع برآورده‌‏‏سازی تغییرات رگولاتوری؛
  • کم‌شدن ریسک‌‏‏های ناشی از قطع شدن سیستم بانکی به دلیل کدهای ناسازگار و دارای خطا و افزایش قابلیت اطمینان؛
  • کاهش زمان ورود/ عرضه به بازار (Time to Market)؛
  • افزایش امنیت راهکارها.
ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.