Біз DevOps туралы түсінікті тілде сөйлесеміз

DevOps туралы айтқанда негізгі ойды түсіну қиын ба? Біз сіздер үшін нақты аналогияларды, таңғаларлық тұжырымдарды және сарапшылардың кеңестерін жинадық, олар тіпті маман еместерге де нүктеге жетуге көмектеседі. Соңында бонус Red Hat қызметкерлерінің жеке DevOps болып табылады.

Біз DevOps туралы түсінікті тілде сөйлесеміз

DevOps термині 10 жыл бұрын пайда болды және Twitter хэштегінен IT әлеміндегі қуатты мәдени қозғалысқа, әзірлеушілерді тезірек жұмыс істеуге, тәжірибе жасауға және алға қарай қайталауға шақыратын шынайы философияға айналды. DevOps цифрлық трансформация тұжырымдамасымен ажырамас байланыста болды. Бірақ IT терминологиясында жиі орын алатындай, соңғы он жылда DevOps өзі туралы көптеген анықтамалар, түсіндірмелер мен қате түсініктерге ие болды.

Сондықтан сіз DevOps туралы сұрақтарды жиі ести аласыз, бұл Agile сияқты ма? Немесе бұл арнайы әдістеме ме? Немесе бұл «ынтымақтасу» сөзінің басқа синонимі ме?

DevOps көптеген әртүрлі тұжырымдамаларды қамтиды (үздіксіз жеткізу, үздіксіз интеграция, автоматтандыру және т. Дегенмен, бұл шеберлік өте пайдалы, сіз өзіңіздің идеяларыңызды басшыларға жеткізуге тырыссаңыз да немесе отбасыңыздан немесе достарыңыздан біреуге жұмысыңыз туралы айтып берсеңіз де. Сондықтан, қазір DevOps-тың терминологиялық нюанстарын қойып, үлкен суретке назар аударайық.

DevOps дегеніміз не: 6 анықтамалар мен ұқсастықтар

Біз сарапшылардан DevOps мәнін мүмкіндігінше қарапайым және қысқаша түсіндіруді сұрадық, осылайша оның құндылығы кез келген техникалық білімі бар оқырмандарға түсінікті болады. Осы сұхбаттардың нәтижелеріне сүйене отырып, біз DevOps туралы тарихыңызды құруға көмектесетін ең таңғаларлық ұқсастықтар мен керемет тұжырымдарды таңдадық.

1. DevOps – мәдени қозғалыс

«DevOps – бұл екі тарап (бағдарламалық жасақтаманы әзірлеушілер мен АТ жүйесі жұмысының мамандары) бағдарламалық жасақтама оны біреу пайдалана бастағанға дейін нақты пайда әкелмейтінін мойындайтын мәдени қозғалыс: тұтынушылар, клиенттер, қызметкерлер, маңызды емес», - дейді Эвелин Оэрлих, аға зерттеуші. DevOps институтының талдаушысы. «Сондықтан бұл екі тарап бағдарламалық қамтамасыз етуді жылдам және сапалы жеткізуді бірлесіп қамтамасыз етеді».

2. DevOps әзірлеушілерге мүмкіндік береді.

«DevOps әзірлеушілерге қолданбаларды иеленуге, оларды іске қосуға және жеткізуді басынан аяғына дейін басқаруға мүмкіндік береді».

Liberty Mutual сақтандыру компаниясының DevOps платформаларының директоры Джай Шниепп: «Әдетте DevOps туралы автоматтандырылған процестерді құру және енгізу арқылы қосымшаларды өндіріске жеткізуді жеделдету тәсілі ретінде айтылады. «Бірақ мен үшін бұл әлдеқайда маңызды нәрсе». DevOps әзірлеушілерге қолданбаларды немесе бағдарламалық құралдың нақты бөліктерін иеленуге, оларды іске қосуға және жеткізуді басынан аяғына дейін басқаруға мүмкіндік береді. DevOps жауапкершіліктің шатасуын жояды және автоматтандырылған, әзірлеушілер басқаратын инфрақұрылымды құруға қатысатын барлық адамдарға басшылық етеді.

3. DevOps қолданбаларды жасау және жеткізудегі ынтымақтастық туралы.

«Қарапайым тілмен айтқанда, DevOps - бұл барлығы бірге жұмыс істейтін бағдарламалық жасақтаманы өндіру мен жеткізу тәсілі», - дейді Гур Стаф, BMC компаниясының цифрлық бизнесті автоматтандыру бөлімінің президенті және басшысы.

4. DevOps - бұл құбыр желісі

«Конвейерді құрастыру тек барлық бөлшектер бір-біріне сәйкес келсе ғана мүмкін болады».

«Мен DevOps-ті автомобиль құрастыру желісімен салыстырар едім», - деп жалғастырады Гур қызметкерлері. – Барлық бөлшектерді жеке реттеусіз құрастыру үшін алдын ала жобалау және жасау идеясы. Конвейерді құрастыру тек барлық бөлшектер бір-біріне сәйкес келсе ғана мүмкін болады. Қозғалтқышты құрастыратын және құрастыратындар оны корпусқа немесе рамаға қалай орнату керектігін қарастыруы керек. Тежегішті жасайтындар дөңгелектер туралы ойлауы керек және т.б. Бағдарламалық жасақтамамен де солай болуы керек.

Іскерлік логиканы немесе пайдаланушы интерфейсін жасайтын әзірлеуші ​​тұтынушы туралы ақпаратты сақтайтын дерекқор, пайдаланушы деректерін қорғауға арналған қауіпсіздік шаралары және қызмет үлкен, тіпті миллиондаған долларлық пайдаланушы аудиториясына қызмет көрсете бастағанда мұның бәрі қалай жұмыс істейтіні туралы ойлауы керек. ."

«Адамдарды бірлесе жұмыс істеуге және жұмыстың басқалар жасайтын бөліктері туралы ойлауға тарту, тек өз міндеттеріне ғана назар аудармай, еңсеруге болатын ең үлкен кедергі. Егер сіз мұны істей алсаңыз, сізде цифрлық трансформацияға тамаша мүмкіндік бар», - деп толықтырды Гур Стафф.

5. DevOps – адамдардың, процестердің және автоматтандырудың дұрыс үйлесімі

Джейн Гролл, DevOps институтының атқарушы директоры DevOps-ті түсіндіру үшін тамаша ұқсастықты ұсынды. Оның сөзімен айтқанда, «DevOps ингредиенттердің үш негізгі категориясы бар рецепт сияқты: адамдар, процесс және автоматтандыру. Бұл ингредиенттердің көпшілігін басқа салалар мен көздерден алуға болады: Lean, Agile, SRE, CI/CD, ITIL, көшбасшылық, мәдениет, құралдар. DevOps құпиясы, кез келген жақсы рецепт сияқты, қосымшаларды жасау және шығару жылдамдығы мен тиімділігін арттыру үшін осы ингредиенттерді дұрыс пропорциялар мен араластыруды қалай алу керек.

6. DevOps – бағдарламашылар Формула 1 командасы сияқты жұмыс істейді

«Жарыс басынан аяғына дейін емес, керісінше, мәреден басына дейін жоспарланған».

«Мен DevOps бастамасынан не күтуге болатыны туралы айтқан кезде, мысал ретінде NASCAR немесе Формула 1 жарыс командасын ойлаймын», - дейді Крис Шорт, Red Hat компаниясының бұлттық платформа маркетингінің аға менеджері және DevOps'ish ақпараттық бюллетенінің шығарушысы. – Мұндай команданың көшбасшысының бір мақсаты бар: команданың қолында бар ресурстар мен оның басынан өткен қиындықтарды ескере отырып, жарыстың соңында мүмкін болатын ең жоғары орынды алу. Бұл жағдайда жарыс басынан аяғына дейін емес, керісінше, мәреден басына дейін жоспарланған. Алдымен өршіл мақсат қойылады, содан кейін оған жету жолдары анықталады. Содан кейін олар қосалқы тапсырмаларға бөлініп, топ мүшелеріне беріледі».

«Команда жарысқа дейін бір апта бойы пит-стопты жетілдіруге жұмсайды. Ол ауыр жарыс күні пішінін сақтау үшін күш жаттығулары мен кардио жаттығуларымен айналысады. Жарыс кезінде туындауы мүмкін мәселелерді бірлесіп шешуге жаттығады. Сол сияқты әзірлеушілер тобы жаңа нұсқаларды жиі шығару дағдысын үйретуі керек. Егер сізде осындай дағдылар мен жақсы жұмыс істейтін қауіпсіздік жүйесі болса, өндіріске жаңа нұсқаларды енгізу жиі орын алады. Бұл дүниетаным бойынша жылдамдықтың жоғарылауы қауіпсіздіктің жоғарылауын білдіреді», - дейді Шорт.

«Бұл «дұрыс нәрсені» жасау туралы емес, - деп қосады Шорт, - бұл қалаған нәтижеге кедергі болатын мүмкіндігінше көп нәрсені жою туралы. Нақты уақытта алған кері байланыс негізінде бірлесіп жұмыс жасаңыз және бейімделіңіз. Аномалияларға дайын болыңыз және олардың мақсатыңызға жетудегі ықпалын азайту үшін сапаны жақсартуға тырысыңыз. Бұл бізді DevOps әлемінде күтіп тұрған нәрсе».

Біз DevOps туралы түсінікті тілде сөйлесеміз

DevOps қалай масштабтауға болады: сарапшылардың 10 кеңесі

Бұл жай ғана DevOps және жаппай DevOps мүлдем басқа нәрселер. Біз сізге біріншіден екіншісіне дейінгі жолдағы кедергілерді қалай жеңуге болатынын айтамыз.

Көптеген ұйымдар үшін DevOps-ке саяхат оңай әрі жағымды басталады. Шағын ынталы ұжымдар құрылып, ескі үрдістер жаңаларымен ауыстырылып, алғашқы табыстар көп күттірмейді.

Өкінішке орай, бұл жай ғана жалған жылтыр, прогрестің елесін, дейді Бен Гриннелл, басқарушы директор және North Highland консалтингінің цифрлық жетекшісі. Ерте жеңістер, әрине, жігерлендіреді, бірақ олар DevOps-ті ұйымда кеңінен қолданудың түпкі мақсатына жетуге көмектеспейді.

Нәтижесі «біз» және «олар» арасында бөліну мәдениеті екенін байқау қиын емес.

«Көбінесе ұйымдар негізгі DevOps-қа жол ашады деп ойлап, басқалардың сол жолмен жүре алатынын немесе жүре алатынын ойламай-ақ, осы жаңашыл жобаларды іске қосады», - деп түсіндіреді Бен Гриннелл. – Мұндай жобаларды жүзеге асыру үшін командалар әдетте басқа жерлерде ұқсас нәрсені жасаған, бірақ сіздің ұйымыңыз үшін жаңадан келген өзіне сенімді «Варангиялықтардан» алынады. Сонымен қатар, олар басқаларға міндетті болып қалатын ережелерді бұзуға және жоюға шақырылады. Нәтижесі білім мен дағдының берілуін тежейтін «біз» мен «олардың» мәдениеті екенін байқау қиын емес».

«Және бұл мәдени мәселе - DevOps-ті масштабтау қиынға соғатын себептердің бірі ғана. DevOps командалары жылдам дамып келе жатқан IT-бірінші компанияларға тән техникалық қиындықтарға тап болуда», - деді Стив Ньюман, Scalyr негізін қалаушы және төрағасы.

«Қазіргі әлемде қызметтер қажеттілік туындаған кезде өзгереді. Жаңа мүмкіндіктерді үнемі енгізу және енгізу өте жақсы, бірақ бұл процесті үйлестіру және туындайтын мәселелерді жою - нағыз бас ауруы, деп қосады Стив Ньюман. – Өте жылдам дамып келе жатқан ұйымдарда кросс-функционалды командалардағы инженерлер өзгерістерге және ол жасайтын тәуелділік деңгейіндегі каскадтық әсерлерге көрінуді сақтау үшін күреседі. Оның үстіне, инженерлер бұл мүмкіндіктен айырылған кезде қуанбайды және нәтижесінде туындаған мәселелердің мәнін түсіну қиындай түседі».

Жоғарыда сипатталған осы қиындықтарды қалай жеңуге және үлкен ұйымда DevOps-ті жаппай қабылдауға көшуге болады? Сарапшылар шыдамдылыққа шақырады, тіпті сіздің түпкілікті мақсатыңыз бағдарламалық жасақтаманы әзірлеу циклін және бизнес-процестерді жылдамдату болса да.

1. Мәдениетті өзгерту уақытты қажет ететінін есте сақтаңыз.

Джейн Гролл, DevOps институтының атқарушы директоры: «Менің ойымша, DevOps-тың кеңеюі икемді даму сияқты (және мәдениетке де қатысты) қадамдық және итеративті болуы керек. Agile және DevOps шағын командаларға ерекше мән береді. Бірақ бұл командалардың саны өсіп, интеграцияланған сайын, біз жұмыс істеудің жаңа әдістерін қабылдайтын адамдар санының көбеюіне әкеліп соқтырамыз және нәтижесінде жаппай мәдени трансформация болады ».

2. Платформаны жоспарлауға және таңдауға жеткілікті уақыт бөліңіз

Эран Кинсбрунер, Perfecto компаниясының жетекші техникалық евангелисті: «Жұмысты масштабтау үшін DevOps командалары алдымен дәстүрлі процестерді, құралдарды және дағдыларды біріктіруді үйренуі керек, содан кейін DevOps әрбір жеке кезеңін баяу дамытып, тұрақтандыруы керек. Мұның бәрі пайдаланушы оқиғалары мен құндылық ағындарын мұқият жоспарлаудан басталады, содан кейін магистральдық өңдеуді немесе кодты тармақтау және біріктіру үшін ең қолайлы басқа тәсілдерді пайдалана отырып, бағдарламалық жасақтаманы және нұсқаны басқаруды жазудан басталады.

«Сосын интеграция және тестілеу кезеңі келеді, мұнда автоматтандыру үшін масштабталатын платформа қажет. Дәл осы жерде DevOps командалары үшін олардың шеберлік деңгейіне және жобаның түпкі мақсаттарына сәйкес келетін дұрыс платформаны таңдау маңызды.

Келесі кезең өндіріске енгізу болып табылады және ол оркестрлік құралдар мен контейнерлер арқылы толығымен автоматтандырылуы керек. DevOps барлық кезеңдерінде виртуалдандырылған орталардың болуы маңызды (өндіріс симуляторы, QA ортасы және нақты өндіріс ортасы) және сәйкес қорытындыларды алу үшін әрқашан сынақтар үшін соңғы деректерді ғана пайдаланыңыз. Analytics ақылды болуы керек және үлкен деректерді жылдам және әсерлі кері байланыспен өңдеуге қабілетті болуы керек.

3. Жауапкершіліктен кінәні алып тастау.

Гордон Хафф, RedHat евангелисті: «Тәжірибе жасауға мүмкіндік беретін және ынталандыратын жүйе мен атмосфераны құру епті бағдарламалық жасақтаманы әзірлеуде сәтті сәтсіздіктер деп аталатын нәрселерге мүмкіндік береді. Бұл сәтсіздікке басқа ешкім жауапты емес дегенді білдірмейді. Шындығында, кім жауапты екенін анықтау оңайырақ болады, өйткені «жауапты болу» енді «апатқа себеп болу» дегенді білдірмейді. Яғни, жауапкершіліктің мәні сапалы түрде өзгереді. Төрт фактор маңызды болып табылады: бұзылу дәрежесі, тәсілдер, өндірістік процестер және ынталандыру. (Бұл факторлар туралы толығырақ Гордон Хаффтың «DevOps сабақтары: сау эксперименттердің 4 аспектілері» мақаласынан оқи аласыз.)

4. Алға қарай жолды босатыңыз

Бен Гриннелл, North Highland консалтингінің басқарушы директоры және цифрлық басшысы: «Масштабқа жету үшін мен жаңашыл жобалармен бірге «жолдарды тазарту» бағдарламасын іске қосуды ұсынамын. Бұл бағдарламаның мақсаты - DevOps пионерлері артта қалдыратын ескірген ережелер мен сол сияқты нәрселерді қоқысты тазарту, осылайша алға баратын жол анық болып қалады.

«Жаңа жұмыс тәсілдерінің жетістіктерін кеңінен атап өту арқылы ізашар топтың шеңберінен шығатын қарым-қатынас арқылы адамдарға ұйымдық қолдау мен серпін беріңіз. DevOps жобаларының келесі толқынына қатысатын және DevOps-ті алғаш рет пайдаланудан қобалжыған адамдарды жаттықтырыңыз. Және бұл адамдар пионерлерден айтарлықтай ерекшеленетінін есте сақтаңыз ».

5. Құралдарды демократияландыру

Стив Ньюман, Scalyr негізін қалаушы және төрағасы: «Құралдар адамдардан жасырылмауы керек және олар уақытты жұмсағысы келетін кез келген адам үшін салыстырмалы түрде оңай үйренуі керек. Журналдарды сұрау мүмкіндігі құралды пайдалану үшін «сертификатталған» үш адаммен шектелсе, сізде өте үлкен есептеу ортасы болса да, мәселені шешуге әрқашан қол жетімді ең көбі үш адам болады. Басқаша айтқанда, бұл жерде ауыр (бизнес) зардаптарға әкелетін тығырық бар».

6. Топтық жұмыс үшін тамаша жағдай жасау

Том Кларк, ITV Common Platform басшысы: «Сіз бәрін жасай аласыз, бірақ бәрін бірден емес. Сондықтан үлкен мақсаттар қойыңыз, кішкентайдан бастаңыз және жылдам итерациялармен алға жылжыңыз. Уақыт өте келе сіз жұмысты аяқтау үшін беделге ие боласыз, сондықтан басқалар да сіздің әдістеріңізді пайдаланғысы келеді. Және жоғары тиімді команда құру туралы алаңдамаңыз. Оның орнына адамдарға тамаша жұмыс жағдайларын қамтамасыз етіңіз және нәтижелі болады ».

7. Конвей заңы мен Канбан тақталары туралы ұмытпаңыз

Логан Дэйгл, CollabNetVersionOne бағдарламалық жасақтамасын жеткізу және DevOps стратегиясының директоры: «Конвей заңының салдарын түсіну маңызды. Менің бос сөзбен айтқанда, бұл заңда біз жасайтын өнімдер және біз бұл үшін қолданатын процестер, соның ішінде DevOps, біздің ұйым сияқты құрылымдалған болатынын айтады ».

«Егер ұйымда силостар көп болса және бағдарламалық қамтамасыз етуді жоспарлау, құру және шығару кезінде бақылау бірнеше рет ауысса, масштабтау әсері нөлге тең болады немесе қысқа мерзімді болады. Егер ұйым нарыққа бағытталған қаржыландырылатын өнімдердің айналасында кросс-функционалды командаларды құрса, онда табысқа жету мүмкіндігі күрт артады ».

«Масштабтаудың тағы бір маңызды аспектісі - Kanban тақталарында барлық аяқталмаған жұмыстарды (WIP, workinprogress) көрсету. Ұйымда адамдар осы нәрселерді көре алатын орын болса, бұл ынтымақтастықты айтарлықтай ынталандырады, бұл масштабтауға оң әсер етеді ».

8. Ескі тыртықтарды іздеңіз

Мануэль Паис, DevOps кеңесшісі және Team Topologies авторларының бірі: «DevOps тәжірибесін Dev және Ops-тен тыс қабылдау және оларды басқа функцияларға қолдануға тырысу оңтайлы тәсіл емес. Бұл, әрине, белгілі бір әсер етеді (мысалы, қолмен басқаруды автоматтандыру арқылы), бірақ жеткізу және кері байланыс процестерін түсінуден бастасақ, әлдеқайда көп нәрсеге қол жеткізуге болады.

«Егер ұйымның АТ жүйесінде ескі тыртықтар болса - өткен оқиғалардың нәтижесінде жүзеге асырылған, бірақ өзектілігін жоғалтқан (өнімдердің, технологиялардың немесе процестердің өзгеруіне байланысты) процедуралар мен басқару тетіктері - онда оларды, әрине, жою қажет. немесе тиімсіз немесе қажетсіз процестерді автоматтандырудың орнына тегістеледі».

9. DevOps опцияларын көбейтпеңіз

Энтони Эдвардс, Eggplant операциялық директоры: «DevOps - бұл өте түсініксіз термин, сондықтан әр команда өзінің DevOps нұсқасымен аяқталады. Ұйымда кенеттен бір-бірімен жақсы үйлеспейтін 20 түрлі DevOps болса, одан жаман ештеңе жоқ. Үш әзірлеу тобының әрқайсысының әзірлеу мен өнімді басқару арасында өзіндік ерекше интерфейсі болуы мүмкін емес. Сондай-ақ өнімдердің өндірістік тренажерға тасымалданған кезде кері байланысты өңдеуге қатысты өзіндік ерекше үміттері болмауы керек. Әйтпесе, сіз ешқашан DevOps-ті масштабтай алмайсыз».

10. DevOps іскери құндылығын уағыздаңыз

Стив Ньюман, Scalyr негізін қалаушы және төрағасы: «DevOps құндылығын тану үшін жұмыс жасаңыз. Жасап жатқан ісіңіздің пайдасы туралы біліңіз және еркін сөйлесіңіз. DevOps - бұл керемет уақыт пен ақшаны үнемдейтін құрал (ойланыңыз: аз тоқтап қалу, қалпына келтіруге арналған орташа уақыт) және DevOps командалары бұл бастамалардың бизнестегі табысқа жетудегі маңыздылығын талмай айтып (және уағыздауы) керек. Осылайша сіз жақтаушылар шеңберін кеңейтіп, ұйымдағы DevOps әсерін арттыра аласыз.

БОНУС

туралы Red Hat форумы Ресей Біздің жеке DevOps 13 қыркүйекте келеді - иә, Red Hat бағдарламалық жасақтама өндірушісі ретінде өзінің DevOps топтары мен тәжірибелері бар.

Ұйымның басқа топтары үшін ішкі автоматтандыру қызметтерін әзірлейтін инженер Марк Биргер өз тарихын таза орыс тілінде айтып береді - Red Hat DevOps командасы Ansible басқаратын Hat Virtualization виртуалды орталарынан қосымшаларды толыққанды контейнер пішіміне қалай көшіргені туралы. OpenShift платформасы.

Бірақ бұл бәрі де емес:

Ұйымдар жұмыс жүктемелерін контейнерлерге көшіргеннен кейін, қолданбаны бақылаудың дәстүрлі әдістері жұмыс істемеуі мүмкін. Екінші баяндамада біз журналға кіру тәсілін өзгертуге деген мотивациямызды түсіндіреміз және заманауи ағаш кесу мен бақылау әдістеріне әкелген жолдың жалғасын көрсетеміз.

Ақпарат көзі: www.habr.com

пікір қалдыру