DevOps գործիքներ, որոնք բոլորը պետք է սովորեն 2020 թվականին

Սկսե՛ք օգտագործել DevOps-ի լավագույն գործիքներն այսօր։

DevOps գործիքներ, որոնք բոլորը պետք է սովորեն 2020 թվականին
DevOps հեղափոխությունը վերջապես գրավել է աշխարհը, և DevOps գործիքները դարձել են աներևակայելիորեն տարածված։ Ըստ ծառայության՝ Google Trends, «DevOps գործիքներ» հարցումների թիվը անընդհատ աճում է, և այս միտումը շարունակվում է։

DevOps մեթոդաբանությունը ներառում է ծրագրային ապահովման մշակման ողջ կյանքի ցիկլը, ուստի մասնագետները կարող են ընտրել գործիքների բազմազանությունից։ Սակայն, ինչպես գիտենք, ոչ մի գործիք չի կարող լինել բոլորի համար համընդհանուր գործիք։ Այնուամենայնիվ, որոշ լուծումներ առաջարկում են գործառույթների այնքան լայն շրջանակ, որ կարող են հաղթահարել գրեթե ցանկացած խնդիր։

Եկեք DevOps գործիքները բաժանենք կատեգորիաների և համեմատենք դրանք իրենց համարժեքների հետ։

  • մշակման և կառուցման գործիքներ
  • ավտոմատացված թեստավորման գործիքներ
  • տեղակայման կազմակերպման գործիքներ
  • Գործողության գործիքներ
  • համագործակցության գործիքներ։

Հաջող և մտածված իրականացում DevOps մասնագետ ներառում է վերը թվարկված բոլոր հինգ խմբերի գործիքները: Վերանայեք ձեր նախագծի գործիքների ներկայիս հավաքածուն՝ համոզվելու համար, որ չեք բաց թողնում ձեր CI/CD հոսքագծի կարևոր տարրը:

Մշակման և կառուցման գործիքներ

DevOps գործիքներ, որոնք բոլորը պետք է սովորեն 2020 թվականին
Սա CI/CD խողովակաշարի հիմքն է։ Ամեն ինչ սկսվում է այստեղից։ Այս կատեգորիայի լավագույն գործիքները կարող են կառավարել բազմաթիվ միջոցառումների հոսքեր և հեշտությամբ ինտեգրվել այլ ապրանքների հետ։

Մշակման կյանքի ցիկլի այս փուլում առանձնանում են գործիքների երեք խումբ.

  • տարբերակների կառավարման համակարգ (SCM)
  • շարունակական ինտեգրում (CI)
  • տվյալների կառավարում

GIT-ը 2020 թվականին ապացուցել է իր դրական կողմը, ուստի ձեր SCM գործիքը պետք է ունենա GIT-ի համար անթերի աջակցություն: CI-ի համար պարտադիր է մեկուսացված կոնտեյներային միջավայրում կառուցվածքներ կատարելու և գործարկելու ունակությունը: Ինչ վերաբերում է տվյալների կառավարմանը, ապա անհրաժեշտ է տվյալների բազայի սխեմայում փոփոխություններ կատարելու և տվյալների բազան ծրագրի տարբերակին համապատասխան պահելու ունակությունը:

SCM + CI գործիք #1

Հաղթող ` GitLab և GitLab-CI

DevOps գործիքներ, որոնք բոլորը պետք է սովորեն 2020 թվականին
2020 թվականի լավագույն DevOps գործիքը, անկասկած, GitLab-ն է, և այն անպայման կմնա նորարարությունների առաջատարը մոտ ապագայում։

GitLab-ի հիմնական գործառույթը Git-պահոցի հարմարավետ կառավարումն է։ Վեբ ինտերֆեյսը ինտուիտիվ է և հեշտ օգտագործման համար։ GitLab-ը անվճար տարբերակում ապահովում է ձեզ անհրաժեշտ ամեն ինչ և մատակարարվում է որպես SaaS և տեղում (օգտագործելով ձեր սեփական ռեսուրսները ծրագիրը հոսթինգի համար)։

Ոչ մի այլ SCM գործիք չի օգտագործել անընդհատ ինտեգրացիա (CI) անմիջապես ձեր պահոցում, և GitLab-ը դա անում է երկար ժամանակ։ GitLab-CI-ն օգտագործելու համար դուք պետք է ավելացնեք .gitlab-ci.yml ֆայլը ձեր սկզբնական կոդի արմատին, և նախագծի ցանկացած փոփոխություն կհանգեցնի ձեր նշածի հիման վրա գործողություններ կատարելուն։ GitLab-ը և GitLab-CI-ն իրավամբ ճանաչվում են որպես շարունակական ինտեգրացիայի (CI-as-code) ոլորտի առաջատարներ։

Հիմնական առավելությունները

  • Հուսալիություն - Ապրանքը շուկայում է 2013 թվականից, այն կայուն է, այն լավ աջակցվում է։
  • Բաց կոդով — GitLab-ի անվճար տարբերակը չի սահմանափակում մշակողների թիմերի համար անհրաժեշտ հիմնական ֆունկցիոնալությունը։ Վճարովի ծառայությունների փաթեթները լրացուցիչ օգտակար հնարավորություններ են տրամադրում տարբեր չափերի և կարիքների ընկերությունների համար։
  • Ինգրացված CI — Շուկայում ոչ մի այլ գործիք չի կառուցել անընդհատ ինտեգրացիա անմիջապես SCM-ի մեջ այնպես, ինչպես GitLab-CI-ն։ Docker-ի օգտագործումը թույլ է տալիս իրականացնել անխափան մեկուսացված կառուցվածքներ, իսկ ներկառուցված հաշվետվությունները հեշտացնում են վրիպազերծումը։ Մեզ անհրաժեշտ չեն բարդ ինտեգրացիաներ և միաժամանակ մի քանի գործիքների կառավարում։
  • Անսահմանափակ ինտեգրացիաներ — GitLab-ը ապահովում է բոլոր անհրաժեշտ DevOps գործիքների հեշտ ինտեգրացիա, որպեսզի մշակողների և սպասարկման թիմերը ունենան իրենց ծրագրի մասին տեղեկատվության մեկ աղբյուր՝ ցանկացած միջավայրում։

Մրցակիցներ

Մասնակցեց մենամարտին, բայց չհաղթեց

Այս կատեգորիայում կան այլ հայտնի գործիքներ, բայց դրանք այնքան լավը չեն, որքան GitLab-ը: Ահա թե ինչու.

GitHub — Սա հիանալի SaaS տարբերակի կառավարման համակարգ է փոքր բիզնեսների և վաղ փուլի մշակողների համար։ Ավելի մեծ ընկերությունների համար, որոնք պետք է IP հասցեները պահեն իրենց սեփական ցանցում, GitHub-ի միակ լուծումը .OVA վիրտուալ մեքենա է՝ առանց բարձր մատչելիության աջակցության։ Սա դժվարացնում է տեղում սպասարկումը, և .OVA-ն հարմար է միայն միջին չափի բիզնեսների համար, հակառակ դեպքում սերվերը պարզապես կփլուզվի ծանրաբեռնվածության տակ։ GitHub Actions-ի (մինչև վերջերս և դեռևս ոչ տեղում տարբերակում) կամ CI-as-code-ի բացակայությունը նշանակում է, որ դուք պետք է ձեռք բերեք առանձին CI գործիք, ապա կառավարեք այդ ինտեգրացիան։ Վերջապես, GitHub-ը շատ ավելի թանկ է, քան GitLab-ի ցանկացած տարբերակ։

Jenkins — Չնայած Jenkins-ը շարունակական ինտեգրման լռելյայն գործիքն է, այն միշտ զուրկ է եղել տարբերակների կառավարման հնարավորությունից։ Այսպիսով, դուք ստիպված եք օգտագործել Jenkins-ը և որոշ SCM գործիք։ Չափազանց բարդ է, երբ GitLab-ը կարող է անել երկուսն էլ։ Միջին UX դիզայնը հարմար չէ ժամանակակից վեբ հավելվածի համար և շատ բան է թողնում ցանկալիի։

BitBucket / Բամբուկ — Պետք է խոստովանեմ, որ դա ավտոմատ կերպով պարտություն է. ինչո՞ւ ունենալ երկու գործիք, երբ GitLab-ը ամեն ինչ անում է ինքնուրույն: BitBucket Cloud-ը աջակցում է GitLab-CI / GitHub Action ֆունկցիոնալությունը, բայց ոչ մի ընկերություն, որը մեծ է ստարտափից, չի կարող հեշտությամբ ներդնել այն: Տեղական BitBucket սերվերը նույնիսկ չի աջակցում BitBucket խողովակաշարերին:

Տվյալների կառավարման #1 գործիքը

Հաղթող ` FlywayDB

DevOps գործիքներ, որոնք բոլորը պետք է սովորեն 2020 թվականին
Վեբ հավելվածների մշակման մեջ տվյալների բազայի ավտոմատացումը հաճախ անտեսվում է: Հավելվածի նոր տարբերակներում տվյալների բազայի սխեմայի փոփոխությունները տեղակայելու գաղափարը ուշ է առաջանում: Սխեմայի փոփոխությունները հաճախ հանգեցնում են սյուների կամ աղյուսակների ավելացման և վերանվանման: Եթե հավելվածի տարբերակը չի համապատասխանում սխեմայի տարբերակին, հավելվածը կարող է ձախողվել: Բացի այդ, հավելվածը թարմացնելիս տվյալների բազայի փոփոխությունների կազմակերպումը կարող է դժվար խնդիր լինել, քանի որ կան երկու տարբեր համակարգեր: FlyWayDB-ն լուծում է այս բոլոր խնդիրները:

Հիմնական առավելությունները

  • Տվյալների բազայի տարբերակում - Flyway-ը թույլ է տալիս ստեղծել տվյալների բազայի տարբերակներ, հետևել տվյալների բազայի միգրացիաներին, հեշտությամբ միգրացնել կամ չեղարկել սխեմայի փոփոխությունները առանց լրացուցիչ գործիքի անհրաժեշտության։
  • Երկուական կամ ներդրված — Մենք կարող ենք ընտրել Flyway-ը գործարկել որպես ծրագրի մաս կամ որպես երկուական կատարվող ֆայլ։ Flyway-ը գործարկման ժամանակ ստուգում է տարբերակների համատեղելիությունը և կատարում է համապատասխան միգրացիաներ՝ համաժամեցնելով տվյալների բազան և ծրագիրը։ cmd տողը ad-hoc գործարկելով՝ մենք ճկունություն ենք ապահովում առկա տվյալների բազաների համար՝ առանց ամբողջ ծրագիրը վերակառուցելու։

Մրցակիցներ

Մասնակցեց մենամարտին, բայց չհաղթեց

Այս ոլորտում շատ գործիքներ չկան։ Եկեք նայենք դրանցից մի քանիսին։

Լիքիբեյս — Liquibase-ը ինձ հիշեցնում է FlywayDB-ն։ Ես կցանկանայի այն տեղադրել Flyway-ի վրա, եթե իմ թիմում լիներ մեկը, ով ավելի շատ փորձ ունի Liquibase-ի հետ։

Ֆլոքեր — Կարող է աշխատել միայն կոնտեյներացված ծրագրերի համար։ Ամեն ինչ պետք է կատարյալ պլանավորված լինի՝ կոնտեյներներում տվյալների բազաները հաջողությամբ աշխատեցնելու համար։ Ես խորհուրդ եմ տալիս օգտագործել RDS (Ռելացիոն տվյալների բազայի ծառայություն) տվյալների բազաների համար և չխորհուրդ եմ տալիս զգայուն տեղեկատվությունը պահել կոնտեյներներում։

Թեստավորման ավտոմատացման գործիքներ

DevOps գործիքներ, որոնք բոլորը պետք է սովորեն 2020 թվականին
Եկեք սկսենք թեստավորման ավտոմատացման գործիքների մեր քննարկումը՝ դրանք դասակարգելով թեստավորման բուրգի հիման վրա։

Թեստավորման բուրգը ունի 4 մակարդակ՝

  • Միավորային թեստեր - Սա ամբողջ ավտոմատացված թեստավորման գործընթացի հիմքն է: Միավորային թեստերը պետք է լինեն ավելի մեծ թվով, քան այլ տեսակի թեստերը: Մշակողները գրում և անցկացնում են միավորային թեստեր՝ ապահովելու համար, որ ծրագրի մի մասը (հայտնի է որպես «միավոր») համապատասխանի իր դիզայնին և գործի սպասվածի համաձայն:
  • Բաղադրիչների թեստեր - Բաղադրիչների թեստավորման հիմնական նպատակն է ստուգել թեստավորման օբյեկտի մուտքային/ելքային վարքագիծը: Մենք պետք է համոզվենք, որ թեստավորման օբյեկտի ֆունկցիոնալությունը ճիշտ է ներդրված՝ համաձայն սպեցիֆիկացիայի:
  • Ինտեգրացիոն թեստավորում - Թեստավորման տեսակ, որի դեպքում առանձին ծրագրային մոդուլները միավորվում և թեստավորվում են որպես խումբ։
  • Ամբողջական փորձարկումներ - Այս փուլն ինքնին բացատրական է: Մենք վերահսկում ենք ամբողջ ծրագիրը և համոզվում, որ այն գործում է ըստ նախատեսվածի:

Քանի որ միավորային և բաղադրիչների թեստավորումը կատարվում է միայն մշակողների կողմից և հաճախ լեզվին հատուկ է, մենք չենք գնահատի այս գործիքները DevOps տիրույթի համար։

#1 Ինտեգրացիայի թեստավորման գործիք

Հաղթող ` Վարունգ

DevOps գործիքներ, որոնք բոլորը պետք է սովորեն 2020 թվականին
Cucumber-ը միավորում է տեխնիկական բնութագրերը և թեստավորման փաստաթղթերը մեկ կենդանի փաստաթղթի մեջ: Տեխնիկական բնութագրերը միշտ թարմացված են, քանի որ դրանք ավտոմատ կերպով ստուգվում են Cucumber-ի կողմից: Եթե ցանկանում եք զրոյից կառուցել ավտոմատացված թեստավորման շրջանակ և մոդելավորել օգտատիրոջ վարքագիծը վեբ հավելվածում, Selenium WebDriver-ը Java-ի և Cucumber BDD-ի հետ հիանալի միջոց է Cucumber-ը սովորելու և նախագծում ներդնելու համար:

Հիմնական առավելությունները

  • BDD մոտեցում (Վարքագծով պայմանավորված զարգացում - «զարգացում վարքագծի միջոցով»՝ ի տարբերություն «զարգացում թեստավորման միջոցով» մոտեցման) - Cucumber-ը նախատեսված է BDD թեստավորման համար, այն սկզբնապես ստեղծվել է հատուկ այս խնդրի համար։
  • Կենդանի փաստաթղթեր - Փաստաթղթավորումը միշտ էլ տանջանք է պատճառում: Քանի որ ձեր թեստերը նկարագրվում են որպես կոդ, Cucumber-ը ստուգում է ավտոմատ կերպով ստեղծված փաստաթղթերը՝ համոզվելու համար, որ թեստերն ու փաստաթղթերը համաժամեցված են:
  • Աջակցություն - Մենք կարող ենք ընտրել բազմաթիվ գործիքներից, բայց Cucumber-ն ունի անհրաժեշտ ֆինանսական ռեսուրսներ և լավ կազմակերպված աջակցության համակարգ՝ օգտատերերին ցանկացած դժվարին իրավիճակում օգնելու համար։

Մրցակիցներ

Մասնակցեց մենամարտին, բայց չհաղթեց

Այլ շրջանակների և տեխնոլոգիական գործիքների շարքում միայն Cucumber-ը կարող է համարվել համընդհանուր լուծում։

Ամբողջական փորձարկման գործիքներ

Ամբողջական թեստավորում անցկացնելիս կան երկու հիմնական կետեր, որոնց վրա պետք է կենտրոնանալ.

  • ֆունկցիոնալ թեստավորում
  • բեռի փորձարկում:

Ֆունկցիոնալ թեստավորման ժամանակ մենք ստուգում ենք, թե արդյոք մեր ուզած ամեն ինչ իրականում տեղի է ունենում: Օրինակ, երբ ես սեղմում եմ իմ SPA-ի (մեկ էջանոց դիմում) որոշակի տարրերի վրա, լրացնում եմ ձևաթղթերը և ընտրում «Ուղարկել», տվյալները հայտնվում են տվյալների բազայում, և էկրանին հայտնվում է «Հաջողություն» հաղորդագրությունը:

Մեզ համար կարևոր է նաև ստուգել, ​​որ նույն սցենարով աշխատող որոշակի թվով օգտատերեր կարող են մշակվել առանց սխալների։

Այս 2 տեսակի թեստավորումների բացակայությունը կլինի ձեր CI/CD խողովակաշարի էական թուլությունը:

Ամբողջական թեստավորման գործիք #1: Ֆունկցիոնալ թեստավորում

Հաղթող ` SoapUI Pro

DevOps գործիքներ, որոնք բոլորը պետք է սովորեն 2020 թվականին
SoapUI-ն API թեստավորման ոլորտում երկար ժամանակ է, ինչ գործում է, քանի որ SOAP-ի վրա հիմնված վեբ ծառայությունները ստանդարտ էին։ Չնայած մենք այլևս նոր SOAP ծառայություններ չենք ստեղծում, և գործիքի անվանումը չի փոխվել, դա չի նշանակում, որ այն չի զարգացել։ SoapUI-ն հիանալի հիմք է ապահովում ավտոմատացված ֆունկցիոնալ backend թեստեր ստեղծելու համար։ Թեստերը կարող են հեշտությամբ համակցվել շարունակական ինտեգրման գործիքների հետ և օգտագործվել որպես CI/CD խողովակաշարի մաս։

Հիմնական առավելությունները

  • Մանրամասն փաստաթղթեր - SoapUI-ն գոյություն ունի վաղուց, ուստի կան բազմաթիվ առցանց ռեսուրսներ, որոնք կօգնեն ձեզ հասկանալ, թե ինչպես կարգավորել թեստեր։
  • Օգտագործման հեշտություն. չնայած գործիքը աջակցում է API թեստավորման բազմաթիվ արձանագրություններ, SoapUI-ի՝ բազմաթիվ ծառայությունների համար ընդհանուր ինտերֆեյսի առկայությունը հեշտացնում է թեստեր գրելը։

Մրցակիցներ

Մասնակցեց մենամարտին, բայց չհաղթեց

Selenium — Այս խմբի ևս մեկ հիանալի գործիք։ Ես խորհուրդ եմ տալիս օգտագործել այն, եթե դուք ստեղծում և գործարկում եք Java-ի վրա հիմնված ծրագիր։ Այնուամենայնիվ, եթե դուք ստեղծում եք լիարժեք վեբ ծրագիր՝ բազմաթիվ տեխնոլոգիաներով, այն կարող է դժվար լինել ոչ Java բաղադրիչների համար։

Ամբողջական թեստավորման գործիք #1. Բեռնվածության թեստավորում

Հաղթող ` LoadRunner

DevOps գործիքներ, որոնք բոլորը պետք է սովորեն 2020 թվականին
Բացատրություն: Երբ խոսքը վերաբերում է ծրագրի յուրաքանչյուր տարրի բեռնման և թեստավորմանը, միայն LoadRunner-ը կարող է կատարել այդ աշխատանքը: Այո, դա թանկ է և մի փոքր դժվար է սկսել, բայց LoadRunner-ը միակ գործիքն է, որն ինձ՝ որպես տեխնիկական ճարտարապետի, լիակատար վստահություն է տալիս, որ նոր կոդը կաշխատի ծայրահեղ ծանրաբեռնվածության պայմաններում: Բացի այդ, կարծում եմ, որ ժամանակն է LoadRunner-ը փոխանցել մշակողների թիմին, այլ ոչ թե թեստավորման թիմին:

Հիմնական առավելությունները

  • Լայնածավալ փաստաթղթեր - LoadRunner-ը գոյություն ունի երկար ժամանակ, ուստի կան բազմաթիվ առցանց ռեսուրսներ, որոնք կօգնեն ձեզ հասկանալ, թե ինչպես կարգավորել բեռնման թեստեր:
  • Արձանագրության աջակցություն - Load Runner-ը աջակցում է ամեն ինչ՝ ODBC-ից մինչև AJAX, HTTPS և ձեր ծրագրի կողմից օգտագործվող ցանկացած այլ ոչ տրիվիալ արձանագրություն: Մենք փորձում ենք խուսափել բազմակի բեռնման ստուգման գործիքների օգտագործումից, քանի որ դա միայն բարդացնում է գործընթացը:

Մրցակիցներ

Մասնակցեց մենամարտին, բայց չհաղթեց

Կրկին, այս ոլորտում շատ ունիվերսալ գործիքներ չկան, ուստի լավագույն լուծումն այն է, որը կաշխատի ցանկացած միջավայրում՝ ցանկացած տեխնոլոգիայով։

Տեղակայման գործիքներ

DevOps գործիքներ, որոնք բոլորը պետք է սովորեն 2020 թվականին
Տեղակայման գործիքները, հավանաբար, մշակման ամենաքիչ հասկացված կողմն են։ Գործառնական թիմի համար դժվար է օգտագործել նման գործիքներ՝ առանց ծրագրի կոդի և ֆունկցիոնալության խորը ըմբռնման։ Մշակողների համար տեղակայման կառավարումը նոր պատասխանատվություն է, ուստի նրանք դեռևս բավարար փորձ չունեն նման գործիքների հետ։

Նախևառաջ, եկեք բոլոր տեղակայման գործիքները բաժանենք երեք ենթադասերի.

  • արտեֆակտների կառավարում
  • Կազմաձևման կառավարում
  • տեղակայել

Արտեֆակտների կառավարման #1 գործիքը

Հաղթող ` Կապանքներ

DevOps գործիքներ, որոնք բոլորը պետք է սովորեն 2020 թվականին
Nexus-ի արտեֆակտների պահոցը աջակցում է գրեթե բոլոր հիմնական տեխնոլոգիաները՝ Java-ից մինչև NPM և Docker: Մենք կարող ենք օգտագործել այս գործիքը՝ մեր օգտագործած բոլոր արտեֆակտները պահելու համար: Հեռակա փաթեթների կառավարիչների պրոքսիավորումը նույնպես զգալիորեն արագացնում է CI կառուցման գործընթացը՝ փաթեթները դարձնելով ավելի մատչելի կառուցման համար: Մեկ այլ առավելություն է բազմաթիվ ծրագրային նախագծերում օգտագործվող բոլոր փաթեթների ամբողջական պատկերը ստանալու հնարավորությունը, որը արգելափակում է անվտանգ բաց կոդով փաթեթները (դրանք կարող են լինել հարձակման վեկտոր):

Հիմնական առավելությունները

  • Տեխնիկական աջակցություն - Հուսալի արտադրանք; լավ աջակցություն։
  • Բաց կոդով - Անվճար տարբերակը չի սահմանափակում մշակողների թիմերի համար անհրաժեշտ հիմնական ֆունկցիոնալությունը:

#1 կոնֆիգուրացիայի կառավարման գործիք

Հաղթող ` Հղիություն

Ansible-ը առաջատար է մեկ պարզ պատճառով՝ անշահավետություն։ Նախկինում նման գործիքները կենտրոնացած էին կոնֆիգուրացիայի վիճակի կառավարման վրա։ Գործարկման ժամանակ նման գործիքը, ստանալով ցանկալի կոնֆիգուրացիան, փորձում էր շտկել ծրագրի ընթացիկ կոնֆիգուրացիան։ Նոր մոտեցման դեպքում առկա են միայն անշահավետ բաղադրիչները։ Կոդի նոր տարբերակները արտեֆակտներ են, որոնք տեղակայվում են առկաները փոխարինելու համար։ Դուք կարող եք այն դիտարկել որպես ժամանակավոր, կարճատև միջավայր։

Հիմնական առավելությունները

  • Անպետք - Գործիքագիրքը գործարկվում է տեղակայման մեքենայից և կատարվում է նպատակային սերվերների վրա: Ես անհանգստանալու կարիք չունեմ հեռակա օբյեկտի վիճակի համար՝ շնորհիվ Packer-ի նման գործիքի օգտագործման՝ տեղակայելի ֆայլեր ստեղծելու համար:
  • Բաց կոդով - Like CentOSAnsible-ը նաև աջակցվում է RedHat-ի կողմից, որը նպաստում է համայնքի պահպանմանը և ապահովում է բարձրորակ, հեշտ օգտագործվող մոդուլներ։
  • Փորձարկում Molecule-ի միջոցով (Ansible Framework) — Քանի որ կոնֆիգուրացիայի կառավարումը կոդ է, ինչպես մնացած ամեն ինչ, փորձարկումը պարտադիր է։ Molecule-ի Ansible դերերի փորձարկման շրջանակը անթերի է աշխատում՝ ապահովելու համար, որ կոնֆիգուրացիան նույնքան լավն է և հետևում է նույն CI/CD խողովակաշարին, ինչ ծրագրի կոդը։
  • YAML — Այլ գործիքների համեմատ, YAML-ն ավելի հեշտ է հասկանալ։ Քանի որ կոնֆիգուրացիայի կառավարումը սովորաբար նոր խնդիր է DevOps մեթոդները որդեգրողների համար, դրա պարզությունը նրա առավելությունն է։

Մրցակիցներ

Մասնակցեց մենամարտին, բայց չհաղթեց

OpsCode Chef — Ես իմ DevOps կարիերան սկսել եմ որպես խոհարարական գրքերի մշակող։ Ruby-ն և Chef-ը, իհարկե, շատ թանկ են ինձ համար, բայց նրանք պարզապես չեն լուծում ժամանակակից ամպային, պետական ​​կարգավիճակ չունեցող ծրագրերի խնդիրները։ OpsCode Chef-ը հիանալի գործիք է ավելի ավանդական ծրագրերի համար, և այս հոդվածում մենք կենտրոնանում ենք ապագայի վրա։

Տիկնիկ — Puppet-ը երբեք մեծ երկրպագուների բազա չի ունեցել, հատկապես Chef-ի և Ansible-ի համեմատ։ Այն հիանալի է սարքավորումների հետ աշխատելու և մատակարարման համար, բայց այն չունի վեբ հավելվածի կոնֆիգուրացիայի կառավարման ժամանակակից աջակցություն։

Տեղակայման գործիք #1

Հաղթող ` Terraform

DevOps գործիքներ, որոնք բոլորը պետք է սովորեն 2020 թվականին
Terraform-ը լուծում է ձեր ենթակառուցվածքը որպես կոդ նկարագրելու խնդիրը՝ ցանցային բաղադրիչներից մինչև ամբողջական սերվերի պատկերներ: Այն երկար ճանապարհ է անցել իր սկզբնական թողարկումից ի վեր՝ հսկայական թվով պլագիններով և ուժեղ համայնքով, որը կօգնի ձեզ ցանկացած տեղակայման սցենարում: Ցանկացած տեսակի միջավայր (տեղական, ամպային կամ այլուր) աջակցելու ունակությունը անգերազանցելի է: Վերջապես, վերջին տարբերակը HCL-ում ապահովում է նույն տրամաբանական ֆունկցիաների և դասերի մեծ մասը, ինչ ցանկացած այլ ավանդական ծրագրավորման լեզու, ինչը հեշտացնում է մշակողների համար հիմունքների յուրացումը և Terraform-ի ուսուցումը:

Հիմնական առավելությունները

  • Անկախություն միջավայրից - Terraform-ը օգտագործում է ֆունկցիաներ, որոնք գործում են որպես միջերես ձեր Terraform կոդի, բոլոր API-ների և backend տրամաբանության միջև՝ ենթակառուցվածքի մատակարարի հետ կապվելու համար: Սա նշանակում է, որ ես պետք է սովորեմ միայն մեկ գործիք, որից հետո կարող եմ աշխատել ցանկացած վայրում:
  • Բաց կոդով - Անվճար գործիքները դժվար է գերազանցել: Համայնքի աջակցությունը բարձրակարգ է:

Մրցակիցներ

Մասնակցեց մենամարտին, բայց չհաղթեց

AWS ամպի ձևավորում — Նույնիսկ եթե դուք աշխատում եք բացառապես AWS ամպային միջավայրում, ձեր հաջորդ աշխատանքը կարող է օգտագործել այլ գործիք։ Ձեր ամբողջ ժամանակն ու էներգիան միայն մեկ հարթակին նվիրելը կարճատեսություն է։ Բացի այդ, AWS-ի շատ նոր ծառայություններ հաճախ հասանելի են որպես Terraform մոդուլներ, նախքան դրանք հասանելի դառնալը CloudFormation-ում։

Գործողության գործիքներ

DevOps գործիքներ, որոնք բոլորը պետք է սովորեն 2020 թվականին

Ցանկացած մշակման նախագծի վերջնական նպատակը հավելվածը արտադրության մեջ դնելն է: DevOps աշխարհում մենք ցանկանում ենք լիարժեք պատկերացում ունենալ մեր միջավայրի բոլոր հնարավոր խնդիրների մասին և նվազագույնի հասցնել ձեռքով միջամտությունը: Գործարկման ժամանակի ճիշտ գործիքների ընտրությունը կարևոր է հավելվածների մշակման նիրվանային հասնելու համար:

Գործողության գործիքների ենթակատեգորիաներ՝

  • X-որպես-ծառայություն (XaaS)
  • նվագախմբավորում
  • Դիտարկման
  • անտառահատում

#1 X-որպես-ծառայություն գործիք

Հաղթող ` Amazon Web Services

DevOps գործիքներ, որոնք բոլորը պետք է սովորեն 2020 թվականին
Amazon-ը միշտ եղել է ամպային հաշվարկների առաջատարը, բայց այն դրանով չի սահմանափակվում. մշակողների համար նոր ծառայությունների բազմազանությունը ապշեցուցիչ է: Բերեք ցանկացած տեխնոլոգիա և ձևանմուշ AWS, և այն կկառուցվի և կաշխատի: Գործիքի արժեքը ողջամիտ է. համեմատեք այն ձեր սեփական տվյալների կենտրոնում սարքավորումներ կառուցելու, կառավարելու և պահպանելու հետ: Անվճար տարբերակը թույլ է տալիս փորձարկել և ճիշտ որոշում կայացնել՝ նախքան գումար ծախսելը:

Հիմնական առավելությունները

  • Լայնորեն տարածված. եթե դուք ունեք AWS-ում հավելվածներ ստեղծելու փորձ, կարող եք աշխատել ցանկացած վայրում: Բիզնեսները սիրում են AWS-ը, իսկ ստարտափները նույնպես գնահատում են դրա ցածր գինը:
  • Անվճար տարբերակը իսկապես մեծ գործոն է, որը AWS-ը տարբերակում է իր մրցակիցներից: Թույլ տվեք օգտագործել ծառայությունը և տեսնել, թե ինչպես է այն աշխատում, նախքան գնելու որոշում կայացնելը, ես չեմ ուզում հազարավոր դոլարներ ծախսել մի բանի վրա, որն ինձ պետք չէ: Անվճար տարբերակը միշտ բավարար է ինձ համար ցանկացած հայեցակարգ փորձարկելու համար:

Մրցակիցներ

Մասնակցեց մենամարտին, բայց չհաղթեց

Երկնագույն — Azure-ը մեծ ճանապարհ է անցել իր սկզբնական թողարկումից ի վեր, և դա գովելի է։ Այնուամենայնիվ, իր մրցակիցներից տարբերվելու ցանկությունը հանգեցրել է տարօրինակ ծառայությունների անվանումների, որոնք հաճախ դժվարացնում են ամեն ինչ։ Ի՞նչ է նշանակում «blob պահեստավորում»։ Եվ չնայած .NET կոդն ավելի լավ է աշխատում Microsoft-ի էկոհամակարգում, քիչ հավանական է, որ դուք կօգտագործեք միայն .NET ձեր ծրագրի յուրաքանչյուր բաղադրիչի համար։

Heroku — Ես երբեք Heroku-ում անձնական նախագիծից բացի ուրիշ բան չէի վարի՝ հուսալիության և թափանցիկության պակասի պատճառով, ուստի ընկերությունները չպետք է այն օգտագործեն որպես հարթակ։ Heroku-ն հիանալի է բլոգում ինչ-որ բան ցուցադրելու համար, բայց գործնական օգտագործման համար՝ «Ո՛չ, շնորհակալություն»։

Նվագախմբման գործիք #1

Հաղթող ` OpenShift- ը

DevOps գործիքներ, որոնք բոլորը պետք է սովորեն 2020 թվականին
Դուք, հավանաբար, օգտագործում եք Docker կամ այլ կոնտեյներներ ձեր հավելվածների փաթեթում: Առանց սերվերի հավելվածները հիանալի են, բայց դրանք չեն կարող համապատասխանել յուրաքանչյուր ճարտարապետության: Կոնտեյներներ աշխատեցնելը առանց օրկեստրացիոն հարթակի պարզապես չի աշխատի: Kubernetes Core (K8s)-ը անգերազանցելի է անվտանգության և գործիքավորման առումով: OpenShift-ը միակ Kubernetes-ի վրա հիմնված հարթակն է, որը կարող է կառուցել Source2Image, աջակցում է ավտոմատացված տեղակայմանը պոդերում և աջակցում է հետևմանը և մոնիթորինգին: OpenShift-ը կարող է միաժամանակ աշխատել տեղում, ամպում կամ տեղում և ամպում:

Հիմնական առավելությունները

  • Ներկառուցված անվտանգություն - K8-ի անվտանգության կառավարումը կարող է պահանջել դոկտորի աստիճան: Յուրաքանչյուր մանրուք պետք է ուշադիր մտածված և հաշվի առնված լինի: OpenShift-ում ներկառուցված լռելյայն անվտանգության մեխանիզմները թեթևացնում են մշակողների բեռը և ապահովում ավելի անվտանգ հարթակ հավելվածների համար:
  • Ամեն ինչ մեկում լուծում. Ի տարբերություն հիմնական K8-ների, որոնք լռելյայնորեն չեն ներառում բեռի հավասարակշռման գործիքներ, OpenShift-ն ունի ամեն ինչ: Ես կարող եմ օգտագործել այն կոնտեյներներ ստեղծելու և հյուրընկալելու, CI/CD գործիքներ գործարկելու, արտաքին գործընթացներ կառավարելու, բանալիներ կառավարելու և այլնի համար: Չնայած GUI-ն դեռևս հեռու է կատարյալ լինելուց, API-ի առաջին մոտեցումը նշանակում է, որ ամեն ինչ կարելի է սկրիպտավորել: Ի տարբերություն այլ K8-ների GUI-ների, OpenShift-ը Kubernetes-ի հիմունքների ուսուցումը շատ ավելի հեշտ է դարձնում: Ձեզ նույնիսկ դոկտորի կոչում պետք չէ:

Մրցակիցներ

Մասնակցեց մենամարտին, բայց չհաղթեց

Docker ամբոխ — Docker Swarm-ը փորձեց պարզեցնել K8-ները՝ ազատվելով շատ բաներից։ Այն հիանալի է փոքր հավելվածների համար, բայց ձեռնարկությունների համար պարզապես չի աշխատում։ Բացի այդ, AWS ECS-ի նման լուծումները նմանատիպ մոտեցում են ցուցաբերում, բայց հեշտացնում են այլ ծառայությունների հետ աշխատանքը, որոնց հետ ես նույնպես կարող եմ փոխազդել (Lambda, IAM և այլն)։

Մոնիթորինգի գործիք #1

Հաղթող ` Նոր մասունք

DevOps գործիքներ, որոնք բոլորը պետք է սովորեն 2020 թվականին
New Relic-ի վաղ թողարկումները լավն էին մեկ բանում՝ APM-ում (Application Performance Monitoring): Այժմ այն ​​լիարժեք ֆունկցիոնալությամբ մոնիթորինգի գործիք է, որը թույլ է տալիս վերահսկել սերվերի, կոնտեյներների, տվյալների բազայի, վերջնական օգտագործողի փորձը և, իհարկե, հավելվածի աշխատանքը:

Հիմնական առավելությունները

  • Օգտագործման հեշտություն. որպես համակարգային ինժեներ աշխատելիս ես օգտագործել եմ բազմաթիվ մոնիթորինգի գործիքներ, բայց երբեք չեմ հանդիպել այնպիսի գործիքի, որն այնքան հեշտ և պարզ լինի օգտագործման համար, որքան New Relic-ը: Այն SaaS է, ուստի անհրաժեշտ չէ այն տեղադրել տեղում:
  • Ամբողջական տեսանելիություն. Այլ գործիքներ փորձում են հետևել ձեր ծրագրի մեկ կոնկրետ տարրին, ինչպիսիք են CPU-ի օգտագործումը կամ ցանցային երթևեկությունը, բայց այս բոլորը պետք է միասին հետևվեն, որպեսզի ձեր ծրագիրը պատշաճ կերպով աշխատի: New Relic-ը ձեզ հնարավորություն է տալիս միավորել ձեր բոլոր տվյալները՝ ամբողջական պատկերացում կազմելու համար, թե ինչ է կատարվում:

Մրցակիցներ

Մասնակցեց մենամարտին, բայց չհաղթեց

Zabbix- ը — Իմ առաջին և սիրելի մոնիթորինգի համակարգը, բայց այն մնացել է անցյալում՝ ամպային տեխնոլոգիաների և APM հավելվածների աշխատանքի մոնիթորինգի ոլորտում զարգացման բացակայության պատճառով։ Zabbix-ը դեռևս լավ աշխատանք է կատարում ավանդական սերվերային ենթակառուցվածքների մոնիթորինգի ոլորտում, բայց դա էլ այդքանը։

DataDog — Չափազանց կենտրոնացած ենք ծրագրի արտադրական միջավայրի կառավարման գործընթացի վրա, այլ ոչ թե կոդի վրա։ Մշակողներից բաղկացած DevOps թիմերի շնորհիվ մենք պարտավոր չենք ապավինել բարդ գործիքներին՝ առաջին կարգի աջակցություն ապահովելու համար։

Գրանցման գործիք #1

Հաղթող ` Splunk

DevOps գործիքներ, որոնք բոլորը պետք է սովորեն 2020 թվականին
Splunk-ը դժվար է գերազանցել: Այն երկար ժամանակ առաջատարն է եղել գրանցման ոլորտում և շարունակում է դա անել ավելի լավ, քան որևէ մեկը: Տեղական և SaaS առաջարկների շնորհիվ դուք կարող եք օգտագործել Splunk-ը ամենուր: Մեծ թերությունը դրա գինն է. Splunk-ը դեռևս շատ թանկ է:

Հիմնական առավելությունները

  • Ընդունում - Բիզնեսները սիրում են Splunk-ը, և ընկերություններն ունեն այն գնելու համար անհրաժեշտ գումարը։
  • Չնայած ստարտափները փորձում են փոխհատուցել ծախսերը, շատ գործառույթներ կարող են լուծվել բաց կոդով անալոգների միջոցով։
  • Պահպանելիություն - Պարզ ասած, Splunk-ը աշխատում է և լավ է անում դա: Այն գալիս է բազմաթիվ լռելյայն կարգավորումներով և օգտագործման համար պատրաստ գործառույթներով: Անհրաժեշտ չէ ժամանակ վատնել փաստաթղթեր կարդալու և Splunk-ը աշխատեցնելու կամ որևէ բան վերծանելու վրա:

Մրցակիցներ

Մասնակցեց մենամարտին, բայց չհաղթեց

ELK Stack (ElasticSearch, LogStash և Kibana) — Այս գործիքները թվում են սիրելի, քանի որ դրանք օգտագործելու համար նույնիսկ լյարդդ վաճառելու կարիք չկա։ Սակայն, քանի որ գրանցամատյանների հավաքածուն աճում է, և տախտակի վրա տեղադրված ծրագրերի քանակը մեծանում է, աշխատանքն ավելի ու ավելի բարդ է դառնում։ Splunk-ի համեմատ, ELK Stack-ի դեպքում ես շատ ավելի շատ ժամանակ եմ ծախսել գործիքակազմը կարգավորելու վրա՝ նախքան որևէ վահանակ ստեղծելը, քան երբևէ։

Համագործակցության գործիքներ

DevOps գործիքներ, որոնք բոլորը պետք է սովորեն 2020 թվականին
DevOps-ը հիմնականում վերաբերում է կազմակերպության ներսում մշակույթի փոփոխությանը: Ցանկացած գործիք գնելը չի ​​փոխի ձեր սովորական գործելակերպը մեկ գիշերվա ընթացքում, բայց այն, անշուշտ, կարող է նպաստել համագործակցության և փոխազդեցության նոր եղանակների խթանմանը:

Համագործակցության գործիքների ենթակատեգորիաներ՝

  • առաջադրանքների հետևում
  • Զրուցարան
  • փաստաթղթեր.

Խնդիրների հետևման #1 գործիքը

Հաղթող ` Ջիրա

DevOps գործիքներ, որոնք բոլորը պետք է սովորեն 2020 թվականին
Jira-ն պահպանում է իր առաջատար դիրքը, չնայած այս ոլորտում մրցակցությունն աճում է: Jira-ի անհավանական ճկունությունը թույլ է տալիս մշակողների և սպասարկման թիմերին կառավարել նախագծային աշխատանքները և սպրինտային առաջադրանքները: Agile տերմինաբանությունն օգտագործող ներկառուցված ստանդարտները պարզեցնում են անցումը ավանդական աշխատանքային մեթոդներից դեպի ավելի արդյունավետ գործընթացներ:

Հիմնական առավելությունները

  • Հանրաճանաչություն — Ինչպես շատ այլ գործիքներ, Jira-ն օգտագործվում է գրեթե ամենուրեք։ Փոքր թիմերը օգտագործում են ավելի էժան, ավելի մատչելի տարբերակ և ստանում են իրենց անհրաժեշտ ամեն ինչ, մինչդեռ ավելի մեծ ընկերությունները կարող են իրենց թույլ տալ ավելի թանկ լիցենզիա։
  • Ինտեգրացիաներ – Jira-ն իր ոլորտում առաջատարն է։ Այս փաստը և ապրանքի արագ զարգացումը հանգեցնում են նրան, որ այլ ընկերություններ ընտրում են Jira-ն՝ իրենց սեփական ինտեգրացիաները ստեղծելու համար, այդպիսով բարձրացնելով գործիքի արժեքը։ Մենք կարող ենք ինտեգրել Jira-ն այս հոդվածում թվարկված բոլոր գործիքների հետ՝ մի փոքր անհատականացման միջոցով։

Մրցակիցներ

Մասնակցեց մենամարտին, բայց չհաղթեց

Trello — Trello-ն արագորեն ձեռք բերեց ժողովրդականություն իր անվճար Kanban գործիքի շնորհիվ։ Սակայն, երբ գործընթացները մասշտաբավորվում են, և դուք տասնյակ առաջադրանքներից անցնում եք հազարավորների, Trello-ն դժվար է դառնում նավարկելու, որոնելու և հաշվետվություններ կազմելու համար։

Pivotal Tracker — Ես այս գործիքի մեծ երկրպագու էի, երբ աշխատում էի ստարտափում։ Այնուամենայնիվ, Pivotal Tracker-ը ավելի շատ կենտրոնացած է արտադրանքի կառավարման վրա, քան տեխնիկական խնդիրների վրա։ Չնայած Jira-ում արտադրանքի կառավարումը մի փոքր ավելի բարդ է, այն դեռ կարող է ներդրվել այնտեղ՝ առանց լրացուցիչ գործիք օգտագործելու։

ChatOps գործիք #1

Հաղթող ` MatterMost

DevOps գործիքներ, որոնք բոլորը պետք է սովորեն 2020 թվականին
Բացատրություն: Հնարավոր է՝ սա իմ ընտրության մեջ ամենամեծ անակնկալն է, և դա լավ նորություն է։ MatterMost-ը ժողովրդականություն է ձեռք բերել՝ վերցնելով նախորդ գործիքների լավագույնը և դրանք տեղում տեղադրելով։ Սա մեծ նշանակություն ունի ընկերությունների համար. MatterMost-ը ձեզ հնարավորություն է տալիս վերահսկողություն ունենալ ձեր տվյալների վրա, ինչպես նաև օգնում է ինտեգրել դրանք ձեր տեղում տեղադրված գործիքների հետ։ Մենք այլևս ստիպված չենք լինի դուրս գալ firewall-ից՝ մեր աշխատանքային զրույցները ստուգելու համար։

Հիմնական առավելությունները

  • Բաց կոդով — MatterMost-ի բաց կոդով տարբերակը հիանալի է աշխատում թե՛ միջին, թե՛ մեծ թիմերի համար: Ի տարբերություն Slack-ի անվճար պլանի, որը ջնջում է ձեր հաղորդագրությունների պատմությունը, ձեր սեփական սերվերը աշխատեցնելը նշանակում է, որ դուք պահպանում եք ձեր բոլոր տվյալները:
  • Ինտեգրացիաներ - Քանի որ API-ը գրեթե 100%-ով հիմնված է Slack API-ի վրա, գրեթե բոլոր Slack ինտեգրացիաները կարող են օգտագործվել անմիջապես MatterMost-ի հետ։

Մրցակիցներ

Մասնակցեց մենամարտին, բայց չհաղթեց

Անգործություն — Slack-ը լավն է, բայց այս տղաները այնքան են աճել, որ շահույթ են փնտրում։ Նրանք մոտենում են բիզնեսի եկամտաբերության կետին, ինչը խլում է նրանց հիմնական արժեքը. Slack-ը ծառայություններ էր մատուցում անվճար. անվճար տարբերակի ամենակարևոր թերությունը զրույցի պատմության ջնջումն է։

Microsoft թիմերը — Փորձեք ինտեգրել Microsoft-ի արտադրանքը Microsoft-ից տարբերվող ինչ-որ բանի հետ… Հաջողություն։ Այսքանն է այն ամենը, ինչ ես կարող եմ ասել այս գործիքի մասին։

Փաստաթղթավորման գործիք #1

Հաղթող ` Հորդություն

DevOps գործիքներ, որոնք բոլորը պետք է սովորեն 2020 թվականին
Որակյալ տեխնիկական փաստաթղթերի ստեղծումը և պահպանումը բարդ գործընթաց է, անկախ նրանից, թե ինչ գործիք եք օգտագործում: Չնայած վերջերս շուկայում կան բազմաթիվ SaaS փաստաթղթավորման գործիքներ, ես դժվար կլինեի կարևորագույն ծրագրերի տեխնիկական փաստաթղթերի պահպանումը վստահել երրորդ կողմերին: Նախընտրելի է տվյալները և փաստաթղթերը պահել տեղում, և ահա, թե ինչպես է Confluence-ը լուծում այս խնդիրը:

Հիմնական առավելությունները

  • Հեշտ է կառավարել. ինքնուրույն գործիքների մեծ մասը կարող է մի փոքր բարդ լինել տեղադրման և օգտագործման համար, և պահպանման համար պահանջել որոշակի գիտելիքներ: Confluence Server-ը հիանալի աշխատում է անմիջապես 10 կամ 10,000 օգտատիրոջ համար:
  • Պլագիններ - Շնորհակալություն Confluence-ին գեղեցիկ և հեշտ նավիգացիայի համար, և գրեթե ամեն ինչի համար պլագին ավելացնելու հնարավորության համար, որը բացահայտում է Վիքիի ներուժը։

Մրցակիցներ

Մասնակցեց մենամարտին, բայց չհաղթեց

Կարդացե՛ք փաստաթղթերը — Հրաշալի է բաց կոդի համար, բայց նույնիսկ մի մտածեք այստեղ կարևորագույն գիտելիքներ պահելու մասին։

Մարկդաուն - Հիանալի է կոդը փաստաթղթավորելու համար, բայց դժվար է ներառել ճարտարապետություն, գործընթացներ կամ այլ տեսակի փաստաթղթեր՝ MarkDown-ի հատուկ ձևաչափման պատճառով։

Ջեկիլլ — Տեխնիկական գիտելիքները փաստաթղթավորելիս ես չեմ ուզում ստեղծել նոր ստատիկ կայք, որը կտեղակայվի յուրաքանչյուր փոփոխության հետ։ Confluence-ի պարզ տարբերակների կառավարման համակարգը ներքին փաստաթղթավորումը շատ ավելի հեշտ է դարձնում։

Ամփոփել

Բազարում բառացիորեն կան հարյուրավոր DevOps գործիքներ, ուստի դժվար կարող է լինել իմանալ, թե որոնք օգտագործել և երբ դրանք պետք է ներդրվեն: Հետևեք այս պարզ ուղեցույցին՝ DevOps գործիքներ ընտրելու համար՝ ամբողջական CI/CD խողովակաշարի համար:

Համոզվեք, որ գործիքներ եք ընտրում բոլոր հինգ կատեգորիաներից.

  • մշակման և հավաքման գործիքներ
  • ավտոմատացված թեստավորման գործիքներ
  • տեղակայման գործիքներ
  • Գործողության գործիքներ
  • համագործակցության գործիքներ։

Հիմնական առաջարկություն. Ավտոմատացրեք ամեն ինչ!

Շնորհակալություն Զաք Շապիրոյին։

Source: www.habr.com

Գնեք հուսալի հոստինգ DDoS պաշտպանությամբ կայքերի, VPS VDS սերվերների համար 🔥 Գնեք հուսալի կայքերի հոսթինգ՝ DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster