CICD برای استارتاپ ها: چه ابزارهایی وجود دارد و چرا نه تنها شرکت های بزرگ و معروف از آنها استفاده می کنند

توسعه دهندگان ابزارهای CICD اغلب شرکت های بزرگ را به عنوان مشتریان فهرست می کنند - مایکروسافت، Oculus، Red Hat، حتی فراری و ناسا. به نظر می رسد که چنین برندهایی فقط با سیستم های گران قیمتی کار می کنند که یک استارتاپ متشکل از چند توسعه دهنده و یک طراح قادر به پرداخت آن نیستند. اما بخش قابل توجهی از ابزارها برای تیم های کوچک در دسترس است.

در زیر به شما خواهیم گفت که چه چیزی می توانید به آن توجه کنید.

CICD برای استارتاپ ها: چه ابزارهایی وجود دارد و چرا نه تنها شرکت های بزرگ و معروف از آنها استفاده می کنند
Фото - Csaba Balazs - پاشیدن

سانسور پی اچ پی

یک سرور CI منبع باز که ساخت پروژه ها را در PHP آسان می کند. این انشعاب پروژه است PHPCI. خود PHPCI هنوز در حال توسعه است، اما نه به اندازه قبل فعال است.

PHP Censor می تواند با GitHub، GitLab، Mercurial و چندین مخزن دیگر کار کند. برای تست کد، این ابزار از کتابخانه های Atoum، PHP Spec، Behat، Codeception استفاده می کند. اینجا فایل نمونه تنظیمات مورد اول:

test:
    atoum:
        args: "command line arguments go here"
        config: "path to config file"
        directory: "directory to run tests"
        executable: "path to atoum executable"

در نظر گرفته شدهسانسور PHP برای اجرای پروژه های کوچک مناسب است، اما باید خودتان آن را میزبانی و پیکربندی کنید (خود میزبانی). این کار با مستندات نسبتاً دقیق ساده شده است - در GitHub است.

رکس

Rex مخفف Remote Execution است. این سیستم توسط مهندس Ferenc Erki برای خودکارسازی فرآیندها در مرکز داده توسعه داده شد. Rex بر اساس اسکریپت‌های Perl است، اما برای تعامل با ابزار، نیازی به دانستن این زبان نیست - بیشتر عملیات (به عنوان مثال، کپی کردن فایل‌ها) در کتابخانه تابع توضیح داده شده‌اند و اسکریپت‌ها اغلب در ده خط قرار می‌گیرند. در اینجا یک مثال برای ورود به چندین سرور و اجرای uptime آورده شده است:

use Rex -feature => ['1.3'];

user "my-user";
password "my-password";

group myservers => "mywebserver", "mymailserver", "myfileserver";

desc "Get the uptime of all servers";
task "uptime", group => "myservers", sub {
   my $output = run "uptime";
   say $output;
};

توصیه می کنیم آشنایی خود را با این ابزار شروع کنید راهنمای رسمی и کتاب الکترونیکی، که در حال حاضر در حال تکمیل است.

Open Build Service (OBS)

این بستری برای بهینه سازی توسعه توزیع ها است. کد آن باز است و در مخزن در است GitHub. نویسنده ابزار شرکت است ناول. او در توسعه توزیع SuSE شرکت کرد و این پروژه در ابتدا openSUSE Build Service نامیده شد. تعجبی ندارد که Open Build Service استفاده کنید برای ساخت پروژه ها در openSUSE، Tizen و VideoLAN. Dell، SGI و Intel نیز با این ابزار کار می کنند. اما در بین کاربران معمولی استارت آپ های کوچکی نیز وجود دارد. به خصوص برای آنها، نویسندگان جمع آوری کردند (صفحه 10) از پیش پیکربندی شده است بسته نرم افزاری. خود سیستم کاملاً رایگان است - برای استقرار آن فقط باید برای میزبانی یا سرور سخت افزاری پول خرج کنید.

اما در طول وجود خود، این ابزار هرگز جامعه گسترده ای را به دست نیاورده است. با اينكه او بود بخشی از شبکه توسعه دهندگان لینوکس که مسئول استانداردسازی سیستم عامل باز است. ممکن است سخت باشد پاسخ سوال خود را در انجمن های موضوعی بیابید. اما یکی از ساکنان Quora اشاره کرد که در چت IRC در Freenode، اعضای انجمن به راحتی پاسخ می دهند. مشکل یک جامعه کوچک جهانی نیست، زیرا راه حل بسیاری از مشکلات شرح داده شده است در اسناد رسمی (PDF و EPUB). همانجا می توانید پیدا کنید بهترین روش ها برای کار با OBS (نمونه ها و مواردی وجود دارد).

روندک

ابزار باز (GitHub) که وظایف را در مرکز داده و ابر با استفاده از اسکریپت ها خودکار می کند. یک سرور اسکریپت خاص مسئول اجرای آنها است. می توان گفت که Rundeck یک "دختر" از پلت فرم مدیریت برنامه ControlTier است. Rundeck در سال 2010 از آن جدا شد و عملکردهای جدیدی به دست آورد - به عنوان مثال، ادغام با Puppet، Chef، Git و Jenkins.

این سیستم در استفاده می شود شرکت والت دیزنی, Salesforce и بلیط. اما این پروژه برای استارت آپ ها نیز مناسب است. این به این دلیل است که Rundeck تحت مجوز Apache v2.0 مجوز دارد. علاوه بر این، استفاده از ابزار بسیار آسان است.

یکی از ساکنان Reddit که با Rundeck کار می کرد، می گوید، که بیشتر مشکلات را به تنهایی حل کرد. در این امر به او کمک کردند اسناد و کتاب های الکترونیکی، توسط توسعه دهندگان منتشر شده است.

همچنین می توانید راهنمایی های مختصری برای راه اندازی ابزار به صورت آنلاین پیدا کنید:

GoCD

ابزار باز (GitHub) کنترل نسخه کد خودکار. در سال 2007 توسط این شرکت معرفی شد ThoughtWorks - سپس پروژه کروز نام گرفت.

GoCD توسط مهندسان سایت فروش آنلاین اتومبیل AutoTrader، خدمات شجره نامه Ancestry و ارائه دهنده کارت اعتباری Barclaycard استفاده می شود. با این حال، یک چهارم از کاربران ابزار یک تجارت کوچک را تشکیل می دهد.

محبوبیت این سرویس در بین استارتاپ ها را می توان با باز بودن آن توضیح داد - تحت مجوز Apache v2.0 توزیع می شود. در همان زمان، GoCD از آن است پلاگین هایی برای ادغام با نرم افزارهای شخص ثالث - سیستم های مجوز و راه حل های ابری. سیستم واقعی کاملا پیچیده در مسترینگ - تعداد زیادی اپراتور و تیم دارد. همچنین برخی از کاربران از رابط کاربری ضعیف شکایت دارند و نیاز پیکربندی عوامل برای مقیاس بندی

CICD برای استارتاپ ها: چه ابزارهایی وجود دارد و چرا نه تنها شرکت های بزرگ و معروف از آنها استفاده می کنند
Фото - مت وایلدبور - پاشیدن

اگر می خواهید GoCD را در عمل امتحان کنید، می توانید در وب سایت پروژه پیدا کنید اسناد رسمی. همچنین می توان آن را به عنوان منبع اطلاعات اضافی توصیه کرد وبلاگ توسعه دهنده GoCD با دفترچه های راهنما در تنظیم.

جنکینز

جنکینز به طور گسترده ای شناخته شده است و در نظر گرفته نوعی استاندارد در زمینه CICD - البته، بدون آن این انتخاب کاملاً کامل نخواهد بود. این ابزار در سال 2011 ظاهر شد، شدن فورکی از پروژه هادسون از اوراکل.

امروز با جنکینز کار می کنند در ناسا، نینتندو و سایر سازمان های بزرگ. با این حال بیش از 8 درصد کاربران تیم های کوچک تا ده نفر را تشکیل می دهند. محصول کاملا رایگان و توزیع شده است تحت مجوز MIT. با این حال، شما باید خودتان جنکینز را میزبانی و پیکربندی کنید - این به یک سرور اختصاصی نیاز دارد.

در سراسر وجود ساز، جامعه بزرگی پیرامون آن شکل گرفته است. کاربران به طور فعال در موضوعات در ارتباط هستند ق и گروه های گوگل. مطالب مربوط به جنکینز نیز به طور منظم در Habré ظاهر می شود. اگر می خواهید بخشی از جامعه شوید و با جنکینز شروع به کار کنید، وجود دارد اسناد رسمی и راهنمای توسعه دهنده. ما همچنین راهنماها و کتاب های زیر را توصیه می کنیم:

جنکینز چندین پروژه جانبی مفید دارد. اولین مورد یک افزونه است پیکربندی به عنوان کد. راه اندازی Jenkins را با API های خوانا آسان می کند که حتی مدیران بدون دانش عمیق از ابزار می توانند آن را درک کنند. دوم سیستم است جنکینز ایکس برای ابر با خودکار کردن برخی از وظایف معمول، تحویل برنامه های کاربردی مستقر در زیرساخت های فناوری اطلاعات در مقیاس بزرگ را تسریع می بخشد.

Buildbot

این یک سیستم یکپارچه سازی مداوم برای خودکارسازی چرخه ساخت و آزمایش برنامه ها است. هر بار که هر تغییری در کد ایجاد می شود، به طور خودکار عملکرد کد را بررسی می کند.

نویسنده این ابزار مهندس برایان وارنر بود. امروز او در حال انجام وظیفه است تغییر کرد گروه ابتکاری کمیته نظارت Buildbot که شامل شش توسعه دهنده است.

Buildbot استفاده می شود پروژه هایی مانند LLVM، MariaDB، Blender و Dr.Web. اما در پروژه های کوچکتر مانند wxWidgets و Flathub نیز استفاده می شود. این سیستم از تمام VCS های مدرن پشتیبانی می کند و دارای تنظیمات ساخت انعطاف پذیر با استفاده از پایتون برای توصیف آنها است. به شما کمک می کند با همه آنها کنار بیایید. اسناد رسمی و آموزش های شخص ثالث، برای مثال، در اینجا یک آموزش کوتاه است کتابچه راهنمای IBM.

البته، این همش نیست ابزارهای DevOps که سازمان های کوچک و استارتاپ ها باید به آن توجه کنند. ابزار مورد علاقه خود را در نظرات بنویسید و ما سعی خواهیم کرد در یکی از مطالب زیر در مورد آنها صحبت کنیم.

آنچه در وبلاگ شرکتی در مورد آن می نویسیم:

منبع: www.habr.com

اضافه کردن نظر