Жаңы баштагандар үчүн DevOps колдонмосу

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

Жаңы баштагандар үчүн DevOps колдонмосу

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

DevOps деген эмне

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

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

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

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

Өнүктүрүү командасы үчүн кыйынчылыктар

Иштеп чыгуучулар уюштуруучулук көйгөйлөрдү чечүү үчүн жаңы ыкмаларды жана технологияларды ишке ашырууга дилгир жана ынтызар болушат. Бирок, алар да белгилүү бир көйгөйлөргө дуушар болушат:

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

Операциялык команда туш болгон кыйынчылыктар

Операциялык топтор тарыхта IT кызматтарынын туруктуулугуна жана ишенимдүүлүгүнө көңүл бурушкан. Ошондуктан операциялык топтор ресурстарды, технологияларды же ыкмаларды өзгөртүү аркылуу туруктуулукту издешет. Алардын милдеттери төмөнкүлөрдү камтыйт:

  • Суроо-талап көбөйгөн сайын ресурстарды бөлүштүрүүнү башкарыңыз.
  • Өндүрүштүк чөйрөдө колдонуу үчүн талап кылынган дизайнды же ыңгайлаштыруу өзгөртүүлөрдү колго алыңыз.
  • Тиркемелерди өз алдынча жайгаштыруудан кийин өндүрүш маселелерин диагностикалоо жана чечүү.

DevOps кантип иштеп чыгуу жана операция маселелерин чечет

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

  • Жаңы релиздерди чыгарууда каталардын санын азайтыңыз
  • Жайгаштыруу жыштыгын жогорулатуу
  • Жаңы тиркеменин релизинде калыбына келтирүү үчүн тезирээк орточо убакытка жетиңиз.
  • Түзөтүүлөр үчүн убакытты кыскартыңыз

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

DevOps мурунку методологиялардан келип чыккан ар кандай көйгөйлөрдү чечүүгө аракет кылат, анын ичинде:

  • Иштеп чыгуу жана операциялык топтордун ортосундагы ишти обочолонтуу
  • Сыноо жана жайылтуу долбоорлоодон жана куруудан кийин пайда болгон өзүнчө фазалар жана куруу циклдарына караганда көбүрөөк убакытты талап кылат.
  • Негизги бизнес кызматтарын курууга басым жасоонун ордуна тестирлөөгө, жайылтууга жана долбоорлоого ашыкча убакыт сарпталат
  • Кол менен кодду жайылтуу өндүрүштөгү каталарга алып келет
  • Иштеп чыгуу жана операциялык топтордун графиктериндеги айырмачылыктар кошумча кечигүүлөрдү жаратат

Жаңы баштагандар үчүн DevOps колдонмосу

DevOps, Agile жана салттуу IT ортосундагы тирешүү

DevOps көбүнчө башка IT тажрыйбаларына, айрыкча Agile жана Waterfall IT сына карата талкууланат.

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

Салттуу шаркыратма моделин DevOps менен салыштыруу DevOps алып келген пайдаларды түшүнүүнүн жакшы жолу. Төмөнкү мисалда тиркеме төрт жумадан кийин иштей баштайт, иштеп чыгуу 85% аяктады, тиркеме жандуу болот жана кодду жөнөтүү үчүн серверлерди сатып алуу процесси жаңы эле башталды деп болжолдойт.

Салттуу процесстер
DevOps ичиндеги процесстер

Жаңы серверлерге заказ бергенден кийин, иштеп чыгуучу топ тестирлөөнүн үстүндө иштейт. Ыкчам топ инфраструктураны жайылтуу үчүн ишканалар талап кылган кеңири документтердин үстүндө иштейт.
Жаңы серверлерге буйрутма берилгенден кийин, иштеп чыгуу жана операциялык топтор жаңы серверлерди орнотуу үчүн процесстер жана иш кагаздары боюнча чогуу иштешет. Бул сиздин инфраструктураңыздын талаптарын жакшыраак түшүнүүгө мүмкүндүк берет.

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

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

Операциялык топ иштеп чыгуу тобу жетишкен ийгиликтерди толук билет. Ал ошондой эле иштеп чыгуу тобу менен иштешет жана алар IT жана бизнес муктаждыктарына жооп берген мониторинг планын иштеп чыгуу үчүн бирге иштешет. Алар ошондой эле колдонмонун натыйжалуулугун көзөмөлдөө (APM) куралдарын колдонушат.

Тиркеме ишке киргенге чейин жүктөлгөн тестирлөө колдонмонун иштебей калышына алып келет жана аны ишке киргизүү кечеңдетет.
Тиркемени иштетүүдөн мурун аткарылган жүк сынагы начар иштешине алып келет. Өнүктүрүү тобу тоскоолдуктарды тез чечет жана колдонмо өз убагында ишке кирет.

DevOps Lifecycle

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 альтернативалары.
  • Жазуу коду: Гит, Геррит, Бугзилла; Jenkins жана CI/CD үчүн башка ачык булак куралдары
  • Ассамблея: Apache Maven, Gradle, Apache Ant, Packer
  • тесттер: JUnit, Бадыраң, Селен, Apache JMeter

Лого

  • Чыгаруу, жайылтуу, операциялар: Kubernetes, Nomad, Jenkins, Zuul, Spinnaker, Ansible, Apache ZooKeeper, ж.б., Netflix Archaius, Terraform
  • Мониторинг: Grafana, Prometheus, Nagios, InfluxDB, Fluentd жана башкалар бул колдонмодо камтылган

(*Операциялар куралдары операциялык топтордун колдонуу тартибине жараша номерленген, бирок алардын куралдары чыгаруу жана жайылтуу куралдарынын жашоо циклинин этаптары менен дал келет. Окууга ыңгайлуу болушу үчүн номерлөө алынып салынды.)

Жыйынтык

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

Жаңы баштагандар үчүн DevOps колдонмосу

SkillFactory'ден акы төлөнүүчү онлайн курстарынан өтүү менен, нөлдөн баштап же шык-жөндөмдүүлүк жана айлык акы боюнча Level Up кантип талап кылынган кесипке ээ болуу боюнча чоо-жайын билип алыңыз:

көбүрөөк курстар

пайдалуу

Source: www.habr.com

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