4—6 сентябрь дар Санкт-Петербург, дар зали конфронси «Селель» серуза .

Мо барномаро дар асоси он сохтем, ки корҳои назариявӣ дар DevOps, ба монанди дастурҳои асбобҳо, метавонанд аз ҷониби ҳама мустақилона хонда шаванд. Танҳо таҷриба ва амалия ҷолиб аст: шарҳи он, ки чӣ тавр ин корро кардан ва чӣ кор кардан лозим нест ва ҳикоя дар бораи он, ки мо онро чӣ тавр мекунем.
Ҳар як ширкат, ҳар як маъмур ё таҳиякунанда дорои сатҳи худии DevOps. Баъзе одамон Git-ро нодуруст истифода мебаранд, дигарон SRE-ро амалӣ мекунанд. Курс тавре ташкил карда шудааст, ки ҳама чизи мувофиқеро пайдо кунад, ки онро дар ин ҷо ва ҳоло амалӣ кардан мумкин аст.
Мо аз Git оғоз мекунем, сипас ба таҳияи барномаҳо, ҳамкории байни код ва инфрасохтор назар мекунем, CI/CD-ро месозем, инфрасохторро ҳамчун код (IaC) тавсиф мекунем, ҳалли натиҷаро месанҷем, мониторинг насб мекунем, гузоришҳоро ҷамъоварӣ мекунем ва меомӯзем ва дар ниҳоят мо меоем. ба SRE: табдил додани эътимод ба як ҳикояи ченшаванда ва идорашаванда.
Рафтааст
Дар айни замон, ягона одамоне, ки Git-ро истифода намебаранд, онҳое мебошанд, ки дирӯз аввалин ноутбуки худро хариданд. Ин як абзори ночиз ва дар ҳама ҷо дастрас аст, аммо мо аксар вақт истифодаи нодурусти онро мебинем: аз маҷбур кардани пахш ба устод, нусхабардории файлҳо аз Git ба сервер тавассути Ctrl-C, Ctrl-V.
Мо ба шумо мегӯем, ки чӣ кор кардан лозим нест ва чӣ тавр шумо бояд ин корро кунед, чуноне ки онҳо дар Southbridge мекунанд.
Мо машқ мекунем: асосҳои Гита, кори дастаҷамъона.
Мавзӯи №1: Асосҳои Git
- Фармонҳои асосӣ git init, commit, add, diff, log, status, pull, push
- Ҷараёни Git, шохаҳо ва барчаспҳо, стратегияҳоро якҷоя кунед
- Бо якчанд репои дурдаст кор кунед
Мавзӯи №2: Кори дастаҷамъӣ бо Git
- Ҷараёни GitHub
- Шабака, дурдаст, дархост
- Низоъҳо, релизҳо, бори дигар дар бораи Gitflow ва ҷараёнҳои дигар дар робита бо гурӯҳҳо
Мавод тавре ташкил карда шудааст, ки маъмурон ва таҳиягарон ҳама таҷрибаҳоро дар кори худ фавран татбиқ кунанд.
Аз нуқтаи назари DevOps, кори дуруст бо Git равандҳои таҳия ва идоракуниро ба тартиб ва автоматӣ мекунад, як қатор мушкилоти такроршавандаро бартараф мекунад ва маҳсулнокии онро зиёд мекунад.
Таҳиягари DevOps
Мо ба DevOps бо чашми таҳиягар менигарем: мо муҳити маҳаллиро оғоз мекунем, замима менависем, мониторинг ва сабти онро танзим мекунем, онро ба таври маҳаллӣ месанҷем, нигоҳдории тағирёбандаҳо/асрорҳо ва кашфи хидматҳоро ташкил мекунем, кушодани трекинг тамошо мекунем.
Мавзӯи №3: Кор бо барнома аз нуқтаи назари рушд
- Ташкили муҳити маҳаллӣ: тавсияҳои амалӣ
- Навиштани хидмати хурд дар Python (аз ҷумла санҷишҳо)
- Истифодаи docker-compose дар таҳия
Мавзӯи №4: Ҳамкории байни код ва инфрасохтор
- Бо конфигуратсияҳо кор карданро машқ кунед
Дар натиҷа, таҳиягарон хоҳанд дид, ки код чӣ гуна бояд гузоришҳоро фиристад, чӣ гуна онро санҷидан лозим аст ва дар оянда он чӣ гуна ислоҳ карда мешавад. Маъмурон эҳтиёҷоти таҳиягаронро хоҳанд фаҳмид: дар код кадом хатогиҳо мавҷуданд, чӣ гуна санҷишро барои таҳиягарон ташкил кардан лозим аст, чӣ гуна худи лоиҳаро санҷидан лозим аст.
Дар ин марҳила, вазифаи асосии DevOps ҳал карда мешавад: ҳамдигарфаҳмӣ ва кори муштарак байни Devs ва Ops сохта мешаванд. Ин як қадами калидӣ дар гузаштан аз мубодилаи вазифаҳо ба ҳамкории масъулиятнок аст.
Дар натича суръат ва сифати кор баланд мешавад.
CI / CD
Автоматикунонии муосир CI/CD-ро дар бар мегирад. Мо аз дидани автоматикунонии дастӣ оғоз мекунем: makefiles, githooks, скриптҳо. Биёед бубинем, ки кай ин воситаҳо ҳоло ҳам мувофиқанд ва кай онҳо набояд истифода шаванд.
Пас биёед таҷрибаҳои беҳтарини CI-и муосирро бо истифода аз Gitlab ҳамчун намуна бубинем.
Мавзӯи №5: Муқаддимаи CI/CD ба автоматизатсия
- Муқаддима ба автоматика
- Асбобҳо (bash, make, gradle)
- Истифодаи git-hooks барои автоматикунонии равандҳо
- Хатҳои васлкунии завод ва татбиқи онҳо дар IT
- Намунаи сохтани трубопроводи «генералй».
- Нармафзори муосир барои CI/CD: Drone CI, BitBucket Pipelines, Travis ва ғайра.
Мавзӯи №6: CI/CD: Кор бо Gitlab
- Gitlab CI - умумӣ
- Gitlab Runner, намудҳо ва барномаҳои онҳо
- Gitlab CI, хусусиятҳои конфигуратсия, таҷрибаҳои беҳтарин
- Марҳилаҳои Gitlab CI
- Тағйирёбандаҳои Gitlab CI
- Сохта, озмоиш, ҷойгир кардан
- Назорати иҷро ва маҳдудиятҳо: танҳо, вақте ки
- Кор бо артефактҳо
- Шаблонҳо дар дохили .gitlab-ci.yml, истифодаи такрории амалҳо дар қисматҳои гуногуни қубур
- Дар бар мегирад - бахшҳо
- Идоракунии мутамаркази gitlab-ci.yml (як файл ва пахши автоматӣ ба дигар анборҳо)
Ҳамкории маъмурон ва таҳиягарон ба сатҳи нав мерасад: администратор қолаби CI-ро менависад ва таҳиягарон онро таҳрир карда, CI-и худро новобаста аз маъмур эҷод мекунанд.
Вобастагии таҳиягарон аз маъмурон кам мешавад, ҳаҷми кори дастӣ кам мешавад ва мушкили "як нафаре, ки чӣ тавр кор карданро медонад, бо файли make" аз байн меравад. Равғанҳо боэътимод ва зуд ба амал меоянд.
IaC
Мавзӯи инфрасохтор ҳамчун код, бо истифода аз Terraform ҳамчун намуна, аз ҷониби маъмури абрии Selectel Алексей Степаненко муҳокима карда мешавад. Вай ба шумо нишон медиҳад, ки чӣ гуна серверҳоро зуд ва ба таври худкор ҷойгир кардан ва миқёс кардан, чӣ гуна ба таври худкор бастабандии тасвирҳо ва чӣ гуна истифода бурдани қолабҳои конфигуратсияро барои фавран ба даст овардани мошинҳои танзимшуда нишон медиҳад.
Шахсе, ки ҳазорон қарорҳои IaC-ро таҳия кардааст, ба шумо мегӯяд, ки чӣ гуна онро дуруст иҷро кунед ва чӣ кор накунед.
Ҳалли абрии Selectel барои абрҳои Google ва Amazon бо тағироти ҳадди ақал мувофиқ аст.
Корманди Southbridge Николай Месропян, бо истифода аз Ansible, нишон медиҳад, ки чӣ гуна як барномаи корӣ бидуни бекоркунӣ ҷойгир карда шавад ва иҷрои онро тафтиш кунад.
Агар шумо инфрасохторро ба таври дастӣ таҳрир кунед (серверҳо насб кунед, китобхонаҳо ва бастаҳоро дар ҳолати зарурӣ насб кунед), вақте ки шумо кӯшиши баланд бардоштани нусхаи муҳитро мекунед, шумо бояд тамоми амалҳои худро дар хотир нигоҳ доред ва дубора тавлид кунед. Ин кор ба осонӣ 3-5 рӯзро мегирад. Кор бо инфрасохтор ҳамчун код кафолат медиҳад, ки шумо тавсифи муосири муҳити худро дошта бошед, ки онро дар тӯли дақиқаҳо ҷойгир кардан мумкин аст.
Николай ба шумо нақл мекунад, ки китобҳои бозиро чӣ гуна бояд нависед, чӣ гуна хатогиҳо рух медиҳанд ва чаро баъзан китобҳои бозӣ суст кор мекунанд ё тавре ки интизор мерафтанд. Ин таҷрибаи чандинсолаи истифодаи IaC дар Southbridge аст.
Мавзӯи №7: Инфрасохтор ҳамчун Кодекс
- IaC: Муносибат ба инфрасохтор ҳамчун Кодекс
- Провайдерҳои абрӣ ҳамчун провайдерҳои инфрасохтор
- Воситаҳои оғозкунии система, сохтани тасвир (пакер)
- IaC бо истифода аз Terraform ҳамчун намуна
- Нигоҳдории конфигуратсия, ҳамкорӣ, автоматикунонии барнома
- Таҷрибаи эҷоди китобҳои бозикунии Ansible
- Эъломиявӣ, декларативӣ
- IaC ҳамчун намуна Ansible-ро истифода мебарад
- Пойгоҳи додаҳо ҳамчун Кодекс / Таҳаммулпазирии хатогиҳои PostgreSQL
Инфрасохтор декларативӣ ва идепотентӣ мегардад.
Администратор идоракунии инфрасохтори мураккабро меомӯзад: зуд эҷод кардани муҳитҳои нав, нигоҳ доштани ягонагии ҳама муҳитҳо, дидани таърихи тағирот, ки ҳангоми кор кардани якчанд даста дар лоиҳа муҳим аст.
Таҳиягар метавонад инфрасохторро омӯзад ва муҳити худро мустақилона таҳия кунад.
Бонуси бахш: эҷод ва танзим кардани кластери нокомии пойгоҳи додаҳои PostgreSQL. Мо як китоби тайёреро пешкаш мекунем, ки мо дар Southbridge истифода мебарем, шумо кластерро дар стенди омӯзишӣ ҷойгир мекунед ва метавонед ин ҳалли худро дар ширкати худ истифода баред.
Озмоиш ва мониторинги инфрасохтор
Автоматизатсия ба шумо имкон медиҳад, ки хатогиро якбора ба ҳазор сервер паҳн кунед. Ҳар як тағирот санҷишро талаб мекунад. Аз тарафи дигар, санҷиши дастӣ он қадар вақти зиёдро мегирад, ки он манфиатҳои автоматизатсияро рад мекунад.
Мо ба шумо дар амал нишон медиҳем, ки чӣ гуна санҷиши нақшро нависед. Дар натиҷа, шумо метавонед барои ширкати худ санҷишҳо нависед. Ба шумо дигар лозим нест, ки танзимоти кардаатонро дар хотир доред; шумо онҳоро дар озмоишҳо тавсиф мекунед ва ба таври худкор месанҷед, ки ҳама ҳалли қаблӣ ва асобағолҳо ҷой доранд.
Он гоҳ мо мефаҳмем, ки чӣ тавр ба таври худкор ҳамаи серверҳои навро ба мониторинг илова кунем. Биёед ба инфрасохтор ва мониторинги барномаҳо алоҳида назар кунем. Тачрибаи бад ва хубро нишон медихем.
Мавзӯи №8: Санҷиши инфрасохтор
- Санҷиш ва ҳамгироии пайваста бо Molecule ва Gitlab CI
- Истифодаи Vagrant
Мавзӯи №9: Мониторинги инфрасохтор бо Prometheus
- Чаро мониторинг лозим аст?
- Намудҳои мониторинг
- Огоҳиҳо дар системаи мониторинг
- Чӣ тавр сохтани системаи мониторинги солим
- Огоҳиҳои аз ҷониби одамон хондашаванда, барои ҳама
- Санҷиши саломатӣ: шумо бояд ба чӣ диққат диҳед
- Автоматизатсия дар асоси маълумоти мониторинг
Мониторинге, ки дуруст кор намекунад, назорат нест. Соҳибкорон парво надоранд, ки саҳифаи асосии мағозаи онлайн дастрас бошад, агар варақаи пардохт хато диҳад.
Таҳиягарон ва маъмурон дар ташкили мониторинг ва ҳалли мушкилот баробар иштирок мекунанд. Илова бар ин, маъмулан, вазифаҳои мониторинг ба зиммаи маъмурон вогузор карда мешаванд. Курси мо ба таҳиягарон нақши онҳо дар ташкили мониторинги муассирро нишон медиҳад. Маъмурон таҷрибаи беҳтарини Southbridge мегиранд. Дар натиҷа, шумораи талафот дар натиҷаи нокомиҳо ва сустшавии вебсайт ё барнома зуд коҳиш меёбад.
Бонуси бахш: автоматизатсия дар асоси мониторинг. Масалан, мониторинг гузориш медиҳад, ки сарборӣ ба сайт расидааст ва миқёси сервери веб ба таври худкор оғоз мешавад.
Бақайдгирӣ
Хатогии асосӣ ҳангоми кор бо гузоришҳо дар он аст, ки маъмурон ва таҳиягарон ба онҳо мустақиман дар серверҳо нигоҳ мекунанд. Агар шумо зиёда аз як сервер дошта бошед, ин вақти зиёдро мегирад. Ин бехатар нест: таҳиякунанда ба сервере ворид мешавад, ки дар он ҷо набояд бошад.
DevOps ҷамъоварӣ, коркард ва таҳлили мутамаркази гузоришҳоро талаб мекунад.
Мавзӯи №10: Сабти барнома бо ELK
- Барномаҳо ва имкониятҳои асосии эластикӣ (ҷустуҷӯ, нигоҳдорӣ, хусусиятҳои миқёс, чандирии мутобиқсозӣ)
- Шарҳи кибана (хусусиятҳои асосӣ, забони дархост, идоракунии панели асбобҳо, сохтани диаграмма)
- Баррасии маҳсулоти дар асоси эластикӣ ва татбиқи онҳо
- Ҷамъоварии ченакҳо дар APM (пайгирии барнома)
- Илова бар ин: Шарҳи нави маҳсулот - SIEM
Ҷорӣ кардани ин равиш гузоришҳоро як воситаи содда ва фаҳмо барои таҳлил, танзим ва ислоҳи барнома ва инфрасохтор хоҳад кард.
SRE
Ва мо ба мавзӯъе мерасем, ки Саутбридж танҳо ба он диққат медиҳад ва дигар баромадкунандагон мехоҳанд дар рӯзи охирини Slurm бимонанд. Мо хурсандем, ки Иван Круглов аз Booking.com ба хондани он розӣ шуд.
Лоиҳа дар ҷаҳони воқеӣ зиндагӣ мекунад, ки дар он эътимоднокӣ ҳеҷ гоҳ мутлақ нест ва ҳар як қарор пулро талаб мекунад.
SLA нисбат ба лоиҳаи мураккаб чист? Биёед бигӯем, ки чӣ гуна баҳо додан мумкин аст, ки сайт дастрас аст, аммо тасвирҳо бо таъхир бор карда мешаванд. Метрикҳои SLA кадомҳоянд, онҳоро ба куҷо бурдан мумкин аст, чӣ гуна бояд гирифта шавад?
Чӣ тавр танзим кардани SLA? Чӣ тавр ба онҳо тоб овардан мумкин аст?
Мавзӯи №11: SRE
Таърифи SLA, SLO, Error Budget ва дигар истилоҳҳои даҳшатнок аз ҷаҳони SRE
SRE: Амалияи мониторинги SLI ва SLO
SRE: Амалияи истифодаи буҷети хатогиҳо
SRE: Танаффус ва идоракунии сарбории амалиётӣ (апигате, шабакаи хидматрасонӣ, сӯзандоруҳо)
Соҳибкорон SRE мехоҳанд. Ҳадди ақал дар сатҳи соддатарин: оё ман бояд сервери эҳтиётӣ гирам ё онро аз нусхабардорӣ бардоштам? Махзани ягона ё кластер? Оё шумо бояд муҳофизати DDoS-ро фаъолона насб кунед ё танҳо дар вақти ҳамла?
Вақте ки муштарӣ ба ӯ занг мезанад ва хабар медиҳад, ки варақаи фармоиш кушода намешавад, директор аз қиссаи «сайт кор мекунад» қаноатманд намешавад.
Аз ин рӯ, барои як муҳандиси DevOps муҳим аст, ки ҳадди аққал SRE-ро рӯякӣ фаҳмад, то бо тиҷорат дар бораи эҳтиёҷоти он ба таври кофӣ сӯҳбат кунад.
Натиҷа
Дар давоми маъмурон ва таҳиягарон меомӯзанд:
— бо Git дуруст кор кардан;
— ташкили ободонии махалхо;
— конфигуратсия (администраторҳо) ва истифода (таҳиягарон) CI/CD;
— кор бо инфрасохтор мисли код;
— санҷиши инфрасохтор;
— мониторинги инфрасохтор ва татбиқ;
— танзими сабти сабт;
— фахмидан ва ба таври идеалй истифода бурдани SRE.
Барои хонандагони бодиққат, рамзи таблиғотии habrapost-ро барои тахфифи 15% истифода баред.
Мо барои хамаи пунктхо амалия ва воситахо тайёр карда истодаем. Ҳамин тавр, ҳар як иштирокчӣ пас аз бозгашт аз Slurm, метавонад ширкати худро ба сатҳи навбатии DevOps барад.
Барои тиҷорат, ин маънои маъмурият ва таҳияи арзонтар, кам кардани вақти бекорӣ, баланд бардоштани эътимод, зудтар расонидани хусусиятҳо ва бартараф кардани хатогиҳоро дорад.
Манбаъ: will.com
