CICD для стартапу: які є інструменти, і чому ними користуються не лише великі та відомі компанії

Розробники CICD-інструментів часто вказують як клієнтів великі компанії - Microsoft, Oculus, Red Hat, навіть Ferrari та NASA. Здавалося б, такі бренди працюють тільки з дорогими системами, які не зможе дозволити собі умовний стартап з пари розробників і дизайнера. Але значна частина інструментів доступна і для невеликих команд.

На що можна звернути увагу – розповімо далі.

CICD для стартапу: які є інструменти, і чому ними користуються не лише великі та відомі компанії
фото - Csaba Balazs - Unsplash

PHP Censor

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 Censor непогано підходить для розгортання невеликих проектів, але хостити і налаштовувати його доведеться самостійно (self-hosted). Це завдання спрощує досить докладна документація. вона є на GitHub.

Rex

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. Автор інструменту - компанія Novell. Вона брала участь у розробці дистрибутива SuSE, а цей проект спочатку назвала openSUSE Build Service. Не дивно, що Open Build Service використовують для складання проектів у openSUSE, Tizen та VideoLAN. З інструментом також працюють Dell, SGI та Intel. Але є серед постійних користувачів та невеликі стартапи. Спеціально для них автори зібрали (стр.10) налаштований програмний пакет. Сама система повністю безкоштовна - витратити гроші доведеться тільки на хостинг або залізний сервер для її розгорнення.

Але за весь час існування інструмент так і не обзавівся широкою спільнотою. Хоча він був частиною Linux Developer Network, що відповідає за стандартизацію відкритої ОС. Буває складно знайти на тематичних форумах відповідь на питання, що цікавить. Але один з резидентів Quora зазначив, що в IRC-чаті на Freenode учасники спільноти відповідають досить охоче. Проблема маленького ком'юніті не глобальна, оскільки вирішення багатьох завдань описано в офіційній документації (PDF та EPUB). Там же можна знайти найкращі практики по роботі з OBS (є приклади та кейси).

Rundeck

Відкритий інструмент (GitHub), що автоматизує завдання в дата-центрі та хмарі за допомогою скриптів. За їхнє виконання відповідає спеціальний сервер сценаріїв. Можна сказати, що Rundeck – це «дочка» платформи для керування програмами ControlTier. Від неї Rundeck відокремився в 2010 році і обзавівся новою функціональністю - наприклад, інтеграціями з Puppet, Chef, Git і Jenkins.

Системою користуються в The Walt Disney Company, Salesforce и Ticketmaster. Але проект підходить і для стартапів. Це пов'язано з тим, що Rundeck поширюється ліцензією Apache v2.0. При цьому інструмент досить простий у використанні.

Резидент Reddit, який працював з Rundeck, каже, що вирішував більшість труднощів самостійно. Із цим йому допомогли документація та електронні книги, опубліковані розробниками.

Також у мережі можна знайти короткі посібники з налаштування інструменту:

GoCD

Відкритий інструмент (GitHub) автоматизуючий контроль версій коду. Його представила у 2007 році компанія ДумкаРоботи - Тоді проект називався Cruise.

З GoCD працюють інженери онлайн-ресурсу з продажу автомобілів AutoTrader, генеалогічний сервіс Ancestry та постачальник кредитних карток Barclaycard. Проте чверть користувачів інструменту складає малий бізнес.

Популярність сервісу серед стартапів можна пояснити його відкритістю – він розповсюджується за ліцензією Apache v2.0. При цьому GoCD має плагіни для інтеграції зі стороннім програмним забезпеченням — системами авторизації та хмарними рішеннями. Правда система досить складна в освоєнні - у неї велика кількість операторів та команд. Також деякі користувачі скаржаться на невдалий інтерфейс та необхідність настроювати агенти для масштабування.

CICD для стартапу: які є інструменти, і чому ними користуються не лише великі та відомі компанії
фото - Matt Wildbore - Unsplash

Якщо ви хочете випробувати GoCD на практиці, то на сайті проекту можна знайти офіційну документацію. Як джерело додаткової інформації також можна рекомендувати блог розробників GoCD з керівництвами з налаштування.

Дженкінс

Jenkins широко відомий та вважається своєрідним стандартом у сфері CICD – звісно, ​​без нього ця добірка була б не зовсім повною. Інструмент з'явився у 2011 році, став відгалуженням проекту Hudson від Oracle.

Сьогодні з Jenkins працюють у NASA, Nintendo та інших великих організаціях. Однак більше 8% Користувачів припадає на невеликі колективи до десяти осіб. Продукт повністю безкоштовний та поширюється за ліцензією MIT. Однак хостити та налаштовувати Jenkins доведеться самостійно – йому потрібен виділений сервер.

За час існування інструменту навколо нього сформувалося широке співтовариство. Користувачі активно спілкуються в тредах на Reddit и Google Групи. Матеріали Jenkins також регулярно з'являються на Хабре. Якщо ви хотіли б стати частиною комьюніті і почати роботу з Jenkins, є офіційна документація и довідник від розробників. Ще ми рекомендуємо наступні гайди та книги:

Jenkins має кілька корисних сторонніх проектів. Перший - плагін Конфігурація як код. Він спрощує налаштування Jenkins за рахунок легкочитаних API, які зрозумілі навіть адміністраторам без глибоких знань інструменту. Другий – система Дженкінс X для хмари. Вона прискорює доставку програм, що розгортаються на масштабній ІТ-інфраструктурі за рахунок автоматизації деяких рутинних завдань.

Buildbot

Це - continuous integration система для автоматизації циклу складання та тестування додатків. Вона автоматично перевіряє працездатність коду щоразу, коли до нього вносяться будь-які зміни.

Автором інструменту виступив інженер Брайан Уорнер (Brian Warner). Сьогодні його на посту змінила ініціативна група Buildbot Oversight Committee, до якої входять шість розробників.

Buildbot використовується такими проектами, як LLVM, MariaDB, Blender та Dr.Web. Але його також застосовують у менших проектах на кшталт wxWidgets і Flathub. Система підтримує всі сучасні VCS і має гнучкі налаштування білдів за рахунок використання Python для їх опису. Розібратися з усіма ними допоможе офіційна документація і сторонні туторіали, наприклад, ось коротке посібник від IBM.

Зрозуміло, це не все DevOps інструменти, на які варто звернути увагу невеликим організаціям та стартапам. Наводьте свої улюблені інструменти в коментарях, і ми спробуємо розповісти про них в одному з таких матеріалів.

Про що ми пишемо у корпоративному блозі:

Джерело: habr.com

Додати коментар або відгук