Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Муносибат IaC (Инфраструктура ҳамчун Кодекс) на танҳо аз коде, ки дар анбор нигоҳ дошта мешавад, балки аз одамон ва равандҳое иборат аст, ки ин кодро иҳота мекунанд. Оё имкон дорад, ки равишҳоро аз таҳияи нармафзор то идоракунӣ ва тавсифи инфрасохтор дубора истифода кард? Хуб мебуд, ки ҳангоми хондани мақола ин ақидаро дар хотир нигоҳ доред.

нусхаи англисӣ

Ин стенограммаи ман аст спектакльхо ба DevopsConf 2019-05-28.

Слайдҳо ва видеоҳо

Инфрасохтор ҳамчун таърихи баш

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Фарз мекунем, ки шумо ба лоиҳаи нав омадед ва онҳо ба шумо мегӯянд: «Мо дорем Инфраструктура ҳамчун кодекс". Дар хакикат маълум мешавад Инфрасохтор ҳамчун таърихи баш ё масалан Ҳуҷҷатҳо ҳамчун таърихи bash. Ин вазъияти хеле реалй аст, масалан, чунин ходисаро Денис Лысенко дар баромади худ баён карда буд Чӣ тавр иваз кардани тамоми инфрасохтор ва оромона хоб карданро оғоз кардан мумкин аст, ӯ нақл кард, ки чӣ гуна онҳо аз таърихи bash инфрасохтори ҳамоҳанг барои лоиҳа ба даст овардаанд.

Бо баъзе хохиш мо гуфта метавонем Инфрасохтор ҳамчун таърихи баш ин мисли код аст:

  1. такроршавандагӣ: Шумо метавонед таърихи bash-ро гиред, фармонҳоро аз он ҷо иҷро кунед ва дар омади гап, шумо метавонед конфигуратсияи кориро ҳамчун натиҷа ба даст оред.
  2. нусхабардорӣ: шумо медонед, ки кӣ ворид шуд ва онҳо чӣ кор карданд, боз ҳам ин далел нест, ки ин шуморо ба конфигуратсияи корӣ дар баромад оварда мерасонад.
  3. таърих: достони кӣ чӣ кор кардааст. танҳо шумо наметавонед онро истифода баред, агар шумо серверро гум кунед.

Чӣ бояд кард?

Инфраструктура ҳамчун кодекс

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Хатто чунин ходисаи ачибе монанди Инфрасохтор ҳамчун таърихи баш шумо метавонед онро аз гӯшҳо кашед Инфраструктура ҳамчун кодекс, аммо вақте ки мо мехоҳем, ки нисбат ба сервери хуби кӯҳнаи LAMP чизи мураккабтаре анҷом диҳем, мо ба хулосае меоем, ки ин код бояд ба навъе тағир дода шавад, тағир дода шавад, такмил дода шавад. Минбаъд мо мехоҳем параллелҳои байни Инфраструктура ҳамчун кодекс ва таҳияи нармафзор.

D.R.Y.

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Дар лоиҳаи таҳияи системаи нигаҳдорӣ зервазифа вуҷуд дошт SDS-ро мунтазам танзим кунед: мо версияи навро мебарорем - он бояд барои санҷиши минбаъда паҳн карда шавад. Вазифа хеле содда аст:

  • тавассути ssh дар ин ҷо ворид шавед ва фармонро иҷро кунед.
  • файлро дар он ҷо нусхабардорӣ кунед.
  • конфигуратсияро дар ин ҷо ислоҳ кунед.
  • дар он ҷо хидматро оғоз кунед
  • ...
  • ФАҚАТ!

Барои мантиқи тавсифшуда, bash беш аз кофист, махсусан дар марҳилаҳои аввали лоиҳа, вақте ки он нав оғоз мешавад. Ин бад нест, ки шумо bash-ро истифода мебаред, аммо бо мурури замон дархостҳо барои ҷойгиркунии чизи шабеҳ, вале каме фарқ мекунанд. Аввалин чизе, ки ба хотир меояд, нусхабардорӣ-часбондан аст. Ва ҳоло мо аллакай ду скрипти ба ҳам монанд дорем, ки тақрибан як чизро иҷро мекунанд. Бо гузашти вақт, шумораи скриптҳо афзоиш ёфт ва мо бо он дучор шудем, ки мантиқи муайяни тиҷорӣ барои ҷойгиркунии насб мавҷуд аст, ки бояд байни скриптҳои гуногун ҳамоҳанг карда шаванд, ин хеле мураккаб аст.

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Маълум мешавад, ки чунин амалия ба монанди Д.Р. (Худро такрор накунед). Идеяи истифодаи дубораи коди мавҷуда аст. Ин оддӣ ба назар мерасад, аммо мо дарҳол ба ин наомадаем. Дар ҳолати мо, ин як идеяи ғайриоддӣ буд: ҷудо кардани конфигуратсияҳо аз скриптҳо. Онхое. мантиқи тиҷорӣ дар бораи он ки чӣ тавр насб алоҳида ҷойгир карда мешавад, конфигуратсияҳо алоҳида.

S.O.L.ID. барои CFM

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Бо мурури замон лоиҳа афзоиш ёфт ва идомаи табиӣ пайдоиши Ansible буд. Сабаби асосии пайдоиши он дар он аст, ки дар даста таҷриба мавҷуд аст ва баш барои мантиқи мураккаб тарҳрезӣ нашудааст. Ansible низ мантиқи мураккабро дар бар мегирад. Барои пешгирӣ кардани мантиқи мураккаб ба бесарусомонӣ, принсипҳои ташкили код дар таҳияи нармафзор вуҷуд доранд S.O.L.ID. Инчунин, масалан, Григорий Петров дар гузориши "Чаро ба мутахассиси IT бренди шахсӣ лозим аст" саволеро ба миён гузошт, ки шахс тавре тарҳрезӣ шудааст, ки кор кардан бо баъзе субъектҳои иҷтимоӣ барои ӯ осонтар аст, дар таҳияи нармафзор объектҳо мебошанд. Агар мо ин ду идеяро муттаҳид кунем ва инкишоф додани онҳоро идома диҳем, мо мебинем, ки мо низ метавонем истифода барем S.O.L.ID. ки дар оянда нигох доштан ва тагйир додани ин мантикро осон кунад.

Принсипи масъулиятшиносии ягона

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Ҳар як синф танҳо як вазифаро иҷро мекунад.

Ба омехта кардани код ва сохтани ҳаюлоҳои спагеттии монолитӣ лозим нест. Инфраструктура бояд аз хишти оддй иборат бошад. Маълум мешавад, ки агар шумо китоби бозии Ansible-ро ба қисмҳои хурд тақсим кунед, нақшҳои Ansible-ро хонед, нигоҳ доштани онҳо осонтар аст.

Принсипи кушодаи пӯшида

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Принсипи кушода / пӯшида.

  • Ба васеъшавӣ кушода: маънои онро дорад, ки рафтори объект метавонад тавассути эҷоди намудҳои нави объект васеъ карда шавад.
  • Барои тағирот пӯшида аст: Дар натиҷаи васеъ кардани рафтори субъект, набояд ба коде, ки ин объектҳоро истифода мебарад, тағирот ворид карда шавад.

Дар аввал, мо инфрасохтори санҷиширо дар мошинҳои виртуалӣ ҷойгир кардем, аммо аз сабаби он, ки мантиқи тиҷории ҷобаҷогузорӣ аз татбиқ ҷудо буд, мо ба baremetall бе мушкилот илова кардем.

Принсипи ивазкунии Лисков

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Принсипи ивазкунии Барбара Лисков. объектҳо дар барнома бояд бо мисолҳои зернамудҳои онҳо иваз карда шаванд, бе тағир додани иҷрои дурусти барнома

Агар шумо ба он васеътар назар кунед, он хусусияти ягон лоиҳаи мушаххас нест, ки дар он ҷо татбиқ карда мешавад S.O.L.ID., он умуман дар бораи CFM меравад, масалан, дар як лоиҳаи дигар бояд як барномаи қуттии Java дар болои Java, серверҳои барномаҳо, пойгоҳи додаҳо, OS ва ғайра ҷойгир карда шавад. Бо истифода аз ин мисол, ман принсипҳои минбаъдаро баррасӣ мекунам S.O.L.ID.

Дар ҳолати мо, дар дохили дастаи инфрасохтор созиш мавҷуд аст, ки агар мо нақши imbjava ё oraclejava-ро насб карда бошем, пас мо иҷрошавандаи дуии java дорем. Ин зарур аст, зеро Нақшҳои болоӣ аз ин рафтор вобастаанд; онҳо java-ро интизоранд. Дар айни замон, ин ба мо имкон медиҳад, ки як амалисозӣ/версияи java-ро бо дигараш бе тағир додани мантиқи густариши барнома иваз кунем.

Мушкилот дар ин ҷо дар он аст, ки онро дар Ansible амалӣ кардан ғайриимкон аст, ки дар натиҷа дар дохили даста баъзе созишномаҳо пайдо мешаванд.

Принсипи сегрегатсияи интерфейс

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Принсипи ҷудокунии интерфейс: "Бисёр интерфейсҳои мушаххаси муштарӣ аз як интерфейси таъиноти умумӣ беҳтаранд.

Дар аввал, мо кӯшиш кардем, ки тамоми тағирёбии ҷойгиркунии барномаҳоро дар як китоби Ansible ҷойгир кунем, аммо дастгирӣ кардан душвор буд ва равиш вақте ки мо интерфейси берунаро муайян кардаем (муштарӣ порти 443-ро интизор аст), пас инфрасохторро метавон аз инфиродӣ ҷамъ кард. хишт барои татбиқи мушаххас.

Принсипи инверсияи вобастагӣ

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Принсипи инверсияи вобастагӣ. Модулҳои сатҳҳои боло набояд аз модулҳои сатҳҳои поёнӣ вобаста бошанд. Ҳарду намуди модулҳо бояд аз абстраксияҳо вобаста бошанд. Абстраксияҳо набояд аз тафсилот вобаста бошанд. Тафсилот бояд аз абстраксияҳо вобаста бошад.

Дар ин ҷо мисол ба антипаттерн асос меёбад.

  1. Яке аз муштариён абри хусусӣ дошт.
  2. Мо мошинҳои виртуалиро дар дохили абр фармоиш додем.
  3. Аммо аз сабаби хусусияти абр, ҷойгиркунии барнома ба гипервизоре, ки VM фаъол аст, вобаста буд.

Онхое. Мантиқи густариши барномаҳои сатҳи баланд бо вобастагӣ ба сатҳҳои поёнии гипервизор ҷорӣ мешуд ва ин маънои мушкилотро ҳангоми истифодаи дубораи ин мантиқ дошт. Ин тавр накунед.

Муносибат

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Инфрасохтор ҳамчун код на танҳо дар бораи код, балки инчунин дар бораи муносибати байни код ва одамон, дар бораи ҳамкории байни таҳиягарони инфрасохтор аст.

Омили автобус

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Фарз мекунем, ки шумо дар лоиҳаи худ Вася доред. Вася ҳама чизро дар бораи инфрасохтори шумо медонад, агар Вася ногаҳон нопадид шавад, чӣ мешавад? Ин вазъияти хеле воқеӣ аст, зеро ӯро автобус пахш карда метавонад. Баъзан чунин мешавад. Агар ин рӯй диҳад ва дониш дар бораи код, сохтори он, тарзи кор, намуди зоҳирӣ ва паролҳо дар байни даста тақсим карда нашавад, пас шумо метавонед ба як қатор ҳолатҳои ногувор дучор шавед. Барои кам кардани ин хатарҳо ва паҳн кардани дониш дар дохили гурӯҳ, шумо метавонед равишҳои гуногунро истифода баред

Ҷуфти Девопсинг

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Чунин нест ҳамчун шӯхӣ, ки маъмурон пиво менӯшиданд, паролҳоро иваз карданд ва аналоги барномасозии ҷуфт. Онхое. ду муҳандис дар як компютер, як клавиатура нишаста, якҷоя сохтани инфрасохтори шуморо оғоз мекунанд: насб кардани сервер, навиштани нақши Ansible ва ғайра. Ин хуб садо медиҳад, аммо ин барои мо кор накард. Аммо ҳолатҳои махсуси ин амалия кор карданд. Корманди нав меояд, мураббиаш якчоя бо у вазифаи реалиро ба ухда мегирад, кор мекунад, дониш мегузаронад.

Ҳолати дигари махсус занги ҳодиса аст. Ҳангоми мушкилот як гурӯҳ аз навбатдорон ва шахсони ҷалбшуда ҷамъ мешаванд, як роҳбар таъин карда мешавад, ки экрани худро мубодила мекунад ва қатори фикрро садо медиҳад. Дигар иштирокчиён фикрҳои пешворо пайгирӣ мекунанд, ҳилаҳоро аз консол ҷосусӣ мекунанд, тафтиш мекунанд, ки онҳо дар гузориш як сатрро аз даст надодаанд ва дар бораи система чизҳои навро меомӯзанд. Ин усул бештар кор мекард.

Шарҳи Кодекс

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Субъективӣ, паҳн кардани дониш дар бораи инфрасохтор ва тарзи кор бо истифода аз баррасии код самараноктар буд:

  • Инфрасохтор бо код дар анбор тавсиф карда мешавад.
  • Тағйирот дар филиали алоҳида ба амал меоянд.
  • Ҳангоми дархости якҷоякунӣ, шумо метавонед дельти тағиротро дар инфрасохтор бинед.

Чизи барҷаста дар ин ҷо ин буд, ки баррасӣ аз рӯи ҷадвал як ба як интихоб мешуданд, яъне. бо як дараҷаи эҳтимолият шумо ба як пораи нави инфрасохтор меоед.

Услуби код

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Бо гузашти вақт, ҳангоми баррасиҳо ҷанҷолҳо пайдо шуданд, зеро ... бознигарон услуби худро доштанд ва гардиши баррасикунандагон онҳоро бо услубҳои гуногун ҷамъ мекард: 2 фосила ё 4, camelCase ё snake_case. Инро фавран ба амал баровардан мумкин набуд.

  • Аввалин идея ин буд, ки истифодаи линтер тавсия дода шавад, охир ҳама муҳандис аст, ҳама оқил ҳастанд. Аммо муҳаррирҳои гуногун, OS, қулай нестанд
  • Ин ба як бот табдил ёфт, ки барои ҳар як ӯҳдадории мушкилӣ барои сустӣ менавишт ва баромади линтерро замима мекард. Аммо дар аксари мавридҳо корҳои муҳимтаре буданд, ки бояд анҷом дода шаванд ва код ислоҳнашуда боқӣ монд.

Устоди сохтмони сабз

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Вақт мегузарад ва мо ба хулосае омадем, ки ӯҳдадориҳоеро, ки аз санҷишҳои муайян намегузаранд, ба устод иҷозат додан мумкин нест. Войла! Мо Green Build Master-ро ихтироъ кардем, ки муддати тӯлонӣ дар таҳияи нармафзор истифода шудааст:

  • Дар филиали алохида инкишоф дода мешавад.
  • Дар ин ришта озмоишҳо идома доранд.
  • Агар санҷишҳо ноком шаванд, код онро ба устод ворид намекунад.

Қабули ин тасмим хеле дардовар буд, зеро... боиси бахсу мунозирахои зиёд шуд, вале меарзад, зеро... Баррасиҳо ба гирифтани дархостҳо дар бораи якҷояшавӣ бидуни тафовут дар услуб шурӯъ карданд ва бо мурури замон шумораи минтақаҳои мушкилот коҳиш ёфт.

Санҷиши IaC

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Илова ба санҷиши услуб, шумо метавонед чизҳои дигарро истифода баред, масалан, барои тафтиш кардани он, ки инфрасохтори шумо воқеан ҷойгир карда метавонад. Ё тафтиш кунед, ки тағирот дар инфрасохтор ба талафоти пул оварда намерасонад. Чаро ин метавонад лозим бошад? Савол мураккаб ва фалсафӣ аст, беҳтар аст, ки бо як ҳикоя ҷавоб диҳед, ки гӯё дар Powershell як автоматикӣ мавҷуд буд, ки шароити сарҳадро тафтиш накардааст => VM-ҳои бештар аз зарурӣ сохта шудаанд => муштарӣ аз нақшаи пешбинишуда бештар пул сарф кардааст. Ин чандон гуворо нест, аммо дар марҳилаҳои қаблӣ ба ин хатогӣ дучор шудан комилан имконпазир мебуд.

Метавон пурсад, ки чаро инфраструктураи мураккабро боз хам мураккабтар мегардонем? Санҷишҳо барои инфрасохтор, мисли код, на дар бораи соддасозӣ, балки дар бораи донистани он, ки инфрасохтори шумо чӣ гуна бояд кор кунад.

Пирамидаи санҷиши IaC

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Санҷиши IaC: Таҳлили статикӣ

Агар шумо якбора тамоми инфрасохторро ҷойгир кунед ва тафтиш кунед, ки он кор мекунад, шумо метавонед фаҳмед, ки он вақти зиёдро талаб мекунад ва вақти зиёдро талаб мекунад. Бинобар ин, асос бояд чизе бошад, ки зуд кор кунад, он бисьёр аст ва он бисьёр чойхои ибтидоиро дарбар мегирад.

Bash душвор аст

Биёед як мисоли ночизро дида бароем. ҳамаи файлҳоро дар феҳристи ҷорӣ интихоб кунед ва ба ҷои дигар нусхабардорӣ кунед. Аввалин чизе, ки ба хотир меояд:

for i in * ; do 
    cp $i /some/path/$i.bak
done

Чӣ мешавад, агар дар номи файл фосила мавҷуд бошад? Хуб, хуб, мо оқил ҳастем, мо медонем, ки чӣ гуна иқтибосҳоро истифода барем:

for i in * ; do cp "$i" "/some/path/$i.bak" ; done

Офарин? Не! Чӣ мешавад, агар дар директория чизе набошад, яъне. глобинг кор намекунад.

find . -type f -exec mv -v {} dst/{}.bak ;

Ҳоло хуб кардед? Не... Фаромӯш кардед, ки дар номи файл чӣ буда метавонад n.

touch x
mv x  "$(printf "foonbar")"
find . -type f -print0 | xargs -0 mv -t /path/to/target-dir

Воситаҳои таҳлили статикӣ

Мушкилоти қадами қаблӣ метавонад ҳангоми фаромӯш кардани иқтибосҳо пайдо шавад, барои ин дар табиат воситаҳои зиёде мавҷуданд. Shellcheck, дар маҷмӯъ онҳо бисёранд ва эҳтимоли зиёд шумо метавонед барои стеки худ дар зери IDE-и худ линтер пайдо кунед.

забон
асбоби

bash
Shellcheck

лаъл
RuboCop

python
Пилинт

иҷрошаванда
Ansible Lint

Санҷиши IaC: Санҷишҳои воҳид

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Тавре ки мо аз мисоли қаблӣ дидем, линтерҳо қодир нестанд ва наметавонанд ҳамаи соҳаҳои мушкилотро нишон диҳанд. Ғайр аз он, дар муқоиса бо озмоиш дар таҳияи нармафзор, мо метавонем санҷишҳои воҳидро ба ёд орем. Он чизе ки фавран ба хотир меояд шунит, ҷавоҳирот, rspec, питест. Аммо бо ansible, chef, saltstack ва дигарон ба монанди онҳо чӣ бояд кард?

Дар ибтидо мо дар бораи он сӯҳбат кардем S.O.L.ID. ки инфраструктураи мо бояд аз хишти хурд иборат бошад. Вакти онхо расидааст.

  1. Инфрасохтор ба хиштҳои хурд тақсим карда мешавад, масалан, Нақшҳои Ansible.
  2. Як намуди муҳити зист ҷойгир карда шудааст, хоҳ докер ё VM.
  3. Мо нақши Ansible-и худро ба ин муҳити санҷиш истифода мебарем.
  4. Мо тафтиш мекунем, ки ҳама чиз тавре ки мо интизор будем кор мекардем (мо озмоишҳо мегузаронем).
  5. Мо қарор медиҳем, ки хуб ё не.

Санҷиши IaC: Воситаҳои санҷиши воҳидҳо

Савол, санҷишҳо барои CFM чист? Шумо метавонед танҳо скриптро иҷро кунед, ё шумо метавонед барои ин ҳалли омодаро истифода баред:

CFM
асбоби

Фаҳмост
Testinfra

сар
Тафтиш

сар
Serverspec

намак
Госс

Мисол барои testinfra, тафтиши он корбарон test1, test2 вуҷуд доранд ва дар як гурӯҳ ҳастанд sshusers:

def test_default_users(host):
    users = ['test1', 'test2' ]
    for login in users:
        assert host.user(login).exists
        assert 'sshusers' in host.user(login).groups

Чӣ бояд интихоб кард? Савол мураккаб ва норавшан аст, ин аст як мисоли тағирот дар лоиҳаҳо дар github барои солҳои 2018-2019:

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Чаҳорчӯбаҳои санҷиши IaC

Саволе ба миён меояд: чӣ тавр ҳамаро ҷамъ овардан ва ба кор андохтан мумкин аст? Метавонед гирифта, худатон кор кунед агар шумораи кофии инженерон мавчуд бошад. Ё шумо метавонед ҳалли тайёрро қабул кунед, гарчанде ки онҳо хеле зиёданд:

CFM
асбоби

Фаҳмост
Молекула

сар
Ошхонаи озмоишӣ

Терафром
Терратест

Намунаи тағирот дар лоиҳаҳо дар github барои солҳои 2018-2019:

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Молекула vs. Ошхонаи озмоишӣ

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Дар аввал мо бо истифода аз testkitchen кӯшиш кард:

  1. Дар баробари як VM эҷод кунед.
  2. Нақшҳои Ansible-ро татбиқ кунед.
  3. Гузаронидани санҷиш.

Барои 25-35 нақш 40-70 дақиқа кор мекард, ки тӯлонӣ буд.

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Қадами навбатӣ гузариш ба Ҷенкинс/докер/ансибл/молекула буд. Идиологӣ ҳама чиз якхела аст

  1. Китобҳои бозӣ Lint.
  2. Нақшҳоро як қатор кунед.
  3. Контейнерро оғоз кунед
  4. Нақшҳои Ansible-ро татбиқ кунед.
  5. Testinfra-ро иҷро кунед.
  6. Имкониятро тафтиш кунед.

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Линтинг барои 40 нақш ва санҷишҳо барои даҳҳо тақрибан 15 дақиқа тӯл кашиданд.

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Чӣ интихоб кардан аз бисёр омилҳо вобаста аст, ба монанди стек истифодашаванда, таҷриба дар гурӯҳ ва ғайра. дар ин ҷо ҳама худашон тасмим мегиранд, ки чӣ гуна саволи санҷиши воҳидро пӯшанд

Санҷиши IaC: Санҷишҳои ҳамгироӣ

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Қадами навбатӣ дар пирамидаи санҷиши инфрасохтор санҷишҳои ҳамгироӣ хоҳанд буд. Онҳо ба санҷишҳои воҳид монанданд:

  1. Инфрасохтор ба хиштҳои хурд тақсим карда мешавад, масалан нақшҳои Ansible.
  2. Як намуди муҳити зист ҷойгир карда шудааст, хоҳ докер ё VM.
  3. Барои ин муҳити санҷиш муроҷиат кунед бисёр Нақшҳои қобили мулоҳиза.
  4. Мо тафтиш мекунем, ки ҳама чиз тавре ки мо интизор будем кор мекардем (мо озмоишҳо мегузаронем).
  5. Мо қарор медиҳем, ки хуб ё не.

Тақрибан гӯем, мо кори як унсури инфиродии системаро мисли санҷишҳои воҳид тафтиш намекунем, мо месанҷем, ки чӣ тавр сервер дар маҷмӯъ конфигуратсия шудааст.

Санҷиши IaC: Санҷишҳои ниҳоӣ ба охир

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Дар болои пирамида моро санҷишҳои End to End пешвоз мегиранд. Онхое. Мо кори сервери алоҳида, скрипти алоҳида ё хишти алоҳидаи инфрасохтори худро тафтиш намекунем. Мо тафтиш мекунем, ки бисёр серверҳо ба ҳам пайвастанд, инфрасохтори мо тавре кор мекунад, ки мо интизорем. Мутаассифона, ман ҳеҷ гоҳ ҳалли қуттиҳои тайёрро надидаам, шояд аз он сабаб... Инфрасохтор аксар вақт беназир аст ва барои шаблон ва сохтани чаҳорчӯба барои санҷиш душвор аст. Дар натиҷа, ҳар кас ҳалли худро эҷод мекунад. Талаб ҳаст, аммо ҷавоб нест. Аз ин рӯ, ман ба шумо мегӯям, ки дигаронро ба фикрҳои солим тела додан ё бинии ман молидан дар он аст, ки ҳама чиз хеле пеш аз мо ихтироъ шудааст.

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Лоиҳа бо таърихи бой. Он дар ташкилотҳои калон истифода мешавад ва эҳтимол ҳар яки шумо бавосита бо он роҳҳоро убур кардаед. Ин барнома бисёр пойгоҳи додаҳо, ҳамгироӣ ва ғайраҳоро дастгирӣ мекунад. Донистани инфрасохтор чӣ гуна буда метавонад, шумораи зиёди файлҳои эҷодкунандаи docker ва донистани он, ки кадом озмоишҳо дар кадом муҳит Ҷенкинс иҷро мешаванд.

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Ин схема муддати хеле дароз кор мекард, то дар доираи он тадқиқот мо кӯшиш накардаем, ки инро ба Openshift интиқол диҳем. Контейнерҳо бетағйир боқӣ мемонанд, аммо муҳити оғозёбӣ тағир ёфтааст (боз салом D.R.Y.).

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Идеяи тадқиқот боз ҳам пеш рафт ва дар openshift онҳо чунин чизеро пайдо карданд, ба монанди APB (Ansible Playbook Bundle), ки ба шумо имкон медиҳад, ки донишро дар бораи ҷойгиркунии инфрасохтор дар контейнер ҷамъ кунед. Онхое. як нуқтаи такроршаванда ва санҷидашавандаи дониш дар бораи чӣ гуна ҷойгир кардани инфрасохтор вуҷуд дорад.

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Ҳамаи ин хуб садо медод, то он даме, ки мо ба инфрасохтори гетерогенӣ дучор шавем: барои санҷиш ба мо Windows лозим буд. Дар натиҷа, дониш дар бораи чӣ, дар куҷо, чӣ гуна ҷойгир кардан ва озмоиш дар Ҷенкинс аст.

хулоса

Он чизеро, ки ман аз санҷиши 200 сатри рамзи инфрасохтор омӯхтам

Инфрасохтор ҳамчун Кодекс

  • Код дар анбор.
  • Муносибати одамон.
  • Санҷиши инфрасохтор.

пайвандҳо

Манбаъ: will.com

Илова Эзоҳ