Dummies Guide: Ачык булак куралдары менен DevOps чынжырларын куруу

Dummies Guide: Ачык булак куралдары менен DevOps чынжырларын куруу
Жаңы баштагандар үчүн беш кадам менен биринчи DevOps чынжырыңызды түзүү.

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

Менин DevOps менен таанышуу

Мен бир жолу Citi Groupто булутта иштегем жана Citiнин булут инфраструктурасын башкаруу үчүн IaaS веб тиркемесин иштеп чыккам, бирок мени кантип өнүктүрүү чынжырын тартипке келтирип, иштеп чыгуучулардын маданиятын жакшырта аларыбыз кызыктырчу. Грег Лавендер, биздин булут архитектурасы жана инфраструктурасы боюнча CTO, мага китепти сунуштады "Феникс" долбоору. Бул DevOps принциптерин эң сонун түшүндүрөт жана роман сыяктуу окуйт.

Таблицада компаниялар жаңы версияларды канчалык көп чыгараарын көрсөтөт:

Dummies Guide: Ачык булак куралдары менен DevOps чынжырларын куруу

Кантип Amazon, Google жана Netflix мынчалык көптү чыгара алышат? Бул жөнөкөй: алар дээрлик кемчиликсиз DevOps чынжырын кантип түзүүнү түшүнүштү.

Биз DevOps'ка өткөнгө чейин Citiде андай болгон эмес. Ал кезде менин командамда ар кандай чөйрөлөр болгон, бирок биз иштеп чыгуу серверине кол менен жеткирчүбүз. Бардык иштеп чыгуучулар IBM WebSphere Application Server Community Edition негизинде бир гана иштеп чыгуу серверине кирүү мүмкүнчүлүгүнө ээ болушкан. Ошол эле учурда жеткирүүгө аракет кылганыбызда сервер бузулуп калып, ар бир жолу бири-бирибиз менен “оорутуп” сүйлөшүүгө туура келди. Ошондой эле бизде коддун тесттик камтуусу жетишсиз болгон, эмгекти көп талап кылган кол менен жеткирүү процесси жана кандайдыр бир тапшырма же кардар талабы боюнча жардам менен коддун жеткирилишине көз салууга эч кандай мүмкүнчүлүк жок болчу.

Тез арада бир нерсе кылуу керек экени түшүнүктүү болуп, мен пикирлеш кесиптеш таптым. Биз биринчи DevOps чынжырын чогуу түзүүнү чечтик - ал виртуалдык машинаны жана Tomcat тиркеме серверин орнотту, мен Дженкинске, Atlassian Jira жана BitBucket менен интеграцияга, ошондой эле тесттер менен код камтууга кам көрдүм. Долбоор ийгиликтүү болду: биз иштеп чыгуу чынжырын толугу менен автоматташтырдык, иштеп чыгуу серверинде дээрлик 100% иштөө убактысына жетиштик, тесттик коддун камтылышына көз салып, жакшырта алдык жана Гит филиалын Jira жеткирүү жана чыгаруу менен байланыштыра алдык. Жана биз DevOps чынжырын куруу үчүн колдонгон дээрлик бардык куралдар ачык булак болгон.

Чынында, чынжыр жөнөкөйлөштүрүлгөн, анткени биз Jenkins же Ansible аркылуу өркүндөтүлгөн конфигурацияларды да колдонгон эмеспиз. Бирок биз ийгиликке жетиштик. Балким бул принциптин натыйжасыдыр Парето (80/20 эрежеси).

DevOps жана CI/CD чынжырынын кыскача сүрөттөлүшү

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

DevOps чөйрөсүн түзүү үчүн куралдардын өзү эле жетиштүү болбосо да, аларсыз кыла албайсыз. Алардын эң негизгиси үзгүлтүксүз интеграция жана үзгүлтүксүз жеткирүү (CI/CD). Ар бир чөйрө үчүн чынжырда ар кандай этаптар бар (мисалы, DEV (иштеп чыгуу), INT (интеграция), TST (сыноо), QA (сапатты контролдоо), UAT (колдонуучуну кабыл алуу тести), STG (даярдоо), PROD (колдонуу )), кол тапшырмалары автоматташтырылган, иштеп чыгуучулар сапаттуу кодду чыгара алышат, аны жеткире алышат жана оңой калыбына келтире алышат.

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

Dummies Guide: Ачык булак куралдары менен DevOps чынжырларын куруу

Келгиле, бизнеске киришели.

1-кадам: CI/CD платформасы

Биринчиден, сизге CI/CD куралы керек. Дженкинс - бул MIT лицензиясы менен Java тилинде жазылган ачык CI/CD инструменти, DevOps кыймылынын жайылышын баштаган жана CICD үчүн де-факто стандарты болуп калды.

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

Дженкинстен башка көптөгөн ачык булак куралдары бар, каалаганын тандаңыз.

Dummies Guide: Ачык булак куралдары менен DevOps чынжырларын куруу

DevOps процесси CI/CD куралы менен ушундай көрүнөт

Dummies Guide: Ачык булак куралдары менен DevOps чынжырларын куруу

Сизде localhost'та CI/CD куралы бар, бирок азырынча кыла турган көп нерсе жок. Келгиле, кийинки кадамга өтөбүз.

2-кадам: Версияны көзөмөлдөө

CI/CD куралынын сыйкырын сынап көрүүнүн эң жакшы (жана эң оңой) жолу бул булакты башкаруунун (SCM) куралы менен бириктирүү. Эмне үчүн сизге версияны көзөмөлдөө керек? Сиз арыз берип жатасыз дейли. Сиз аны Java, Python, C++, Go, Ruby, JavaScript же башка ар кандай тилде жазасыз, анын ичинде арабасы жана кичинекей арабасы бар. Сиз жазган нерсе баштапкы код деп аталат. Башында, өзгөчө, эгер сиз жалгыз иштеп жатсаңыз, бардыгын жергиликтүү каталогго сактап коюңуз. Бирок долбоор өсүп, көбүрөөк адамдар кошулган сайын, коддун өзгөрүүлөрүн бөлүшүү жолу керек, бирок конфликттерди бириктирбөө керек. Сиз ошондой эле кандайдыр бир жол менен мурунку версияларды камдык көчүрмөлөрдү колдонбостон жана код файлдары үчүн көчүрүп коюу ыкмасын колдонбостон калыбына келтиришиңиз керек.

Бул жерде сиз SCMсиз бара албайсыз. SCM кодду репозиторийлерде сактайт, анын версияларын башкарат жана аны иштеп чыгуучулар арасында координациялайт.

Көптөгөн SCM инструменттери бар, бирок Git де-факто стандарты болуп калды. Мен муну колдонууну сунуштайм, бирок башка варианттар бар.

Dummies Guide: Ачык булак куралдары менен DevOps чынжырларын куруу

SCMди кошкондон кийин DevOps конвейери ушундай көрүнөт.

Dummies Guide: Ачык булак куралдары менен DevOps чынжырларын куруу

CI/CD куралы булак кодун жүктөө жана жүктөө жана командалык кызматташууну автоматташтыра алат. Жаман эмес? Бирок кантип биз муну миллиарддаган колдонуучулар сүйгөн жумушчу колдонмого айланта алабыз?

3-кадам: Автоматташтыруу куралын түзүү

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

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

Dummies Guide: Ачык булак куралдары менен DevOps чынжырларын куруу

Мыкты! Эми CI/CD куралы аларды түзүшү үчүн версияны башкаруу тутумуна курууну автоматташтыруу куралынын конфигурация файлдарын киргизели.

Dummies Guide: Ачык булак куралдары менен DevOps чынжырларын куруу

Бул жакшы сезилет. Бирок мунун баарын азыр кайда чыгарышыбыз керек?

4-кадам: Web Application Server

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

Веб тиркемени веб тиркеме серверинде жайгаштырса болот. Тиркеме сервери пакеттен программа логикасын ишке ашыра ала турган чөйрөнү камсыз кылат, интерфейсти көрсөтүп, розетка аркылуу веб-кызматтарды көрсөтө аласыз. Тиркеме серверин орнотуу үчүн сизге HTTP сервери жана бир нече башка чөйрөлөр (мисалы, виртуалдык машина) керек. Азырынча, келгиле, сиз муну бара жатканыңызда түшүнүп алдыңыз деп коёлу (бирок мен төмөндө контейнерлер жөнүндө сөз кылам).

Бир нече ачык веб-тиркеме серверлери бар.

Dummies Guide: Ачык булак куралдары менен DevOps чынжырларын куруу

Бизде дээрлик иштеп жаткан DevOps чынжырыбыз бар. Мыкты иш!

Dummies Guide: Ачык булак куралдары менен DevOps чынжырларын куруу

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

5-кадам: Сыноо камтуу

Тестирлөө көп убакытты жана күчтү талап кылат, бирок акыркы колдонуучуларга жагуу үчүн каталарды дароо таап, кодду өркүндөткөн жакшы. Бул максатта, кодду сынап тим болбостон, аны кантип жакшыртуу боюнча кеңеш берүүчү көптөгөн ачык инструменттер бар. Көпчүлүк CI/CD куралдары бул инструменттерге туташып, процессти автоматташтыра алат.

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

Сыноо алкактары

Dummies Guide: Ачык булак куралдары менен DevOps чынжырларын куруу

Сапаттуу кеңештери бар куралдар

Dummies Guide: Ачык булак куралдары менен DevOps чынжырларын куруу

Бул куралдардын жана алкактардын көбү Java, Python жана JavaScript үчүн жазылган, анткени C++ жана C# менчик болуп саналат (бирок GCC ачык булак).

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

Кошумча кадамдар

Контейнерлер

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

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

Контейнерлер үчүн адатта Docker жана Kubernetes колдонулат, бирок башка варианттар бар.

Dummies Guide: Ачык булак куралдары менен DevOps чынжырларын куруу

Docker жана Kubernetes жөнүндө макалаларды окуңуз opensource.com:

Орто программаны автоматташтыруу куралдары

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

Бул жерде кээ бир ачык булак орто программалык автоматташтыруу куралынын параметрлери:

Dummies Guide: Ачык булак куралдары менен DevOps чынжырларын куруу

Толук маалымат макалаларда opensource.com:

Эми эмне?

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

Бул жерде үйрөнчүктөр үчүн DevOps жөнүндө дагы бир нече жакшы макалалар бар:

Ошондой эле DevOps'ту agile үчүн ачык куралдар менен бириктире аласыз:

Source: www.habr.com

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