Wolkra

Истифодаҳо

CI runner-ҳои худмизбон дар Wolkra

CI runner-ҳои худмизбонро барои GitLab, GitHub Actions ва дигарон дар VPS-и Франкфурт кор фармоед. Ҳисоби соатбайъ, трафики ҳисобнашаванда барои боргирии тасвирҳо, дастрасии пурраи root.

Навсозӣ:

CI runner дар Wolkra сервери абрӣ дар Франкфурт аст, ки вазифаҳои pipeline-и шуморо иҷро мекунад ва соатбайъ ҳисоб мешавад, бинобар ин шумо метавонед мошини тези build-ро танҳо вақте ки лозим аст, кор фармоед ва пардохти дақиқагӣ надошта бошед.

Runner-ҳо дастрасии пурраи root, трафики ҳисобнашаванда барои боргирии тасвирҳо ва артефактҳо ва Docker-ро бо як клик мегиранд.

Чаро runner-ҳои худро кор фармоем

  • Таҷҳизотро интихоб кунед. Барои компилятсия тарифи барои CPU оптимизатсияшуда ё барои маҷмӯаҳои калони санҷишҳо тарифи барои хотира оптимизатсияшударо интихоб кунед.
  • Кэшҳои гарм. Вобастагиҳо, қабатҳои Docker ва кэшҳои build байни вазифаҳо дар runner боқӣ мемонанд.
  • Нархгузории дақиқагӣ нест. Шумо барои соатҳои сервер пардохт мекунед, на барои дақиқаҳои ҳар вазифа.
  • Код дар Олмон мемонад. Коди манбаъ, калидҳои махфӣ ва артефактҳо дар серверҳои Франкфурт коркард мешаванд. Ба VPS дар ИА ва GDPR нигаред.
  • Дастрасии хусусӣ. Runner-ҳо дар шабакаи хусусӣ метавонанд бе ошкор кардани пойгоҳҳои додаҳои дохилӣ ва серверҳои staging ба онҳо дастрасӣ дошта бошанд.

Runner-ҳои дастгиришаванда

Ҳар чизе, ки дар Linux кор мекунад, дар VPS-и KVM кор мекунад, масалан:

  • GitLab Runner, аз ҷумла бо барномаи GitLab-и мо
  • Runner-ҳои худмизбони GitHub Actions
  • Runner-ҳои Forgejo, Gitea ва Woodpecker
  • Агентҳои Jenkins, агентҳои Buildkite ва монанди инҳо

Аксари runner-ҳо барои ҷудо кардани вазифаҳо Docker-ро истифода мебаранд. Барномаи Docker Docker CE-ро бо Compose насб мекунад, бинобар ин ба runner-и нав танҳо нармафзори runner ва токени бақайдгирӣ лозим аст.

Интихоби андозаи runner-ҳо

CPU-optimised

vCPU-и бештар ба ҳар GB барои сохтан, ҳисоббарорӣ ва API-ҳои серкор.

ТарифvCPURAMДискТрафикСоатбайъҲадди ҳармоҳа
C122 GB30 GBҲисобнашаванда€0.0112€6.99
C244 GB40 GBҲисобнашаванда€0.0224€13.99
C388 GB70 GBҲисобнашаванда€0.0432€26.99
  • Linting, санҷишҳои воҳидӣ (unit), build-ҳои хурд: тарифи Standard (s).
  • Компилятсия, бастабандӣ (bundling), сохтани тасвирҳои контейнерӣ: тарифи барои CPU оптимизатсияшуда (c).
  • Маҷмӯаҳои калони санҷишҳо, пойгоҳҳои додаҳо дар санҷишҳо, build-ҳои JVM: тарифи барои хотира оптимизатсияшуда (m).

Ҳангоми иҷрои вазифаҳо графикҳои CPU ва хотираро назорат кунед ва вақте ки build-ҳо интизори захираҳо мешаванд, андозаи серверро калон кунед. Ба мониторинг нигаред.

Намунаҳое, ки хуб кор мекунанд

Runner-и доимӣ

Як ё ду runner, ки ҳамеша дастрасанд. Содда ва бо кэшҳои ҳамеша гарм. Барои дастаҳои хурд бо commit-ҳои мунтазам хуб аст.

Runner-ҳои муваққатӣ

Як runner-и асосиро нигоҳ доред ва дар соатҳои серкор ё рӯзҳои нашр runner-ҳои бештар илова кунед. Азбаски ҳисоб барои ҳар соати оғозшуда аст ва аз нархи ҳармоҳа зиёд намешавад, runner-е, ки чор соат мавҷуд аст, арзиши чор соатро дорад. Пас аз он онро нест кунед.

Миқёсгирии худкор бо API

API-и REST-ро бо токени ба лоиҳа вобаста истифода баред, то ҳангоми афзудани навбати вазифаҳо серверҳои runner созед ва ҳангоми холӣ шудани он нест кунед. Додаҳои корбарии cloud-init-ро интиқол диҳед, ки runner-ро ҳангоми боркунии аввал насб ва бақайд мегиранд, ё runner-ҳоро аз snapshot-и омодашуда созед, то онҳо тайёр оғоз шаванд.

Маслиҳатҳо оид ба токенҳо:

  • Ба autoscaler лоиҳаи алоҳида диҳед, то токени он танҳо ба серверҳои runner дастрасӣ дошта бошад.
  • Токени хондан/навиштан бо мӯҳлати амал ва рӯйхати иҷозатдодаи IP барои мошине, ки autoscaler-ро иҷро мекунад, истифода баред.

Runner-ҳои ҷудогона барои вазифаҳои ҳассос

Вазифаҳои ҷойгиркуниро дар runner-и алоҳида дар шабакаи хусусӣ, бе IP-и ҷамъиятӣ иҷро кунед. Дарвозаи NAT ба он барои боргирии тасвирҳо ва бастаҳо дастрасии баромада медиҳад ва ҳеҷ чиз дар интернет ба он бевосита дастрасӣ надорад.

Рӯйхати санҷиши амниятӣ

  1. Калидҳои SSH-ро истифода баред ва воридшавӣ бо паролро хомӯш кунед.
  2. Firewall-и ройгонро бе портҳои воридшаванда ба ғайр аз SSH пайваст кунед. Runner-ҳо одатан танҳо пайвастҳои баромада мекунанд.
  3. Pipeline-ҳои боэътимоднабудаи fork-ҳои ҷамъиятиро дар runner-ҳое, ки калидҳои махфии production доранд, иҷро накунед.
  4. Нармафзори runner ва системаро навсозӣ кунед ё runner-ҳоро зуд-зуд аз тасвири тоза иваз намоед.
  5. Дар серверҳои runner барчаспҳо истифода баред, то як маҷмӯи қоидаҳои firewall ба ҳамаи онҳо татбиқ шавад.

Анбор барои кэшҳо ва артефактҳо

Кэшҳои build зуд калон мешаванд. Барои кэшҳо ё registry-и маҳаллӣ ҳаҷми анбори блокӣ аз 10 GB то 10 TB пайваст кунед ва ҳангоми пур шудан онро бе қатъи кор калон намоед. Ҳаҷмҳо метавонанд барои шумо формат ва васл карда шаванд.

Маслиҳатҳо оид ба кэш

Дар runner кэши умумии вобастагиҳоро нигоҳ доред, қабатҳои Docker-ро бо тартиб додани Dockerfile-ҳо аз камтағйирёбанда ба сертағйирёбанда такроран истифода баред ва тасвирҳои кӯҳнаро аз рӯи ҷадвал тоза кунед.

Чаро Wolkra барои CI

  • Ҳисоби соатбайъ бо тавозуни пешпардохт ва бе шартнома. Ба ҳисоби соатбайъ нигаред.
  • Трафики ҳисобнашаванда дар портҳои муштарак то 10 Gbit/s, тибқи истифодаи одилона. Тасвирҳои асосӣ, вобастагиҳо ва артефактҳо ҳисобномаи трафик ба вуҷуд намеоранд. Ба шабака нигаред.
  • Таъхири паст дар саросари Аврупо аз маркази Аврупо, дар наздикии хостингҳои Git ва registry-ҳои аврупоӣ.

Барои равандҳои васеътари контейнерӣ ба хостинги Docker ва муҳитҳои таҳия нигаред.

Аввалин runner-и худро илова кунед

Ҳисоб созед, барномаи Docker-ро дар Франкфурт ба кор андозед ва онро дар чанд дақиқа дар системаи CI-и худ бақайд гиред.

Саволҳои маъмул

Кадом системаҳои CI-ро дар Wolkra кор фармудан мумкин аст?

Ҳар runner-е, ки дар Linux кор мекунад, аз ҷумла GitLab Runner, runner-ҳои худмизбони GitHub Actions, runner-ҳои Forgejo ва Gitea, Woodpecker ва агентҳои Jenkins.

Чаро CI runner-ҳоро худ мизбонӣ кунем?

Шумо андозаи мошинро интихоб мекунед, кэшҳоро байни вазифаҳо гарм нигоҳ медоред, аз пардохти дақиқагӣ халос мешавед ва коди манбаъ ва артефактҳои build-ро дар серверҳои Олмон нигоҳ медоред.

Оё runner-ҳо метавонанд худкор зиёд ва кам шаванд?

Бале, бо абзорҳои худатон. API-и REST серверҳоро месозад ва нест мекунад, бинобар ин скрипт ё autoscaler метавонад ҳангоми дароз шудани навбат runner-ҳо илова кунад ва баъд онҳоро нест кунад.

Оё боргирии тасвирҳо ва боргузории артефактҳо ҳисоб мешавад?

Не. Трафик тибқи истифодаи одилона ҳисоб карда намешавад, бинобар ин боргирии тасвирҳои асосӣ ва боргузории артефактҳо пардохт барои ҳар GB надорад.

Оё runner бояд дар ҳамон сервере бошад, ки GitLab дар он аст?

Беҳтар аст, ки дар сервери алоҳида бошад. Build-ҳо CPU ва хотираи зиёд истифода мебаранд ва ҷудо нигоҳ доштани онҳо GitLab-ро зудҷавоб нигоҳ медорад.

Сервер дар Франкфурт оғоз кунед

Ҳисоб созед, тавозунро пур кунед ва серверро аз €3.49 дар як моҳ иҷро кунед, танҳо барои соатҳое, ки истифода мебаред, пардохт карда. Трафики ҳисобнашаванда дар ҳар тариф.