GitHub Actions ці GitLab CI: кошт хвіліны не раскрывае кошт канвеера

|Аўтар: Рэдакцыя QUASA|5 хв чытання| 1
GitHub Actions ці GitLab CI: кошт хвіліны не раскрывае кошт канвеера

Для адкрытага праекта са стандартнымі runner GitHub Actions звычайна выгаднейшы па выдатках на выкананне: такія задачы не расходуюць платныя хвіліны. У прыватным праекце параўнанне залежыць ад бясплатнай квоты, працягласці задач, захоўвання артэфактаў і таго, хто абслугоўвае runner.

Параўноўваць варта аднолькавы месячны набор зборак і тэстаў, а таксама аднолькавы вынік, які трэба захаваць. Разлікі ніжэй — умоўныя сцэнарыі для GitHub Free і GitLab.com Free. Яны паказваюць выдаткі пры зададзенай працягласці задач, а не вымяраюць хуткасць дзвюх платформаў.

Квоты і адзінка разліку

Правілы аплаты GitHub Actions адводзяць плану Free 2000 хвілін у месяц для стандартных runner у прыватных рэпазіторыях, 500 МБ агульнага сховішча для артэфактаў і GitHub Packages і асобныя 10 ГБ кэшу на рэпазіторый. Пасля квоты двух'ядравы Linux runner каштуе $0,006 за хвіліну, двух'ядравы Windows — $0,010. Стандартныя runner для адкрытых рэпазіторыяў бясплатныя, а больш магутныя аплачваюцца і там. Квота хвілін належыць уліковаму запісу ўладальніка рэпазіторыя, таму іншыя яго прыватныя праекты могуць яе вычарпаць.

Дакументацыя GitLab па compute minutes задае для Free на GitLab.com 400 хвілін у месяц. Выкарыстанне лічыцца як працягласць кожнай задачы, памножаная на каэфіцыент runner і тыпу праекта: стандартны Linux small мае каэфіцыент 1, Linux medium — 2, Windows medium — 1 і статус бэта-версіі. Для праектаў, прынятых у GitLab for Open Source, дзейнічае асобны каэфіцыент 0,5. Гэта множнікі расходу квоты, а не доларавыя стаўкі; час чакання задачы ў чарзе ў яе працягласць не ўваходзіць.

Тлумачэнне GitLab пра дадатковыя хвіліны пацвярджае, што квота распаўсюджваецца і на публічныя праекты GitLab.com. Дадатковыя 1000 compute minutes каштуюць $10 і дзейнічаюць да года з моманту пакупкі. Пакет набываецца цалкам: выхад за ліміт на некалькі хвілін патрабуе пакупкі пакета, але яго нявыкарыстаны астатак можна расходаваць у наступныя месяцы да заканчэння тэрміну дзеяння.

Адкрыты праект: калі хвіліны бясплатныя

Умоўны адкрыты праект запускае 80 зборак па 10 хвілін за месяц — усяго 800 хвілін працы runner. На стандартным runner GitHub выдатак за выкананне гэтых задач будзе нулявым. На runner GitLab.com з каэфіцыентам 1 праект выкарыстае бясплатныя 400 compute minutes і яшчэ 400 з набытага пакета за $10. Параўнанне пакуль не ўключае месца для выніковых файлаў.

Калі той самы праект прыняты ў GitLab for Open Source і на яго задачы дзейнічае каэфіцыент 0,5, 800 хвілін працы расходуюць 400 хвілін квоты. Адкрыты доступ да рэпазіторыя сам па сабе не дае гэтага каэфіцыента. Таму статус праекта ў праграме можа змяніць вынік параўнання, нават калі працягласць кожнай зборкі засталася ранейшай.

Прыватны Linux-канвеер: розніца пасля квоты

Няхай прыватны праект выконвае 150 Linux-задач па 20 хвілін: гэта 3000 хвілін за месяц. Калі ўся квота GitHub Free даступная гэтаму праекту, платнымі стануць 1000 хвілін двух'ядравага Linux runner — $6. На GitLab.com Free з runner Linux small і каэфіцыентам 1 пасля бясплатных 400 хвілін застануцца 2600 compute minutes. Для іх спатрэбяцца тры пакеты за $30; 400 набытых хвілін застануцца на будучае выкарыстанне.

Такі разлік мае сэнс толькі пры названых умовах. Калі на адной платформе задача даўжэй загружае залежнасці, выкарыстоўвае іншы вобраз або атрымлівае менш рэсурсаў, яе фактычную працягласць трэба падставіць замест умоўных 20 хвілін. Лічыць трэба час усіх задач, а не толькі час ад запуску канвеера да яго завяршэння: паралельныя задачы могуць працаваць адначасова і кожная расходуе хвіліны runner.

Linux і Windows: адна квота, розныя ўмовы

У змешаным прыватным сцэнарыі спачатку выконваюцца 3000 хвілін Linux-задач, а затым 1000 хвілін Windows-задач. На GitHub Free Linux выкарыстае 2000 бясплатных хвілін; астатнія 1000 Linux-хвілін каштуюць $6, а 1000 Windows-хвілін — $10. Разам выкананне абыдзецца ў $16 пры ўмове, што квоту раней не расходавалі іншыя задачы ўладальніка.

На GitLab.com Free, калі і Linux small, і Windows medium расходуюць па адной compute minute за хвіліну працы, агульныя 4000 хвілін перавысяць бясплатную квоту на 3600. Патрэбныя чатыры пакеты за $40, з якіх 400 хвілін застануцца. Акрамя сумы, для выбару істотны статус Windows runner GitLab як бэта-версіі: патрабаванні праекта да гэтага асяроддзя могуць зрабіць уласны runner больш прыдатным.

Артэфакты, кэш і чарга

Кошт выканання не апісвае выдаткі пасля завяршэння зборкі. На GitHub месца для артэфактаў дзеліцца з GitHub Packages, а звыш уключанай квоты захоўванне каштуе $0,25 за ГБ у месяц. Налічэнне залежыць ад часу захоўвання: выдаленне старога артэфакта спыняе будучыя налічэнні, але не скасоўвае ўжо назапашаныя. Кэш мае асобную квоту і можа паменшыць працягласць задач, хоць яго стварэнне і перадача таксама займаюць час.

Правілы сховішча GitLab.com даюць праекту на Free 10 GiB для Git-рэпазіторыя і LFS; артэфакты зборак у гэты ліміт не ўваходзяць. Гэтыя 10 GiB таму нельга ставіць насупраць квоты GitHub для артэфактаў як аднолькавую паслугу. Для параўнання патрэбныя асобныя памер выніковых файлаў і тэрмін, на які яны застаюцца даступнымі.

У папярэднім умоўным Linux-сцэнарыі скарачэнне кожнай задачы з 20 да 15 хвілін дасць 2250 хвілін за месяц. На GitHub платнымі будуць 250 хвілін, або $1,50; на GitLab пасля квоты застанецца 1850 хвілін, для якіх патрэбныя два пакеты за $20. Гэта разлік магчымай эканоміі, а не абяцанне паскарэння ад кэшу. Чарга ўплывае інакш: чаканне можа адкласці гатовы вынік, нават калі час самой задачы і плата за яго не змяніліся.

Канфігурацыя і ўласныя runner

Аб'ём канфігурацыі залежыць ад падрыхтаванага асяроддзя. У параўнанні аднаго LaTeX-праекта 2020 года GitLab CI спатрэбілася менш службовых радкоў дзякуючы гатоваму Docker-вобразу для зборкі PDF. Варыянт GitHub Actions пачынаўся з агульнага Ubuntu-асяроддзя, усталёўваў пакеты LaTeX і асобна захоўваў артэфакт. Гэта вынік канкрэтных канфігурацый, а не мера аб'ёму YAML для ўсіх праектаў.

Уласныя runner прыбіраюць расход квоты за іх працу на абедзвюх платформах, але патрабуюць машыны і яе абслугоўвання. Камандзе давядзецца падтрымліваць асяроддзе задач, абнаўляць runner, кіраваць кэшам і забяспечваць дастатковую ёмістасць: заняты runner можа затрымаць тэрміновую праверку. Таму для прыватнага праекта з частымі запускамі меншы рахунак ад платформы яшчэ не азначае меншы агульны кошт канвеера. Выбар залежыць ад таго, ці патрэбнае спецыяльнае асяроддзе і ці ёсць рэсурсы яго падтрымліваць.

Чытайце таксама:

Падзяліцца:

Падпішыцеся на нашу рассылку

Атрымлівайце свежыя навіны пра Web3, ШІ і крыптавалюты проста на пошту.

0