Жаңадан бастаушыларға арналған DevOps нұсқаулығы

DevOps маңыздылығы неде, ол IT мамандары үшін нені білдіреді, әдістердің, құрылымдардың және құралдардың сипаттамасы.

Жаңадан бастаушыларға арналған DevOps нұсқаулығы

DevOps термині IT әлеміне енгеннен бері көп нәрсе болды. Экожүйенің ашық көзі көп болғандықтан, оның неліктен басталғанын және АТ саласындағы мансап үшін нені білдіретінін қайта қарау маңызды.

DevOps дегеніміз не

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

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

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

DevOps талқылауы әзірлеушілер, өмір сүру үшін бағдарламалық жасақтаманы жазатын адамдар және осы бағдарламалық жасақтаманы қолдауға жауапты операторлар арасындағы қарым-қатынасқа бағытталған.

Әзірлеу тобына қойылатын қиындықтар

Әзірлеушілер ұйымдық мәселелерді шешу үшін жаңа тәсілдер мен технологияларды енгізуге ынталы және ынталы. Дегенмен, олар белгілі бір проблемаларға тап болады:

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

Операциялық топтың алдында тұрған қиындықтар

Операциялық топтар тарихи түрде АТ қызметтерінің тұрақтылығы мен сенімділігіне назар аударды. Сондықтан операциялық топтар ресурстарды, технологияларды немесе тәсілдерді өзгерту арқылы тұрақтылыққа ұмтылады. Олардың міндеттеріне мыналар жатады:

  • Сұраныс өскен сайын ресурстарды бөлуді басқарыңыз.
  • Өндіріс ортасында пайдалану үшін қажетті дизайн немесе теңшеу өзгерістерін өңдеңіз.
  • Қолданбаларды өздігінен орналастырудан кейін өндірістік мәселелерді диагностикалау және шешу.

DevOps әзірлеу және операциялық мәселелерді қалай шешеді

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

  • Жаңа шығарылымдарды шығарған кезде сәтсіздік деңгейін төмендетіңіз
  • Орналастыру жиілігін арттырыңыз
  • Қолданбаның жаңа шығарылымы жағдайында қалпына келтірудің орташа уақытын жылдамырақ жеткізіңіз.
  • Түзету уақытын қысқартыңыз

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

DevOps бұрынғы әдістемелерден туындаған әртүрлі мәселелерді шешуге тырысады, соның ішінде:

  • Әзірлеу және операциялық топтар арасындағы жұмысты оқшаулау
  • Тестілеу және орналастыру - жобалау мен құрастырудан кейін болатын бөлек фазалар және құрастыру циклдарына қарағанда көбірек уақытты қажет етеді.
  • Негізгі бизнес қызметтерін құруға назар аударудың орнына тестілеуге, орналастыруға және жобалауға артық уақыт жұмсалды
  • Өндірістегі қателерге әкелетін кодты қолмен орналастыру
  • Қосымша кідірістерді тудыратын әзірлеу және жұмыс тобының кестелеріндегі айырмашылықтар

Жаңадан бастаушыларға арналған DevOps нұсқаулығы

DevOps, Agile және дәстүрлі IT арасындағы қарама-қайшылық

DevOps басқа АТ тәжірибелеріне, әсіресе Agile және Waterfall IT-ға қатысты жиі талқыланады.

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

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

Дәстүрлі процестер
DevOps ішіндегі процестер

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

Тоқтату, резервтеу, деректер орталығының орындары және сақтау талаптары туралы ақпарат бұрмаланған, себебі домен туралы терең білімі бар әзірлеу тобының кірісі жоқ.
Өңдеу, резервтеу, апатты қалпына келтіру, деректер орталығының орындары және сақтау талаптары туралы мәліметтер әзірлеу тобының енгізуіне байланысты белгілі және дұрыс.

Операциялық топ әзірлеу тобының ілгерілеуі туралы білмейді. Сондай-ақ ол өз идеялары негізінде мониторинг жоспарын жасайды.

Операциялық топ әзірлеу тобының қол жеткізген жетістіктерінен толық хабардар. Ол сонымен қатар әзірлеушілер тобымен өзара әрекеттеседі және олар АТ және бизнес қажеттіліктеріне сәйкес келетін мониторинг жоспарын әзірлеу үшін бірге жұмыс істейді. Олар сонымен қатар қолданба өнімділігін бақылау (APM) құралдарын пайдаланады.

Қолданбаны іске қоспас бұрын орындалған жүктеме сынағы қолданбаны іске қосуды кешіктіріп, істен шығуына әкеледі.
Қолданбаны іске қоспас бұрын орындалған жүктеме сынағы нашар өнімділікке әкеледі. Әзірлеу тобы қиындықтарды тез шешеді және қолданба уақытында іске қосылады.

DevOps өмірлік циклі

DevOps белгілі бір жалпы қабылданған тәжірибелерді қабылдауды қамтиды.

Үздіксіз жоспарлау

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

Бірлескен даму

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

Үздіксіз тестілеу

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

Үздіксіз шығару және орналастыру

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

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

Үздіксіз мониторинг

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

Тұрақты кері байланыс және оңтайландыру

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

Жаңадан бастаушыларға арналған DevOps нұсқаулығы

DevOps артықшылықтары

DevOps ортақ мақсаттарға жету үшін әзірлеушілер мен операциялар топ болып жұмыс істейтін ортаны құруға көмектесе алады. Бұл үдерістегі маңызды кезең үздіксіз интеграцияны және үздіксіз жеткізуді (CI/CD) жүзеге асыру болып табылады. Бұл әдістер командаларға бағдарламалық жасақтаманы аз қателермен тезірек нарыққа шығаруға мүмкіндік береді.

DevOps-тың маңызды артықшылықтары:

  • Болжамдық: DevOps жаңа шығарылымдар үшін айтарлықтай төмен сәтсіздік деңгейін ұсынады.
  • Техникалық қызмет көрсету: DevOps жаңа шығарылым сәтсіз болғанда немесе қолданба істен шыққан жағдайда оңай қалпына келтіруге мүмкіндік береді.
  • Қайта шығару мүмкіндігі: Құрылымның немесе кодтың нұсқасын басқару қажет болған жағдайда бұрынғы нұсқаларды қалпына келтіруге мүмкіндік береді.
  • Жоғары сапа: Инфрақұрылым мәселелерін шешу қолданбаларды әзірлеу сапасын жақсартады.
  • Нарыққа шығу уақыты: бағдарламалық қамтамасыз етуді жеткізуді оңтайландыру нарыққа шығу уақытын 50%-ға қысқартады.
  • Тәуекелді азайту: бағдарламалық жасақтаманың өмірлік циклінде қауіпсіздікті енгізу бүкіл өмірлік циклдегі ақаулар санын азайтады.
  • Шығындардың тиімділігі: бағдарламалық қамтамасыз етуді әзірлеуде шығындардың тиімділігіне ұмтылу жоғары басшылықты қызықтырады.
  • Тұрақтылық: бағдарламалық қамтамасыз ету жүйесі тұрақтырақ, қауіпсіз және өзгерістерді тексеруге болады.
  • Үлкенірек код базасын басқарылатын бөліктерге бөлу: DevOps үлкен кодтық базаны кішірек, басқарылатын бөліктерге бөлуге мүмкіндік беретін икемді әзірлеу әдістеріне негізделген.

DevOps принциптері

DevOps-тің қабылдануы дамыған (және дамып келе жатқан) бірнеше принциптерді тудырды. Шешім жеткізушілерінің көпшілігі әртүрлі әдістердің өз модификацияларын әзірледі. Бұл принциптердің барлығы DevOps-ке тұтас көзқарасқа негізделген және кез келген көлемдегі ұйымдар оларды пайдалана алады.

Өндіріске ұқсас ортада әзірлеу және сынақтан өткізу

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

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

Қайталанатын, сенімді процестермен орналастырыңыз

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

Жұмыстың сапасын бақылау және тексеру

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

Кері байланыс циклдерін жақсарту

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

Dev

  • Жоспарлау: Kanboard, Wekan және басқа Trello баламалары; GitLab, Tuleap, Redmine және басқа JIRA баламалары; Mattermost, Roit.im, IRC және басқа Slack баламалары.
  • Жазу коды: Гит, Геррит, Бугзилла; Дженкинс және CI/CD үшін басқа да ашық бастапқы құралдар
  • Құрастыру: Apache Maven, Gradle, Apache Ant, Packer
  • Тесттер: JUnit, қияр, селен, Apache JMeter

Ops

  • Шығару, орналастыру, операциялар: Kubernetes, Nomad, Jenkins, Zuul, Spinnaker, Ansible, Apache ZooKeeper және т.б., Netflix Archaius, Terraform
  • Бақылау: Осы нұсқаулықта қарастырылған Grafana, Prometheus, Nagios, InfluxDB, Fluentd және т.б.

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

Қорытындылай келе

DevOps - әзірлеушілер мен операцияларды бір бірлік ретінде біріктіруге бағытталған танымал әдістеме. Ол бірегей, дәстүрлі АТ операцияларынан ерекшеленеді және Agile-ді толықтырады (бірақ соншалықты икемді емес).

Жаңадан бастаушыларға арналған DevOps нұсқаулығы

SkillFactory-ден ақылы онлайн курстарды өту арқылы нөлден бастап сұранысқа ие мамандықты алу немесе дағдылар мен жалақы бойынша Level Up туралы мәліметтерді біліңіз:

көбірек курстар

Пайдалы

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

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