مدل GitOps چیست و چرا شروع به کار می کند

به نظر می رسد دنیای فناوری دوست دارد اصطلاحات جدیدی را بسازد که تعریف آن همیشه آسان نیست – و هنگامی که به کار می رود ، به نظر می رسد که اصطلاحات اصطلاحی جدید به وجود می آید.

به عنوان مثال ، همانطور که مردم بالاخره با درک DevOps احساس امنیت کردند ، DevSecOps نیز همراه شد. درک دومی نسبتاً آسان است زیرا اساساً به معنای افزودن مزایای امنیتی به تیم های DevOps است. در حال حاضر ، سازمان ها GitOps را به عنوان یک استراتژی استقرار Kubernetes اضافه می کنند ، که برای گروک چندان شهودی نیست.

خوشبختانه ، اگر DevOps یا DevSecOps را درک می کنید ، باید بتوانید GitOps را به راحتی انتخاب کنید.

همانطور که کریستین هرناندز ، مدیر ارشد بازاریابی فنی در Red Hat (و یکی از علاقه مندان به GitOps) اخیراً در پادکست متمرکز بر GitOps مشاهده کرد ، “تفاوت [between DevOps and GitOps] واقعاً بسیار ظریف است. “

ما اینجا هستیم تا مدل GitOps را دقیقاً توضیح دهیم و بدانیم که چرا باید بخشی از استراتژی استقرار Kubernetes شما باشد.

مدل GitOps Demystified

اساساً ، GitOps عبارت است از افزودن کنترل نسخه خودکار به هر جنبه ای از محیط CI/CD مبتنی بر ظرف (یکپارچه سازی مداوم/تحویل مستمر یا استقرار)-معمولاً با استفاده از Git ، یک سیستم کنترل نسخه توسعه یافته توسط لینوس توروالدز ، بنیانگذار لینوکس ، برای ردیابی فایل تغییرات در لینوکس

Git تبدیل به یک استاندارد شده است که توسط توسعه دهندگان در پروژه های نرم افزاری اختصاصی و منبع باز برای هماهنگی تلاش های مشترک در طول توسعه نرم افزار استفاده می شود. این سیستم نسخه ای است که توسط بسیاری از مخازن نرم افزار منبع باز محبوب مانند GitHub و GitLab استفاده می شود.

اگرچه روشهای مختلفی برای تمرین GitOps وجود دارد ، اما همه آنها اساساً از دستورالعمل هایی که توسط استارتاپ Weaveworks مدیریت Kubernetes مستقر در انگلستان ارائه شده است ، استفاده کردند ، که عبارت “GitOps” را ارائه کرد. همچنین نرم افزاری را که برای استقرار GitOps ، به ویژه Flux توسعه داده است ، به بنیاد محاسبات بومی ابر ارائه کرده است.

این روزها ، این شرکت آنقدر پیچیده با GitOps است که خود را “شرکت GitOps” می نامد.

جوردی مون ، مدیر بازاریابی محصول Weavework ، به ITPro Today گفت که الکسیس ریچاردسون ، بنیانگذار و مدیرعامل شرکت ، در اصل روش را “عملیات با درخواست کشیدن” نامید ، که به اصطلاح Git برای ارائه کد برای بررسی و ادغام تبدیل شده است. پروژه

وی افزود: “مدتی پس از آن ، فردی در تیم اصطلاح GitOps را به کار برد تا یادآوری آن آسان تر شود.”

به گفته مون ، مدل GitOps راهی برای DevOps است که به طور م underثر تحت یک مدل “زیرساخت به عنوان کد” کار کند که در آن همه اجزای سیستم-حجم کار برنامه ، پیکربندی و زیرساخت-مدیریت شده و به عنوان کد ارائه می شود.

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

مون می گوید: “در نهایت ، آنچه این روش به شما اجازه می دهد این است که در واقع جریان تحویل مداوم خودکار است ، اما با بررسی و توازن خاصی که می خواهید.”

اتخاذ مدل GitOps

از آنجا که GitOps اساساً تغییراتی در شیوه های استاندارد DevOps است ، با آینده نگری و برنامه ریزی مناسب ، انجام این حرکت باید برای بیشتر سازمانها چیزی بیش از یک دست انداز در راه نباشد.

“آیا نیاز به کار زیادی دارد؟” مون گفت “نه لزوما. این به وابستگی زیادی به Git نیاز دارد ، بنابراین اگر مردم Git را دلهره آور بدانند ، احتمالاً GitOps کار آنها نیست.”

به نظر می رسد بسیاری از تیم های DevOps Git را دلهره آور نمی دانند: در نظرسنجی توسعه دهندگان Stack Overflow که اخیراً 2021 منتشر شده است ، بیش از 90 درصد از 76،253 پاسخ دهندگان گفته اند که “توسعه گسترده ای” با استفاده از Git در سال گذشته انجام داده اند. این امر بر این واقعیت تأکید می کند که Git یک ابزار نسخه سازی برای اکثر توسعه دهندگان آشنا است – تا آنجا که مون در Weaveworks گفت که “این امر را بدیهی می دانند” که اکثر تیم های DevOps از ویژگی های کافی Git آگاه هستند تا بتوانند با آن مسلط شوند.

اتخاذ GitOps همچنین از نظر زیرساخت ها سرمایه گذاری کمی یا بدون نیاز دارد – این شامل نرم افزار مورد نیاز برای پشتیبانی از روش شناسی است. اکثر سیستم عامل های Kubernetes در حال حاضر دارای کنترل کننده Kubernetes هستند که برای هماهنگ سازی خوشه ها با مخزن Git ضروری است. این اطمینان می دهد که آنها نسخه مناسب هر نرم افزاری را اجرا می کنند و در صورت بروز مشکل ، مانند اشکال احتمالی یا آسیب پذیری که ممکن است نیاز به بازگشت به نسخه قبلی داشته باشد ، به اپراتورهای سیستم هشدار می دهند. Flux احتمالاً محبوب ترین نرم افزار است ، اما نرم افزارهای دیگری مانند Argo CD وجود دارد که توسط Red Hat در OpenShift استفاده می شود.

این بدان معناست که اکثر شرکت هایی که ظروف را در یک محیط بومی ابر مستقر می کنند از قبل ابزارهایی برای حرکت از DevOps وانیلی به GitOps در دست دارند. برای سازمانهایی که استراتژی استقرار Kubernetes آنها کنار گذاشتن یک پلتفرم عرضه شده توسط فروشندگان برای راه حل خانگی تر است ، مدل GitOps مناسب است. اکثر کنترلرهای Kubernetes ، از جمله Flux و Argo CD ، منبع باز هستند ، به این معنی که بارگیری و نصب آنها به صورت رایگان در دسترس است.

سئو PBN | خبر های جدید سئو و هک و سرور