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

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

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

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

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

  • գործիքների մշակում և կառուցում
  • փորձարկման ավտոմատացման գործիքներ
  • տեղակայման կազմակերպման գործիքներ
  • Runtime գործիքներ
  • համագործակցության գործիքներ.

Հաջող և մտածված իրականացում 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 և on-prem (օգտագործելով ձեր սեփական ռեսուրսները՝ ծրագրակազմը հյուրընկալելու համար):

Ոչ մի այլ 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 գումարած ինչ-որ SCM գործիք: Չափազանց դժվար է, երբ GitLab-ը կարող է երկուսն էլ անել: Միջակ UX դիզայնը հարմար չէ ժամանակակից վեբ հավելվածի համար և շատ բան է թողնում:

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

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

Հաղթող ` FlywayDB

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

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

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

Մրցակիցներ

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

Այս ոլորտում շատ գործիքներ չկան: Դիտարկենք դրանցից մի քանիսը.

LiquiBase — Liquibase-ը նման է FlywayDB-ին: Ես կցանկանայի տեղադրել այն Flyway-ի վերևում, եթե իմ թիմում լիներ որևէ մեկը, ով ավելի մեծ փորձ ունի Liquibase-ի հետ:

Ֆլոկեր - Կարող է աշխատել միայն բեռնարկղային ծրագրերի համար: Կոնտեյներային տվյալների բազաները հաջողությամբ գործարկելու համար ամեն ինչ պետք է կատարյալ պլանավորվի: Ես խորհուրդ եմ տալիս օգտագործել RDS (Relational Database Service) տվյալների բազաների համար և խորհուրդ չեմ տալիս կարևոր տեղեկությունները պահել տարայի մեջ:

Փորձարկման ավտոմատացման գործիքներ

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

Փորձարկման բուրգը (թեստերը) ունի 4 մակարդակ.

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

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

#1 Ինտեգրման փորձարկման գործիք

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

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

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

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

Մրցակիցներ

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

Ի թիվս այլ շրջանակների և տեխնոլոգիային հատուկ գործիքների՝ միայն վարունգը կարելի է համարել ունիվերսալ լուծում:

End-to-End Testing Tools

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

  • ֆունկցիոնալ փորձարկում
  • Սթրեսի թեստավորում.

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

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

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

Թիվ 1 ծայրից ծայր փորձարկման գործիք: Ֆունկցիոնալ փորձարկում

Հաղթող ` SoapUI Pro

DevOps գործիքներ, որոնք բոլորը պետք է սովորեն 2020 թվականին
SoapUI-ն երկար ժամանակ եղել է API-ի փորձարկման տարածքում, քանի որ SOAP-ի վրա հիմնված վեբ ծառայությունները ստանդարտ էին: Թեև մենք այլևս չենք ստեղծում նոր SOAP ծառայություններ, և գործիքի անունը չի փոխվել, դա չի նշանակում, որ այն չի զարգացել: SoapUI-ն ապահովում է հիանալի շրջանակ ավտոմատացված հետին ֆունկցիոնալ թեստեր ստեղծելու համար: Թեստերը կարող են հեշտությամբ համակցվել շարունակական ինտեգրման գործիքների հետ և օգտագործվել որպես 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 artifact-ի պահոցն աջակցում է գրեթե բոլոր հիմնական տեխնոլոգիաներին՝ Java-ից մինչև NPM մինչև Docker: Մենք կարող ենք օգտագործել այս գործիքը մեր օգտագործած բոլոր արտեֆակտները պահելու համար: Հեռավոր փաթեթների կառավարիչների վստահեցումը նաև զգալիորեն արագացնում է CI-ի կառուցման գործընթացը՝ փաթեթները դարձնելով ավելի մատչելի կառուցման համար: Մեկ այլ առավելություն է մի քանի ծրագրային նախագծերում օգտագործվող բոլոր փաթեթների ամբողջական պատկերացում ստանալու հնարավորությունը՝ արգելափակելով անապահով բաց կոդով փաթեթները (դրանք կարող են հանդես գալ որպես հարձակման վեկտոր):

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

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

#1 Կազմաձևման կառավարման գործիք

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

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

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

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

Մրցակիցներ

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

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

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

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

Հաղթող ` Terraform

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

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

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

Մրցակիցներ

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

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

Runtime գործիքներ

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

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

Գործարկման ժամանակի գործիքների ենթակատեգորիաներ.

  • X-as-a-service (XaaS)
  • նվագախումբ
  • Դիտարկման
  • ծառահատումներ.

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

Հաղթող ` Amazon Web Services

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

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

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

Մրցակիցներ

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

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

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

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

Հաղթող ` OpenShift- ը

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

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

  • Ներկառուցված անվտանգություն – K8s անվտանգության կառավարումը կարող է պահանջել առաջադեմ աստիճան: Յուրաքանչյուր մանրուք պետք է ուշադիր մտածել և հաշվի առնել: OpenShift-ով լռելյայն ներկառուցված անվտանգության մեխանիզմները վերացնում են ծրագրավորողների բեռը և ապահովում են ավելի ապահով հարթակ հավելվածների համար:
  • «Բոլորը մեկում» լուծում. Ի տարբերություն հիմնական K8-ների, որոնք լռելյայնորեն չեն ներառում բեռների հավասարակշռման գործիքներ, OpenShift-ն ունի ամեն ինչ: Ես կարող եմ օգտագործել այն կոնտեյներներ ստեղծելու և հյուրընկալելու, CI/CD գործիքներ գործարկելու, արտաքին գործընթացները կառավարելու, բանալիները կառավարելու և շատ ավելին: Չնայած օգտատիրոջ գրաֆիկական ինտերֆեյսը դեռ հեռու է կատարյալ լինելուց, 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 է, այնպես որ դուք պետք չէ ինքներդ տեղադրել այն:
  • Վերջից մինչև վերջ տեսանելիություն – Այլ գործիքներ փորձում են վերահսկել ձեր հավելվածի մեկ կոնկրետ տարր: Օրինակ՝ պրոցեսորի օգտագործման չափանիշ կամ ցանցային տրաֆիկ, բայց այս ամենը պետք է համակողմանիորեն վերահսկվի, որպեսզի հավելվածը ճիշտ աշխատի: New Relic-ը ձեզ հնարավորություն է տալիս համախմբել ձեր բոլոր տվյալները՝ կատարվածի համապարփակ պատկերացում կազմելու համար:

Մրցակիցներ

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

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

DataDog — Չափից շատ կենտրոնացած է հավելվածի արտադրական միջավայրի կառավարման գործընթացի վրա, և ոչ թե բուն կոդի վրա: DevOps թիմերի հետ, որոնցում ներգրավված են մշակողներ, մենք կարիք չունենք ապավինել դժվար օգտագործվող գործիքներին՝ բարձրակարգ աջակցություն տրամադրելու համար:

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

Հաղթող ` Splunk

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

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

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

Մրցակիցներ

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

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

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

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

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

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

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

Հաղթող ` Ջիրա

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

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

  • Հանրաճանաչություն - Ինչպես շատ այլ գործիքներ, 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 խողովակաշարի համար:

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

  • գործիքների մշակում և կառուցում
  • փորձարկման ավտոմատացման գործիքներ
  • տեղակայման գործիքներ
  • Runtime գործիքներ
  • համագործակցության գործիքներ.

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

Շնորհակալություն Zach Shapiro!

Source: www.habr.com

Добавить комментарий