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.

Сістэмай карыстаюцца ў Кампанія Walt Disney, Salesforce и Ticketmaster. Але праект падыходзіць і для стартапаў. Гэта злучана з тым, што Rundeck распаўсюджваецца па ліцэнзіі Apache v2.0. Пры гэтым прылада даволі просты ў выкарыстанні.

Рэзідэнт Reddit, які працаваў з Rundeck, кажа, што вырашаў большую частку цяжкасцяў самастойна. З гэтым яму дапамаглі дакументацыя і электронныя кнігі, апублікаваныя распрацоўшчыкамі.

Таксама ў сетцы можна знайсці кароткія кіраўніцтва па наладзе прылады:

GoCD

Адкрыты інструмент (GitHub) аўтаматызуючы кантроль версій кода. Яго прадставіла ў 2007 годзе кампанія ThoughtWorks - тады праект называўся 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 Groups. Матэрыялы па Jenkins таксама рэгулярна з'яўляюцца на Хабры. Калі вы б хацелі стаць часткай кам'юніці і пачаць працу з Jenkins, ёсць афіцыйная дакументацыя и даведнік ад распрацоўшчыкаў. Яшчэ мы рэкамендуем наступныя гайды і кнігі:

У Jenkins ёсць некалькі карысных іншых праектаў. Першы - убудова Configuration as Code. Ён спрашчае наладу Jenkins за кошт лёгкачытальных API, якія зразумелыя нават адміністратарам без глыбокіх спазнанняў прылады. Другі - сістэма Jenkins X для аблокі. Яна паскарае дастаўку прыкладанняў, якія разгортваюцца на маштабнай ІТ-інфраструктуры за кошт аўтаматызацыі некаторых руцінных задач.

Buildbot

Гэта — continuous integration сістэма для аўтаматызацыі цыклу зборкі і тэсціравання прыкладанняў. Яна аўтаматычна правярае працаздольнасць кода кожны раз, калі ў яго ўносяцца якія-небудзь змены.

Аўтарам інструмента выступіў інжынер Браян Уорнер (Brian Warner). Сёння яго на пасадзе змяніла ініцыятыўная група Buildbot Oversight Committee, у якую ўваходзіць шэсць распрацоўшчыкаў.

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

Зразумела, гэта не ўсё DevOps інструменты, на якія варта звярнуць увагу невялікім арганізацыям і стартапам. Прыводзьце свае любімыя інструменты ў каментарах, і мы пастараемся расказаць пра іх у адным з наступных матэрыялаў.

Пра што мы пішам у карпаратыўным блогу:

Крыніца: habr.com

Дадаць каментар