به راحتی دونده های GitHub خود را میزبانی کنید

پنجشنبه ۵ دسامبر ۲۰۲۴

کنراداس بی و گدیمیناس جی.

پوسته پوسته شدن و تقویت اقدامات GitHub دونده برای کسانی که بالا هستند ضروری است یکپارچه سازی مداوم / استقرار مداوم (CI/CD) حجم کار میزبانی خود از دوندگان یک راه حل عالی است، اما پیچیده و زمان بر است. این الهام بخش ما برای ایجاد است آتش سوزی هایک ارکستراتور منبع باز برای دوندگان GitHub.

Fireactions به شما امکان می دهد فلز خود را (BYOM) بیاورید و دونده های GitHub خود میزبان را در ماشین های مجازی مبتنی بر Firecracker کوتاه مدت، سریع و ایمن بیاورید. این برای سازمان ها، مشاغل آزاد و سرگرمی هایی که به دنبال آن هستند ایده آل است کاهش زمان صف گردش کار، به حداقل رساندن هزینه ها و کاهش سربار تعمیر و نگهداری.

دستورالعمل های دقیق در مورد نحوه نصب، پیکربندی و استفاده از برنامه را در Fireactions.io بیابید یا از مخزن Fireactions برای اطلاع از کد، راهنمای شروع سریع و فرصت های مشارکت دیدن کنید.

مشکلاتی که باید حل می کردیم

مانند بسیاری از شرکت های نرم افزاری، ما از خط لوله CI/CD برای ساده سازی یکپارچه سازی، آزمایش و استقرار کد استفاده می کنیم.

ما به شدت به GitHub Actions برای مدیریت فرآیند متکی هستیم. با این حال، با گسترش سریع میکروسرویس ها و افزایش تعداد مخازن، ما افزایش حجم کاری CI/CD چالش هایی را برای ثبات و مقیاس پذیری ایجاد کرد.

نقطه درد فوری تاخیرهای طولانی به دلیل مشاغل در صف بود که کل روند توسعه و انتشار ما را کند کرد.

با مقدار زیادی فلز خالی در دست، تصمیم گرفتیم دونده های GitHub خود میزبان را بر روی زیرساخت خود اجرا کنیم. اینجوری میتونستیم بهینه سازی زمان ساخت، افزایش کارایی، و اطمینان از یک خط لوله CI/CD قابل اعتمادتر و مقیاس پذیرتر همانطور که ما به رشد خود ادامه می دهیم.

چندین گزینه برای انجام این کار وجود دارد، مانند Actions Runner Controller، اما به Kubernetes و کانتینرهای ممتاز نیاز دارد، که پیچیدگی را اضافه می‌کند، سربار تعمیر و نگهداری را افزایش می‌دهد و خطرات امنیتی بالقوه ایجاد می‌کند.

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

Fireactions چیست و چگونه کار می کند

ما انتخاب کردیم فشفشهمنبع باز مانیتور ماشین مجازی (VMM)برای استقرار بارهای کاری در ماشین های مجازی میکرو (microVM).

MicroVM ها برای اجرای بارهای کاری نامعتبر مانند کارهای CI/CD ایده آل هستند. برخلاف کانتینرهایی که سیستم عامل میزبان را به اشتراک می گذارند، میکرو وی ام ها هسته سبک وزن خود را اجرا می کنند. این انزوا و امنیت قوی تری را در عین حفظ سرعت و بهره وری منابع فراهم می کند.

با این حال، راه اندازی و نگهداری رانرهای GitHub به زمان و تلاش نیاز دارد. اینجاست که آتش سوزی ها این یک است راه حل CI/CD خود میزبان کاملاً رایگان و منبع باز که دونده های GitHub را خودکار می کند.

در اینجا نحوه کار آن آمده است:

Fireactions چگونه کار می کند

اول، Fireactions فایل پیکربندی را بارگذاری می کند برای تعیین تنظیمات، و شروع می شود استخرها از دوندگان به طور مداوم بررسی می کند تا مطمئن شود دونده های کافی در دسترس هستند.

برای یک دونده جدید، Fireactions یک توکن از GitHub درخواست می کندسپس به سرعت یک microVM ایزوله ایجاد می کند با استفاده از Firecracker پس از اتمام کار، اقدامات را آتش بزنید microVM را از بین می برد. درست مانند دونده های میزبان GitHub، هیچ حالتی بین کارها حفظ نمی شود.

Fireactions به طور خودکار تعداد دوندگان را بر اساس رویدادهای گردش کار ورودی مقیاس می کند. شما می توانید برچسب های شغلی را تعریف کنید و منابع ماشین مجازی را متناسب با نیاز خود سفارشی کنید.

می توانید Fireactions را اجرا کنید هر سرور فلزی معمولی یا ماشین مجازی که از مجازی سازی تودرتو پشتیبانی می کند – ماشین های مجازی در حال اجرا در ماشین های مجازی دیگر. به عنوان مثال، می‌توانید از قالب Fireactions VPS برای راه‌اندازی آسان برنامه در میزبانی Hostinger VPS استفاده کنید.

نتایج ما

آتش‌سوزی‌ها در پیک نتیجه داده‌اند و همه تیم‌هایی که با گردش‌های کاری CI/CD کار می‌کنند تأثیر آن را احساس کرده‌اند.

برای اینکه همه چیز را در چشم انداز قرار دهیم، ضبط کردیم ۸۳۵۱۸۶ دقیقه زمان ساخت تنها در مورد اقدامات آتش سوزی در یک ماه گذشته. این شکل شامل تمام گردش‌های کاری CI/CD، از آزمایش‌های ساده تا خطوط لوله استقرار پیچیده است.

هدف اولیه و حیاتی ما کاهش زمان صف کار تا حداقل ۹۰ درصد بود. در عوض، ما این کار را کرده ایم صف ها را به صفر رساند.

بسته به پیکربندی سرور فلزی لخت و منابع آن، ساخت‌های Fireactions می‌توانند ۲۰ برابر کمتر از دوندگان میزبان GitHub زمان ببرد.به ویژه برای کارهایی که نیاز به منابع زیادی دارند.

میانگین زمان راه اندازی GitHub runner در Fireactions 20 ثانیه است. در همین حال، ایجاد و راه‌اندازی رانر در ماشین‌های مجازی سنتی معمولاً یک دقیقه یا بیشتر طول می‌کشد.

در هاستینگر، ما از بسیاری از ابزارهای منبع باز استفاده می کنیم و می خواهیم به جامعه کمک کنیم. بنابراین، ما از همان ابتدا Fireactions را به عنوان یک منبع باز توسعه دادیم.

تقریباً سه ماه طول کشید تا تیم توسعه اصلی ما متشکل از دو مهندس، همزمان با مدیریت سایر مسئولیت‌ها، راه‌حلی قوی ایجاد کند.

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

ما به تقویت Fireactions بر اساس بازخورد کاربران ادامه می دهیم. ما همچنین همه نوع مشارکت در پروژه را تشویق و ارزش گذاری می کنیم.

Fireactions دومین پروژه منبع باز ما است که اخیرا راه اندازی شده است. ما دستیار هوش مصنوعی Kodee را در ماه سپتامبر راه اندازی کردیم و یک مخزن نسخه ی نمایشی کدی منبع باز را با دستورالعمل هایی در مورد نحوه راه اندازی یک سیستم مشابه به اشتراک گذاشتیم.

نویسنده
نویسنده

کنراد بونیکیس

Konradas، مهندس ارشد سیستم در Hostinger، عملکرد یکپارچه و مقیاس پذیری سیستم های ما را تضمین می کند. او با یک پایه قوی در معماری سیستم، نوآوری را هدایت می کند، از توسعه راه حل های پیشرفته پشتیبانی می کند و به حفظ قابلیت اطمینان پلت فرم های ما کمک می کند. کنراداس در اوقات فراغت خود از کاوش در فناوری های نوظهور و سفر لذت می برد.

نویسنده
نویسنده مشترک

گدیمیناس جی

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


منبع: https://www.hostinger.com/blog/fireactions

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *