DevOps эмне үчүн керек жана DevOps адистери кимдер?

Тиркеме иштебей калганда, кесиптештериңизден уккуңуз келген акыркы нерсе - бул "көйгөй сиз тарапта" деген сөз. Натыйжада, колдонуучулар жапа чегишет - жана алар команданын кайсы бөлүгү бузулууга жооптуу экенине маани беришпейт. DevOps маданияты түпкү продукт үчүн жалпы жоопкерчиликтин айланасында өнүгүүнү жана колдоону бириктирүү үчүн так пайда болгон.

DevOps концепциясына кандай практикалар кирет жана алар эмне үчүн керек? DevOps инженерлери эмне кылышат жана алар эмне кылышы керек? EPAM эксперттери ушул жана башка суроолорго жооп беришет: система инженери жана DevOps евангелисти Кирилл Сергеев жана компаниянын DevOps командаларынын биринин жетектөөчү инженери жана координатору Игорь Бойко.

DevOps эмне үчүн керек жана DevOps адистери кимдер?

DevOps эмне үчүн керек?

Мурда иштеп чыгуучулар менен колдоонун ортосунда тоскоолдук бар болчу (операциялар деп аталган). Бул парадоксалдуу угулат, бирок алардын максаттары жана KPIлери ар кандай болгон, бирок алар бир эле нерсени кылып жатышкан. Иштеп чыгуунун максаты бизнес талаптарын мүмкүн болушунча тезирээк ишке ашыруу жана аларды жумушчу продуктка кошуу болгон. Колдоо колдонмонун туруктуу иштешин камсыз кылуу үчүн жооптуу болгон жана бардык өзгөртүүлөр туруктуулукту тобокелге салат. Кызыкчылыктардын кагылышуусу бар - аны DevOps чечет.

DevOps деген эмне?

Бул жакшы суроо - жана талаштуу: дүйнө бул боюнча биротоло макул боло элек. EPAM DevOps технологияларды, процесстерди жана команданын ичиндеги өз ара аракеттенүү маданиятын айкалыштырат деп эсептейт. Бул бирикме тынымсыз акыркы колдонуучуларга баалуулуктарды жеткирүүгө багытталган.

Кирилл Сергеев: "Иштеп чыгуучулар код жазышат, сыноочулар аны карап чыгышат жана администраторлор акыркы продуктуну өндүрүшкө жайылтат. Узак убакыт бою команданын бул бөлүктөрү бир аз чачыранды болуп, анан аларды жалпы процесс аркылуу бириктирүү идеясы пайда болгон. DevOps практикасы ушундайча пайда болду."

Иштеп чыгуучулар менен системалык инженерлер бири-биринин ишине кызыгышкан күн келди. Өндүрүш менен колдоонун ортосундагы тосмо жок боло баштады. Бул практикаларды, маданиятты жана командалык өз ара аракеттенүүнү камтыган DevOps пайда болду.

DevOps эмне үчүн керек жана DevOps адистери кимдер?

DevOps маданиятынын маңызы эмнеде?

Чындыгында акыркы натыйжа учун жоопкерчилик бригаданын ар бир мучесунда. DevOps философиясындагы эң кызыктуу жана татаал нерсе - бул конкреттүү адам өзүнүн иш стадиясына гана жооп бербестен, бүт продукт кантип иштей турганына жооптуу экенин түшүнүү. Маселе эч кимдин тарабында болбойт – ал бөлүшүлөт жана аны чечүүгө команданын ар бир мүчөсү жардам берет.

DevOps маданиятындагы эң маанилүү нерсе - бул DevOps тажрыйбаларын колдонуу эмес, көйгөйдү чечүү. Мындан тышкары, бул тажрыйбалар "бирөө тарапта" эмес, бүтүндөй продукт боюнча ишке ашырылат. Долбоор үчүн DevOps инженеринин кереги жок - ал көйгөйдү чечүү керек жана DevOps инженеринин ролу ар кандай адистиктерге ээ болгон бир нече команда мүчөлөрүнүн арасында бөлүштүрүлүшү мүмкүн.

DevOps тажрыйбаларынын кандай түрлөрү бар?

DevOps практикалары программалык камсыздоонун жашоо циклинин бардык этаптарын камтыйт.

Игорь Бойко: "Идеалдуу учур - бул долбоордун башталышында эле биз DevOps практикасын колдоно баштаганыбыз. Архитекторлор менен бирге биз тиркеме кандай архитектуралык ландшафтка ээ болорун, ал кайда жайгашаарын жана кандай масштабда болорун пландаштырып, аянтчаны тандайбыз. Учурда микросервис архитектурасы модада - ал үчүн биз оркестрдик системаны тандайбыз: тиркеменин ар бир элементин өзүнчө башкара билүү жана аны башкалардан көз карандысыз жаңыртуу керек. Дагы бир практика "код катары инфраструктура" болуп саналат. Бул долбоордун инфраструктурасы серверлер менен түз өз ара аракеттенүү аркылуу эмес, коддун жардамы менен түзүлгөн жана башкарылган ыкманын аталышы.

Андан кийин биз өнүгүү стадиясына өтөбүз. Бул жердеги эң чоң практикалардын бири CI/CDди түзүү: сиз иштеп чыгуучуларга өзгөрүүлөрдү продуктка тез, аз бөлүктө, тез-тез жана оорутпай киргизүүгө жардам беришиңиз керек. CI/CD кодду карап чыгууну, мастерди код базасына жүктөөнү жана тиркемени сыноо жана өндүрүш чөйрөсүнө жайылтууну камтыйт.

CI/CD баскычтарында код сапат дарбазалары аркылуу өтөт. Алардын жардамы менен алар иштеп чыгуучунун жумушчу станциясынан чыккан код көрсөтүлгөн сапат критерийлерине жооп берерин текшеришет. Бул жерде бирдик жана UI тести кошулган. Ыкчам, оорутпай жана багытталган продуктту жайылтуу үчүн, сиз ылайыктуу жайгаштыруу түрүн тандай аласыз.

DevOps практиктери да даяр продуктуну колдоо баскычында орунга ээ. Алар мониторинг, пикир билдирүү, коопсуздук жана өзгөртүүлөрдү киргизүү үчүн колдонулат. DevOps бул милдеттердин баарын үзгүлтүксүз өркүндөтүү көз карашынан карайт. Биз кайталануучу операцияларды азайтып, аларды автоматташтырабыз. Бул ошондой эле миграцияларды, колдонмолорду кеңейтүүнү жана аткарууну колдоону камтыйт."

DevOps тажрыйбаларынын кандай пайдасы бар?

Эгерде биз заманбап DevOps практикасы боюнча окуу китебин жазып жаткан болсок, биринчи бетте үч пункт болмок: автоматташтыруу, чыгарууну тездетүү жана колдонуучулардын тез пикири.

Кирилл Сергеев: «Биринчи нерсе — автоматташтыруу. Биз командадагы бардык өз ара аракеттерди автоматташтыра алабыз: кодду жаздым - аны чыгардык - аны текшердик - орноттук - пикирди чогулттук - башына кайттык. Мунун баары автоматтык.

Экинчиси - чыгарууну тездетүү жана ал тургай иштеп чыгууну жөнөкөйлөтүү. Бул продукт мүмкүн болушунча тезирээк рынокко кирип, атаандаштардын аналогдоруна караганда эртерээк пайда бере башташы кардар үчүн ар дайым маанилүү. Продукцияны жеткирүү процессин чексиз өркүндөтсө болот: убакытты кыскартуу, кошумча контролдук белгилерди кошуу, мониторингди жакшыртуу.

Үчүнчүсү - колдонуучулардын пикирлерин тездетүү. Эгерде анын комментарийлери болсо, биз дароо оңдоолорду киргизип, тиркемени дароо жаңырта алабыз."

DevOps эмне үчүн керек жана DevOps адистери кимдер?

"Системалык инженер", "куруу инженери" жана "DevOps инженери" түшүнүктөрү кандай байланышы бар?

Алар бири-бирине дал келет, бирок бир аз башка аймактарга таандык.

EPAMда системалык инженер - бул кызмат. Алар ар кандай деңгээлде болот: кенжеден башкы адиске чейин.

Курулуш инженери - бул долбоордо аткарыла турган рол. Эми CI/CD үчүн жооптуу адамдар ушундай деп аталат.

DevOps инженери - бул DevOps тажрыйбаларын долбоордо ишке ашырган адис.

Эгерде бардыгын жыйынтыктап көрсөк, анда биз мындай нерсени алабыз: системалык инженер кызматындагы адам долбоордо куруучу инженердин ролун ойнойт жана ал жерде DevOps практикасын ишке ашырууга катышат.

DevOps инженери так эмне кылат?

DevOps инженерлери долбоорду түзгөн бардык бөлүктөрүн бириктиришет. Алар программисттердин, тестирлөөчүлөрдүн, системалык администраторлордун ишинин өзгөчөлүктөрүн билишет жана алардын ишин жөнөкөйлөтүүгө жардам беришет. Алар бизнестин керектөөлөрүн жана талаптарын, анын өнүгүү процессиндеги ролун түшүнүшөт жана процессти кардардын кызыкчылыктарын эске алуу менен курат.

Биз автоматташтыруу жөнүндө көп сүйлөштүк - бул биринчи кезекте DevOps инженерлери менен алектенет. Бул башка нерселер менен катар, айлана-чөйрөнү даярдоону камтыйт абдан чоң пункт болуп саналат.

Кирилл Сергеев: "Өнүмдүн жаңыртууларын киргизүүдөн мурун, алар үчүнчү тараптын чөйрөсүндө сыналышы керек. Бул DevOps инженерлери тарабынан даярдалган. Алар бүтүндөй долбоорго DevOps маданиятын киргизишет: алар өздөрүнүн долбоорлорунун бардык катмарларында DevOps тажрыйбаларын киргизишет. Бул үч принцип: автоматташтыруу, жөнөкөйлөштүрүү, тездетүү – алар каалаган жерге жетет».

DevOps инженери эмнени билиши керек?

Жалпысынан алганда, ал ар түрдүү тармактарда билимге ээ болушу керек: программалоо, операциялык системалар менен иштөө, маалымат базалары, монтаждоо жана конфигурациялоо системалары. Булар булут инфраструктурасы, оркестрлөө жана мониторинг системалары менен иштөө жөндөмдүүлүгү менен толукталат.

1. Программалоо тилдери

DevOps инженерлери автоматташтыруу үчүн бир нече негизги тилдерди билишет жана, мисалы, программистке: “Кодду кол менен эмес, бардыгын автоматташтырган биздин скрипт менен орнотсоңуз кандай? Биз ага конфигурация файлын даярдайбыз, ал сизге да, бизге да окууга ыңгайлуу болот жана биз аны каалаган убакта өзгөртө алабыз. Ага ким, качан жана эмне үчүн өзгөртүү киргизээрин да көрөбүз».

DevOps инженери бул тилдердин бирин же бир нечесин үйрөнө алат: Python, Groovy, Bash, Powershell, Ruby, Go. Аларды терең деңгээлде билүү зарыл эмес – синтаксистин негиздери, OOP принциптери, автоматташтыруу үчүн жөнөкөй скрипттерди жазуу жөндөмү жетиштүү.

2. Операциялык системалар

DevOps инженери продукт кайсы серверге орнотуларын, ал кандай чөйрөдө иштей турганын жана кандай кызматтар менен иштешерин түшүнүшү керек. Сиз Windows же Linux үй-бүлөсүндө адистешин тандай аласыз.

3. Версияларды башкаруу системалары

Версияны башкаруу тутумун билбесе, DevOps инженери эч жерде болбойт. Git учурда эң популярдуу системалардын бири.

4. Булут провайдерлери

AWS, Google, Azure - өзгөчө Windows багыты жөнүндө сөз болсо.

Кирилл Сергеев: "Булут провайдерлери бизге CI/CDге эң сонун туура келген виртуалдык серверлерди беришет.

Он физикалык серверди орнотуу жүзгө жакын кол операциясын талап кылат. Ар бир серверди кол менен ишке киргизип, керектүү операциялык системаны орнотуп, конфигурациялап, биздин тиркемени ушул он серверге орнотуп, анан баарын он жолу эки жолу текшериш керек. Булут кызматтары бул процедураны он сап код менен алмаштырат жана жакшы DevOps инженери алар менен иштей алышы керек. Бул кардар үчүн да, компания үчүн да убакытты, күчтү жана акчаны үнөмдөйт».

5. Оркестрация системалары: Docker жана Kubernetes

Кирилл Сергеев: “Виртуалдык серверлер контейнерлерге бөлүнөт, алардын ар бирине биз өзүбүздүн тиркемени орното алабыз. Контейнерлер көп болгондо, аларды башкаруу керек: бирин күйгүзүңүз, экинчисин өчүрүңүз, бир жерде резервдик көчүрмөлөрдү жасаңыз. Бул кыйла татаал болуп калат жана оркестрдик системаны талап кылат.

Мурда ар бир тиркеме өзүнчө сервер тарабынан башкарылчу - анын иштөөсүндөгү ар кандай өзгөртүүлөр тиркеменин иштөө мүмкүнчүлүгүнө таасир этиши мүмкүн. Контейнерлердин аркасында тиркемелер обочолонуп, өзүнчө иштейт – ар бири өзүнүн виртуалдык машинасында. Эгер ката кетсе, анын себебин издөөгө убакыт коротуунун кереги жок. Эски идишти жок кылып, жаңысын кошуу оңой».

6. Конфигурация системалары: Chef, Ansible, Puppet

Серверлердин бүтүндөй паркын тейлөө керек болгондо, сиз бир эле типтеги операцияларды көп жасашыңыз керек. Бул узак жана кыйын, жана кол менен иштөө да ката мүмкүнчүлүгүн жогорулатат. Бул жерде конфигурация системалары жардамга келет. Алардын жардамы менен алар программисттер, DevOps инженерлери жана системалык администраторлор үчүн окууга оңой болгон скрипт түзүшөт. Бул скрипт серверлерде ошол эле операцияларды автоматтык түрдө аткарууга жардам берет. Бул кол операцияларын (демек, каталарды) азайтат.

DevOps инженери кандай карьераны кура алат?

Сиз туурасынан да, тигинен да өнүктүрө аласыз.

Игорь Бойко: "Горизонталдык өнүгүү көз карашынан алганда, DevOps инженерлери азыр эң кеңири перспективаларга ээ. Баары тынымсыз өзгөрүп турат жана сиз ар түрдүү тармактарда көндүмдөрдү түзө аласыз: версияны башкаруу тутумдарынан мониторингге чейин, конфигурацияларды башкаруудан маалымат базаларына чейин.

Эгерде кызматкер тиркеменин иштөө циклинин бардык этаптарында - иштеп чыгуудан баштап колдоого чейин кандай иштээрин түшүнүүгө кызыкса, сиз системанын архитектору боло аласыз."

Кантип DevOps инженери болууга болот?

  1. Phoenix долбоору жана DevOps колдонмосун окуңуз. Булар DevOps философиясынын чыныгы түркүктөрү, биринчиси фантастикалык чыгарма.
  2. Жогорудагы тизмеден технологияларды үйрөнүңүз: өз алдынча же онлайн курстар аркылуу.
  3. Ачык булак долбоору үчүн DevOps инженери катары кошулуңуз.
  4. Жеке жана жумуш долбоорлоруңузда DevOps тажрыйбаларын көнүгүү жана сунуш кылыңыз.

Source: www.habr.com

Комментарий кошуу