GitHub Actions թե GitLab CI․ մեկ րոպեն երկու հարթակում նույն արժեքը չունի

|Հեղինակ: QUASA-ի խմբագրական թիմ|6 րոպե ընթերցանություն| 1
GitHub Actions թե GitLab CI․ մեկ րոպեն երկու հարթակում նույն արժեքը չունի

GitHub Actions-ի և GitLab CI-ի միջև ընտրելիս նույն pipeline-ի գինը որոշվում է յուրաքանչյուր job-ի առանձին հաշվարկով, ոչ միայն ավարտին սպասելու ժամանակով։ GitHub-ում վճարովի րոպեն կախված է runner-ի օպերացիոն համակարգից ու հզորությունից․ runner-ների սակագների աղյուսակում երկմիջուկ x64 Linux-ի րոպեն $0,006 է, Windows-ինը՝ $0,010, իսկ ստանդարտ macOS-ինը՝ $0,062։

GitLab.com-ում նախ հաշվում են սպառված compute minutes-ը, ապա այն համեմատում ծրագրի քվոտայի հետ։ GitLab-ի հաշվարկման կանոնով job-ի տևողությունը բազմապատկվում է runner-ի cost factor-ով, իսկ pipeline-ի սպառումը բոլոր job-երի արդյունքների գումարն է։ Linux small-ի և Windows medium-ի գործակիցը 1 է, macOS M1 medium-ինը՝ 6։ Զուգահեռ գործարկումը կարող է կրճատել սպասումը, բայց չի միավորում առանձին job-երի սպառումը։

Տասը րոպե սպասելը դեռ տասը րոպե սպառում չէ

Պատկերացնենք պայմանական pipeline՝ երեք անկախ job-ով․ Linux-ում, Windows-ում և macOS-ում յուրաքանչյուրը աշխատում է 10 րոպե։ Եթե դրանք միաժամանակ սկսվեն, արդյունքը պատրաստ կլինի մոտ 10 րոպեում, մինչդեռ runner-ների ընդհանուր աշխատանքը 30 job-րոպե է։ GitLab-ի նշված գործակիցներով հաշվարկը կլինի 10 × 1 + 10 × 1 + 10 × 6 = 80 compute minutes։ Սա պայմանական թվաբանություն է, ոչ թե չափված թեստ. տարբեր միջավայրերում նույն job-ը կարող է տարբեր տևողություն ունենալ։

Եթե այդ աշխատանքները կատարվեն հերթով, ընդհանուր սպասումը կմոտենա 30 րոպեի, բայց նույն տևողությունների դեպքում գումարային job-րոպեները չեն փոխվի։ Գնի վրա ազդեցություն կլինի, եթե զուգահեռացումն ինքնին փոխի job-երի տևողությունը կամ ավելացնի գործարկվող աշխատանքը։ Օրինակ՝ մեկ թեստային փաթեթը երեք մասի բաժանելիս պետք է հաշվել նաև յուրաքանչյուր մասի նախապատրաստումը, կախվածությունների ներբեռնումն ու առանձին գործարկումը։ Արագ ավարտը և քիչ սպառումը տարբեր նպատակներ են։

Runner-ի չափը փոխում է միավորի գինը

GitHub-ում ավելի մեծ runner-ի րոպեն առանձին սակագին ունի։ Նույն x64 Linux միջավայրում չորսմիջուկ տարբերակի րոպեն $0,012 է՝ երկմիջուկի $0,006-ի դիմաց. եթե job-ի տևողությունը կիսով չափ չնվազի, միայն այդ փոխարինումից վճարովի հաշվարկը չի էժանանա։ Սա պայմանական շեմ է. իրական արդյունքը կախված է նրանից, թե տվյալ build-ը կամ թեստը որքանով է օգտագործում հավելյալ միջուկները։ GitHub-ը նաև յուրաքանչյուր job-ի մասնակի րոպեն կլորացնում է վերև, ուստի բազմաթիվ կարճ job-երի հանրագումարում այդ կլորացումն էլ է երևում։ Մեծ runner-ները հասանելի են GitHub Team կամ Enterprise Cloud օգտագործող կազմակերպություններին։

GitLab.com-ում Linux medium-ի գործակիցը 2 է, large-ինը՝ 3, մինչդեռ small-ինը 1 է։ Եթե պայմանական 20 րոպեանոց job-ը medium runner-ի վրա ավարտվի 10 րոպեում, երկու դեպքում էլ սպառումը կլինի 20 compute minutes։ Եթե այն ավարտվի ավելի շուտ, հզորացումը կարող է խնայել քվոտան. եթե ավելի ուշ՝ ավելացնել սպառումը։ GitHub-ի դոլարային սակագինն ու GitLab-ի գործակիցը նույն չափման միավորները չեն, ուստի runner-ի անվանական չափը միայնակ ընտրության հիմք չէ։

Անվճար քվոտան և հավելյալ վճարումը

GitHub Actions-ի վճարման կանոններում GitHub Free-ի մասնավոր պահոցների ստանդարտ runner-ների համար նշված է ամսական 2000 ներառված րոպե։ Նույն կանոնների օրինակով քվոտայից դուրս 3000 Linux և 2000 Windows րոպեն արժե $38՝ համապատասխանաբար $18 և $20։ Մեծ runner-ների վրա ներառված րոպեները չեն տարածվում. դրանք վճարովի են նաև այն դեպքում, երբ ստանդարտ runner-ի քվոտան դեռ չի սպառվել։ Հանրային պահոցներում ստանդարտ GitHub-hosted runner-ների գործարկումն անվճար է։

GitLab.com Free ծրագրի ամսական քվոտան 400 compute minutes է, իսկ Premium-ինը՝ 10 000։ Այդ թվերը GitHub-ի րոպեների հետ ուղիղ համեմատելը սխալ պատկեր կտա․ GitLab-ում նույն իրական տևողությունը տարբեր գործակցով runner-ների վրա տարբեր արագությամբ է սպառում քվոտան։ GitLab.com-ի քվոտան վերաբերում է namespace-ին, ուստի մի քանի նախագծերի job-երը կարող են օգտվել նույն պաշարից։ Հաշվարկում պետք է ներառել ամսվա բոլոր գործարկումները, նաև կրկնվող կամ ձախողված job-երի իրական աշխատանքը։

GitLab.com-ում քվոտան կիրառվում է նաև հանրային նախագծերի նկատմամբ։ Քվոտան անցնելուց հետո հավելյալ րոպեները վաճառվում են փաթեթով․ compute minutes-ի գնային պարզաբանմամբ 1000 րոպեն արժե $10 և ուժի մեջ է գնումից մեկ տարի, առանց ավտոմատ երկարաձգման։ Դա միջին $0,01 արժեք է մեկ compute minute-ի հաշվով, բայց հաշիվը յուրաքանչյուր job-ից հետո այդ գումարի համապատասխան կոտորակով չի ավելանում։ Գնված րոպեների չօգտագործված մասը և ամսական ներառված քվոտան տարբեր ժամկետներով են գործում։

macOS-ի դեպքում հասանելիությունն էլ է պայման

GitLab.com-ում macOS M1 medium runner-ի 6 գործակիցը միայն աշխատանքի սպառման արագությունն է։ Հոսթավորված macOS runner-ների պայմաններով ծառայությունը բետա է և հասանելի է Premium ու Ultimate հաճախորդներին, ինչպես նաև համապատասխան բաց կոդով ծրագրերին։ Սովորական Free նախագծի համար միայն 400 անվճար compute minutes ունենալը այդ runner-ին հասանելիություն չի տալիս։ Եթե pipeline-ը պահանջում է Apple-ի միջավայր, բաժանորդագրության պայմանը գնի նույնքան կարևոր մաս է, որքան job-ի հաշվարկվող տևողությունը։

GitHub-ի ստանդարտ macOS runner-ի համար վճարովի րոպեի դոլարային սակագինը կարելի է անմիջապես դնել ամսական հաշվարկի մեջ։ GitLab-ի դեպքում նախ պետք է որոշել, թե տվյալ ծրագիրը կարող է օգտագործել հոսթավորված macOS runner, ապա հաշվել այդ աշխատանքի compute minutes-ը և բաժանորդագրության արժեքը։ Երկու աղյուսակներում տեսանելի «macOS րոպեները» համարժեք ծառայություններ չեն նույն գնով։ Եթե աշխատանքը կարելի է կատարել Linux-ում, macOS-ի անհրաժեշտությունը պետք է որոշվի հենց job-ի տեխնիկական պահանջով։

Սեփական runner-ի ամբողջ արժեքը

Սեփական runner-ը փոխում է վճարման տեղը։ GitHub Actions-ը self-hosted runner-ի աշխատանքի համար Actions րոպե չի գանձում, իսկ GitLab.com-ում սեփական runner-ների job-երը չեն սպառում հոսթավորված runner-ների compute minutes քվոտան։ Սակայն հզորությունն արդեն ապահովում է թիմը՝ սեփական մեքենայով կամ վարձակալված սերվերով։ Ամսական ծախսում մտնում են այդ հզորության վճարը, սպասարկումը, թարմացումները և պարապ մնացած ժամանակը։ Եթե միաժամանակ մի քանի job պետք է աշխատի, անհրաժեշտ հզորության ծավալն էլ է մեծանում։

Սեփական runner-ը կարող է իմաստ ունենալ կանխատեսելի և հաճախակի աշխատանքի դեպքում, երբ մեքենան լավ է ծանրաբեռնվում։ Անկայուն կամ հազվադեպ գործարկումների դեպքում հոսթավորված runner-ը կարող է ավելի հարմար լինել, քանի որ վճարովի օգտագործումը կապվում է գործարկման ժամանակին։ Այս գնահատականը կախված է մեքենայի իրական գնից, զբաղվածությունից և սպասարկման պայմաններից. միայն անվճար Actions րոպե կամ չսպառվող GitLab քվոտա տեսնելը բավարար չէ։ macOS պահանջող աշխատանքի համար առանձին հաշվի է առնվում նաև համապատասխան սարքի ձեռքբերումը կամ վարձակալությունը։

Նույն pipeline-ի ամսական հաշվարկը

Համեմատության համար յուրաքանչյուր job-ի դիմաց գրեք ընտրված օպերացիոն համակարգը, runner-ի չափը, մեկ գործարկման իրական տևողությունը և ամսվա գործարկումների քանակը։ GitHub-ի վճարովի ստանդարտ runner-ի մոտավոր արժեքը այդ job-երի կլորացված րոպեների գումարն է՝ ըստ runner-ի դոլարային սակագնի, ներառված քվոտան հաշվի առնելուց հետո։ Մեծ runner-ը հաշվարկեք առանձին՝ առանց անվճար րոպեներ հանելու։ Այս գրառումը ցույց է տալիս նաև, թե որն է թանկացնում pipeline-ը՝ հաճախականությո՞ւնը, երկար job-ը, թե՞ օպերացիոն համակարգը։

GitLab-ի համար նույն ցանկից յուրաքանչյուր job-ի տևողությունը բազմապատկեք համապատասխան cost factor-ով, գումարեք ստացված compute minutes-ը և համեմատեք ծրագրի ամսական քվոտայի հետ։ Քվոտայից դուրս պակասը համադրեք հավելյալ փաթեթի արժեքին. macOS-ի դեպքում ներառեք նաև պահանջվող ծրագրի գինը։ Սեփական runner-ի տարբերակի համար այդ նույն ամսական ծանրաբեռնվածությունը համադրեք մեքենայի ու սպասարկման ամբողջ ամսական ծախսին։ Երեք հաշվարկներում օգտագործեք նույն job-երի ցանկը, որպեսզի արագության կամ գնի տարբերությունը չառաջանա պարզապես տարբեր աշխատանքի չափումից։

Կարդացեք նաև:

Կիսվել:

Բաժանորդագրվեք մեր տեղեկագրին

Ստացեք Web3-ի, ԱԲ-ի և կրիպտոյի վերջին լուրերն անմիջապես ձեր էլ. փոստին։

0