معرفی ابزار بامبو شرکت اطلسیان

بخش جدایی ناپذیر فرآیند توسعهٔ نرم‌افزار فارغ از زبان توسعه‌، سکوی هدف و یا میزان تخصص توسعه‌دهندگان آن‌، فرآیند تست و انتشار نرم‌افزار می‌باشد. از آن‌جایی که انتشار دستی نرم‌افزار می‌تواند نسبت به خطاهای انسانی آسیب‌پذیر باشد‌، با رشد روز افزون ویژگی‌های پروژه‌، بررسی تمام جنبه‌های مورد نیاز پروژه‌ قبل از انتشار‌، می‌تواند به کاری طاقت‌فرسا و خارج از کنترل بدل شود که علاوه بر ایجاد هزینه‌های ناخواسته برای سازمان‌، بر کیفیت محصول نهایی تاثیر منفی بگذارد. به همین منظور فرآیند‌های استانداردی توسط توسعه‌دهندگان و سازمان‌ها ابداع شده که با استفاده از خودکار کردن هر چه بیشتر این فرایند، در کنار افزایش سرعت تست و انتشار تغییرات ایجاد شده (اعم از توسعه‌های جدید و یا حذف باگ‌های کشف شده‌) هزینهٔ نگهداری نرم‌افزار را تا حد ممکن کاهش دهد. سیستم‌های یک‌پارچه‌سازی مداوم (Continuous Integration یا آن‌طور که به اختصار شناخته می‌شود CI) این امکان را فراهم می‌کنند که همیشه آخرین تغییرات ارسال شده از طرف توسعه دهنده‌های تیم را از تمام جنبه‌های مورد نیاز مورد بررسی و تست قرار دهند و آمادگی آن را جهت انتشار به طور کامل بررسی کنند. در کنار آن‌، سیستم انتشار مداوم (Continuous delivery یا CD) نیز تغییراتی که توسط CI به طور کامل بررسی شده‌اند را برای انتشار آماده کرده و مراحل تعریف شده در خصوص چگونگی انتشار بسته‌های نهایی را به صورت خودکار و مدیریت شده انجام می‌دهند. سیستم‌های CI/CD با براورده ساختن نیاز‌های انتشار بسته‌های نرم‌افزاری توسعه داده شده توسط تیم برنامه‌نویسی، بررسی کامل اجزاء سیستم قبل از انتشار‌، گزارش تمامی مراحل انجام شده همراه با حداکثر سرعت ممکن در کنار اعلان و بازیابی پیوستهٔ شکست‌ها (Failures) در فرآیند انتشار‌، امروزه به یکی از بخش‌های اصلی ابزار‌های توسعهٔ نرم‌افزار در سازمان‌های بزرگ و کوچک تبدیل شده‌اند. معرفی بامبو بامبو (Bamboo) نرم‌افزار CI/CD توسعه داده شده توسط شرکت اطلسیان‌ (Atlassian)، علاوه بر ارائهٔ تمامی خدمات مورد انتظار از چنین سیستمی‌، قابلیت گسترش با استفاده از گسترهٔ وسیعی از افزونه‌ها و امکان یک‌پارچه شدن با دیگر محصولات شرکت اطلسیان (نظیر بیت‌باکت جهت دریافت پیوستهٔ تغییرات مخازن کد و جیرا جهت مدیریت وظایف مربوط به پروژه) یکی از گزینه‌های پیشرو در میان انتخاب‌های موجود در این زمینه می‌باشد. از آن‌جایی که بامبو خود با استفاده از زبان برنامه‌نویسی جاوا توسعه داده شده‌، امکان اجرای آن و انجام فرآیند‌های CI/CD بر روی تمامی سکوهای پشتیبانی شده توسط جاوا اعم از لینوکس‌، مک و ویندوز را فراهم می‌کند. البته توجه داشته باشید که فارغ از زبان استفاده شده برای توسعهٔ کد جاوا‌، شما می‌توانید کد‌ها و نرم‌افزارهای توسعه داده شده در هر زبانی را با تمامی ابزار‌هایی که جهت بررسی و آماده‌سازی انتشار مورد استفاده قرار می‌دهید برای انجام فرآیند‌های CI/CD به بامبو بسپارید. در بامبو مراحل انجام کار در یک طبقه‌بندی ۳ مرحله‌ای تعریف می‌شوند که این ویژگی امکان مدیریت چگونگی انجام وظایف را (اجرای همزمان یا ترتیبی) به ساده‌ترین شکل ممکن فراهم می‌کند. جزئی‌ترین بخش هر کار با عنوان وظایف Tasks شناخته می‌شوند که به صورت ترتیبی اجرا می‌شوند. گروه مشخصی از وظایف که مسئول انجام یه کار هستند نیز با همین نام یعنی کار (Job) در سیستم تعریف می‌شوند. مجموعهٔ مرتبطی از کار‌ها نیز در سیستم نهایتا در مراحل (Stages) دسته‌بندی می‌شوند که امکان انتخاب اجرای آن‌ها به صورت همزمان (Parallel) یا ترتیبی (Sequential) وجود دارد. همانطور که احتمالا انتظار دارید بامبو تا زمانی که از اجرای موفقیت آمیز تمامی مراحل (و زیر‌بخش‌هایشان) مطمئن نشده باشد‌، آن فرآیند انتشار را کامل نمی‌داند و در صورت مواجهه با هر گونه مشکلی سریعا موضوع را به افراد مسئول تعریف شده گزارش می‌کند. علاوه بر‌این‌، در صورتی که فرآیند کلی تست و انتشار یک یا چند بستهٔ نرم‌افزاری درون یک سازمان زمان‌بر باشد و یا نیاز به منابع سخت‌افزاری قوی‌تری باشد‌، ساختار با انعطاف بالای بامبو برای Scalibility‌، به راحتی و با تعریف Agent‌های راه دور به تعداد مورد نظر، می‌تواند این نیاز را برطرف سازد. مجموعهٔ این ویژگی‌ها در کنار هم قابلیت اطمینان به کد‌های توسعه داده شده توسط تیم توسعه را بالا برده و نتیجتا امکان ریسک‌پذیری و بررسی ویژگی‌های متفاوت را برای تیم توسعه فراهم می‌کند که می‌تواند به افزایش کیفیت نرم‌افزار نهایی کمک شایانی ارائه کند. مقایسهٔ بامبو با Jenkins یکی از معروف‌ترین انتخاب‌های مورد استفاده در دستهٔ نرم‌افزار‌های CI/CD ابزار رایگان جنکینز است که به صورت متن‌باز ارائه می‌شود. جدول زیر دسته‌ای از ویژگی‌های ارائه شده در بامبو را با جنکینز مورد مقایسه قرار می‌دهد که می‌تواند در انتخاب ابزار مناسب تیم‌تان بسیار کمک کننده باشد:   ویژگی بامبو جنکینز پشتیبانی از انشعاب‌های (Branching) کد در گیت درون‌سازی شده دارد ندارد سیستم انتشار درون‌سازی شده دارد ندارد پشتیبانی درون‌سازی شده از سیستم جیرا (Jira) دارد ندارد پشتیبانی درون‌سازی شده از سیستم بیت‌باکت (Bitbucket) دارد ندارد Restful API دارد دارد فرآیند تست خودکار دارد با استفاده از پلاگین مدیریت کاربران و دسترسی‌هایشان دارد با استفاده از پلاگین گفتار پایانی بدیهی است که با تمامی ویژگی‌های ارائه شده از طرف بامبو، همچنان تیم توسعهٔ نرم‌افزار نقش مهمی در ارتقاء کیفیت نرم‌افزار تولیدی بازی می‌کند که با بهره‌گیری از روش‌های Test driven development (یا به اختصار TDD) و گسترش قابلیت تست پذیری کد توسعه داده شده‌، می‌تواند بر افزایش کیفیت نرم‌افزار تاثیر مستقیم گزارده و از امکانات ارائه شده توسط بامبو این چرخه را کامل کند. شرکت پارس‌دانی‌سان از سال ۱۳۹۱ با بهره‌گیری از نیروهای متخصص در این زمینه به ارائهٔ دوره‌های آموزشی ابزار بامبو و دیگر ابزار‌های مرتبط پرداخته است. همچنین خدمات مشاوره و پشتیبانی حرفه‌ای تمامی محصولات ارائه شده از طرف شرکت اطلسیان را به صورت رسمی در کشورمان ایران ارائه می‌کند.