نظرات متفاوتی که در تعریف DevOps وجود دارد باعث می شود دیدگاه های متفاوتی در پیاده سازی آن مشاهده شود. برخی آن را یک فرهنگ‌ می دانند و نه یک نقش یا جایگاه سازمانی و از این رو چیزی تحت عنوان DevOps Engineer یا DevOps Architect که کم و بیش در آگهی های استخدام می‌بینیم وجود ندارد. در حقیقت با این دیدگاه مزیت پیاده سازی DevOps همان کاهش فاصله بین تیم های مختلف خواهد بود با این تفاوت که مسئولیت‌ها و بار کاری بین همه تقسیم‌ می شود و فضاهای ایزوله و مستقل کاهش میابد، ادامه این مسیر منجر به پدیدار شدن اصطلاحاتی مانند DevSecOps یا NetOps شده است که در حقیقت شرح شغلی های جدیدی برای تیم هاب امنیت و شبکه در محیط های DevOps-محور است. اما در دنیای واقعی برای پیاده سازی این ایده ها به ابزارهای جدیدی نیاز است، از این رو مدیران سیستم یا توسعه دهندگان لازم است دانش پیاده سازی، راهبری و استفاده از این ابزارها را داشته باشند و روال هاي قبلی را بر آن‌منطبق سازند و نقش های تیم های مختلف بازبینی شود و این دقیقا جایی است که نقش هاب مذکور (DevOps Engineer و DevOps Architect و ...) ایجاد می شود. در پست هاي بعدی بیشتر به این ابزارها و کارکرد آن ها خواهیم پرداخت.

استفاده از مطلب، با ذکر منبع بلامانع است.

DevOps از فرآیندهای مختلفی تشکیل شده است و از مجموعه ابزارهای متنوعی که می تواند به ما در پیاده سازی آن کمک کند.
در این پست قصد داریم به معرفی و بررسی CI/CD بپردازیم که از آن به عنوان یکی از ارکان اصلی در پیاده سازی موفقیت آمیز DevOps یاد می شود. اگر دقیق تر نگاه کنیم ما با دو بخش مواجه هستیم:
بخش CI و بخش CD.
به زبان ساده یکی از اهداف اصلی DevOps کم کردن فاصله واحدهای مختلف سازمان در توسعه، تست، ایجاد، تحویل و سایر عملیات روی پروژه های سازمان است.  بخش CI مخفف Continuous Integration است و هدف آن ادغام دايمی کدها با ریپازیتوری اصلی است که در نهایت تصدیق آن با مشارکت واحد توسعه و تست انجام می شود. شکل قدیمی توسعه نرم افزار به این صورت است که کد نوشته شده توسط توسعه دهنده هفته ها طول مي كشد تا توسط تیم تست تایید شود.

میدانیم که در محیط عملیاتی به ابزاری به عنوانOrchestrator نیاز داریم که مشهورترین راهکار Kubernetes نام دارد. اما راهکارهای دیگری نیز به وجود آمده اند که بر بستر Kubernetes کار می کنند اما قابلیت ها و ویژگی های متفاوتی به آن اضافه کرده اند. بسیاری از این راهکارها در بستر Cloud پیاده سازی شده اند مانند EKS بر بستر AWS و یا GKE بر بستر Google Cloud Platform. اما شرکت Redhat نیز راهکاری را ارایه نموده است به نام OpenShift. نسخه Enterprise آن Redhat Openshift نام دارد که هم به صورت On-Premise و هم روی Private/Public Cloud پیاده سازی می شود. نسخه Community آن در ابتدا OpenShift Origin نام داشت اما اخیرا به نام OKD منتشر می شود.
برخی از قابلیت ها در Kubernetes به شکل دیگری در Openshift ارایه می شوند مثلا در Kubernetes از Helm Charts برای نصب پکیج استفاده می شود و یا از Ingress در تنظیمات شبکه برای ارابه سرویس استفاده می شود که نوعی reverse proxy بر اساس nginx است اما در Openshift از Templateهای به عنوان پکیج استفاده می شود و یا برای شبکه سرویس ها از Route استفاده می شود که بر اساس F5-Big IP ساخته شده است.

استفاده از مطلب، با ذکر منبع بلامانع است.

امروزه با توجه به محیط رقابتی نرم افزارها، نیاز است، تولید، اعمال تغییرات و انتشار نسخ متعدد با بالاترین کیفیت و قابلیت اطمینان در کمترین زمان ممکن انجام شود. یکی از راهکارهای DevOps در این خصوص پیاده سازی محیطی یکپارچه جهت اجرای اصول CI/CD است. Jenkins از جمله ابزارهای قدرتمندی است که می توان جهت خودکارسازی، بهینه سازی و مدیریت چرخه توسعه نرم افزار از آن استفاده کرد.
از سوی دیگر مدیریت نسخه، مکانیزمی جهت ذخیره تغییرات و مدیریت فایل ها در طول زمان است تا در صورت نیاز بتوان در هر زمان به نسخه مشخصی بازگشت. همچنین تعامل بین افراد یک تیم نرم¬افزاری در راستای خودکارسازی فرایندها از دیگر اهداف سیستم های مدیریت نسخه است. از این رو Git به عنوان یکی از محبوب¬ترین و قدرتمندترین سیستم های مدیریت نسخه توزیع شده و همچنین از جمله ابزارهای لازم به خصوص برای برنامه¬نویسان است.

EN / FA

فناوران آنیسا - خانه لینوکس ایران

تهران، میدان آرژانتین، خ وزرا، کوچه هشتم، یحیوی، پلاک ۴

 اطلاعات تماس:

  • 021-88716168
  • 021-88712172
  • 0910-8555111

info @ anisa.co.ir

© فناوران آنیسا - خانه لینوکس ایران | تمامی حقوق این سایت تحت مجوز GFDL برای فناوران آنیسا محفوظ است.
design by www.digitaldesign.ir