ProHoster > Օրագիր > ինտերնետ նորություններ > CICD ստարտափների համար. ինչ գործիքներ կան և ինչու են դրանք ոչ միայն մեծ և հայտնի ընկերություններն օգտագործում
CICD ստարտափների համար. ինչ գործիքներ կան և ինչու են դրանք ոչ միայն մեծ և հայտնի ընկերություններն օգտագործում
CICD գործիքների մշակողները հաճախ որպես հաճախորդներ են նշում խոշոր ընկերությունները՝ Microsoft-ը, Oculus-ը, Red Hat-ը, նույնիսկ Ferrari-ն և NASA-ն: Թվում է, թե նման բրենդներն աշխատում են միայն թանկարժեք համակարգերով, որոնք չեն կարող թույլ տալ մի քանի ծրագրավորողներից և դիզայներներից բաղկացած ստարտափը։ Բայց գործիքների մի զգալի մասը հասանելի է փոքր թիմերի համար:
Թե ինչի վրա կարող եք ուշադրություն դարձնել, կպատմենք ստորև։
Բաց կոդով 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-ը հարմար է փոքր նախագծերի տեղակայման համար, բայց դուք ստիպված կլինեք հյուրընկալել և կարգավորել այն ինքներդ (ինքնահոսթինգ): Այս խնդիրը պարզեցված է բավականին մանրամասն փաստաթղթերով. այն գտնվում է GitHub-ում.
Rex-ը կարճ է Remote Execution-ի համար: Համակարգը մշակվել է ինժեներ Ֆերենց Էրկիի կողմից՝ տվյալների կենտրոնում գործընթացները ավտոմատացնելու համար: Rex-ը հիմնված է Perl սկրիպտների վրա, սակայն անհրաժեշտ չէ իմանալ այս լեզուն՝ գործիքի հետ փոխազդելու համար. գործողությունների մեծ մասը (օրինակ՝ ֆայլերի պատճենումը) նկարագրված է ֆունկցիայի գրադարանում, և սկրիպտները հաճախ տեղավորվում են տասը տողերի մեջ: Ահա մի քանի սերվեր մուտք գործելու և գործարկման ժամանակի օրինակ.
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;
};
Սա հարթակ է բաշխումների զարգացման օպտիմալացման համար: Դրա կոդը բաց է և գտնվում է պահոցում՝ հասցեով GitHub. Գործիքի հեղինակը ընկերությունն է Նովել. Նա մասնակցել է SuSE բաշխման մշակմանը, և այս նախագիծը սկզբում կոչվում էր openSUSE Build Service: Զարմանալի չէ, որ Open Build Service-ը օգտագործումը openSUSE-ում, Tizen-ում և VideoLAN-ում նախագծեր կառուցելու համար: Dell-ը, SGI-ն և Intel-ը նույնպես աշխատում են գործիքի հետ: Սակայն սովորական օգտատերերի շրջանում կան նաև փոքր ստարտափներ։ Հատկապես նրանց համար հեղինակները հավաքել են (էջ 10) նախապես կազմաձևված ծրագրային փաթեթ. Համակարգն ինքնին լիովին անվճար է. այն տեղակայելու համար պետք է միայն գումար ծախսել հոսթինգի կամ ապարատային սերվերի վրա:
Բայց իր գոյության ընթացքում գործիքը երբեք լայն համայնք չի ձեռք բերել: Չնայած նրան նա եղել է Linux Developer Network-ի մի մասը, որը պատասխանատու է բաց ՕՀ-ի ստանդարտացման համար: Դա կարող է դժվար լինել Գտեք ձեր հարցի պատասխանը թեմատիկ ֆորումներում: Բայց Քուորայի բնակիչներից մեկը նշել է, որ XNUMX թ IRC զրույց Freenode-ում համայնքի անդամները բավականին պատրաստ են արձագանքում: Փոքր համայնքի խնդիրը գլոբալ չէ, քանի որ նկարագրված է բազմաթիվ խնդիրների լուծում պաշտոնական փաստաթղթերում (PDF և EPUB): Նույն տեղում։ կարող է գտնել OBS-ի հետ աշխատելու լավագույն փորձը (կան օրինակներ և դեպքեր):
Բացել գործիք (GitHub), որն ավտոմատացնում է առաջադրանքները տվյալների կենտրոնում և ամպում՝ օգտագործելով սկրիպտներ: Դրանց կատարման համար պատասխանատու է հատուկ սկրիպտ սերվեր: Կարելի է ասել, որ Rundeck-ը ControlTier հավելվածների կառավարման հարթակի «դուստրն» է։ Rundeck-ն առանձնացավ դրանից 2010 թվականին և ձեռք բերեց նոր ֆունկցիոնալություն, օրինակ՝ ինտեգրումներ Puppet-ի, Chef-ի, Git-ի և Jenkins-ի հետ:
Համակարգն օգտագործվում է The Walt Disney ընկերությունը, Salesforce и Ticketmaster. Բայց նախագիծը հարմար է նաև ստարտափների համար։ Դա պայմանավորված է նրանով, որ Rundeck-ը լիցենզավորված է Apache v2.0 լիցենզիայի ներքո: Ավելին, գործիքը բավականին հեշտ է օգտագործել:
Reddit-ի բնակիչ, ով աշխատել է Rundeck-ի հետ, Ասում են, որն ինքնուրույն լուծեց դժվարությունների մեծ մասը։ Նրանք օգնեցին նրան այս հարցում փաստաթղթեր և էլեկտրոնային գրքեր, հրապարակված մշակողների կողմից։
Դուք կարող եք նաև գտնել առցանց գործիքը կարգավորելու հակիրճ ուղեցույցներ.
Բացել գործիք (GitHub) կոդերի տարբերակի ավտոմատացում: Այն ներկայացվել է 2007 թվականին ընկերության կողմից ThoughtWorks- ը — այն ժամանակ նախագիծը կոչվում էր Կրուիզ:
GoCD-ն օգտագործվում է AutoTrader առցանց ավտոմեքենաների վաճառքի կայքի ինժեներների կողմից, Ancestry-ի ծագումնաբանական ծառայության և կրեդիտ քարտերի մատակարարի Barclaycard-ի կողմից: Այնուամենայնիվ, գործիքի օգտագործողների քառորդ մասը փոքր բիզնես է.
Ծառայության հանրաճանաչությունը ստարտափների շրջանում կարելի է բացատրել դրա բացությամբ. այն տարածվում է Apache v2.0 լիցենզիայի ներքո: Միեւնույն ժամանակ, GoCD Այն ունի պլագիններ երրորդ կողմի ծրագրային ապահովման հետ ինտեգրվելու համար՝ թույլտվության համակարգեր և ամպային լուծումներ: Իրական համակարգ բավականին բարդ վարպետության մեջ - այն ունի մեծ թվով օպերատորներ և թիմեր: Նաև որոշ օգտատերեր դժգոհում են վատ ինտերֆեյսից և կարիք կարգավորել գործակալները մասշտաբի համար:
Ջենկինսը լայնորեն հայտնի է և համարել մի տեսակ ստանդարտ CICD-ի ոլորտում, իհարկե, առանց դրա այս ընտրությունը լիովին ամբողջական չէր լինի: Գործիքը հայտնվել է 2011 թ. դառնալը մի պատառաքաղ Project Hudson-ից Oracle-ից:
Այսօր Ջենքինսի հետ աշխատանքют NASA-ում, Nintendo-ում և այլ խոշոր կազմակերպություններում: Այնուամենայնիվ ավելի քան 8% օգտվողները կազմում են մինչև տասը հոգուց բաղկացած փոքր թիմեր: Ապրանքը լիովին անվճար է և տարածվում է MIT լիցենզիայի ներքո. Այնուամենայնիվ, դուք ստիպված կլինեք ինքներդ հյուրընկալել և կարգավորել Jenkins-ը, դա պահանջում է հատուկ սերվեր:
Գործիքի ողջ գոյության ընթացքում նրա շուրջ ձևավորվել է մեծ համայնք։ Օգտատերերը ակտիվորեն շփվում են թեմաներով Փակցնելուց и Google Խմբեր. Ջենքինսի մասին նյութերը նույնպես պարբերաբար հայտնվում են Habré-ում։ Եթե ցանկանում եք դառնալ համայնքի մի մասը և սկսել աշխատել Ջենքինսի հետ, կա պաշտոնական փաստաթղթեր и մշակողի ուղեցույց. Մենք նաև առաջարկում ենք հետևյալ ուղեցույցներն ու գրքերը.
Ջենկինսն ունի մի քանի օգտակար կողմնակի նախագծեր: Առաջինը plugin է Կազմաձևումը որպես կոդ. Այն հեշտացնում է Jenkins-ի կարգավորումը հեշտ ընթեռնելի API-ներով, որոնք կարող են հասկանալ նույնիսկ ադմինները առանց գործիքի խորը գիտելիքների: Երկրորդը համակարգն է Ջենկինս X ամպի համար. Այն արագացնում է լայնածավալ ՏՏ ենթակառուցվածքում տեղակայված հավելվածների առաքումը` ավտոմատացնելով որոշ սովորական առաջադրանքներ:
Սա շարունակական ինտեգրացիոն համակարգ է՝ հավելվածների կառուցման և փորձարկման ցիկլը ավտոմատացնելու համար: Այն ավտոմատ կերպով ստուգում է կոդի ֆունկցիոնալությունը ամեն անգամ, երբ դրանում որևէ փոփոխություն է կատարվում:
Գործիքի հեղինակը ինժեներ Բրայան Ուորներն էր։ Այսօր նա հերթապահում է փոխվել է Buildbot Oversight Committee նախաձեռնող խումբը, որը ներառում է վեց մշակող:
Buildbot օգտագործվում է նախագծեր, ինչպիսիք են LLVM, MariaDB, Blender և Dr.Web: Բայց այն նաև օգտագործվում է ավելի փոքր նախագծերում, ինչպիսիք են wxWidgets-ը և Flathub-ը: Համակարգն աջակցում է բոլոր ժամանակակից VCS-ներին և ունի ճկուն կառուցման կարգավորումներ՝ օգտագործելով Python՝ դրանք նկարագրելու համար: Դա կօգնի ձեզ հաղթահարել նրանց բոլորի հետ: պաշտոնական փաստաթղթեր և երրորդ կողմի ձեռնարկները, օրինակ, ահա կարճ մեկը IBM ձեռնարկ.
Իհարկե, դա դեռ ամենը չէ DevOps գործիքներ, որոնց վրա պետք է ուշադրություն դարձնեն փոքր կազմակերպությունները և ստարտափները: Մեկնաբանություններում տվեք ձեր նախընտրած գործիքները, և մենք կփորձենք դրանց մասին խոսել հետևյալ նյութերից մեկում։