ГитОпс: Поређење метода повлачења и гурања

Белешка. трансл.: У Кубернетес заједници тренд који се зове ГитОпс добија очигледну популарност, као што смо лично видели, посећујући КубеЦон Еуропе 2019. Овај термин је био релативно недавно измислио од стране шефа Веавеворкс-а - Алексис Ричардсон - и значи коришћење алата познатих програмерима (првенствено Гит, отуда и име) за решавање оперативних проблема. Конкретно, говоримо о функционисању Кубернетеса тако што се његове конфигурације чувају у Гиту и аутоматски уносе промене у кластер. Матијас Јг у овом чланку говори о два приступа овом увођењу.

ГитОпс: Поређење метода повлачења и гурања

Прошле године, (у ствари, формално се то догодило у августу 2017 – прибл. прев.) Постоји нови приступ постављању апликација у Кубернетес. Зове се ГитОпс и заснива се на основној идеји да се верзије примене прате у безбедном окружењу Гит спремишта.

Главне предности овог приступа су следеће::

  1. Верзија за примену и историја промена. Стање читавог кластера се чува у Гит спремишту, а примене се ажурирају само путем урезивања. Поред тога, све промене се могу пратити коришћењем историје урезивања.
  2. Враћа се помоћу познатих Гит команди... Плаин git reset омогућава вам да ресетујете промене у примени; прошла стања су увек доступна.
  3. Спремна контрола приступа. Типично, Гит систем садржи много осетљивих података, тако да већина компанија посвећује посебну пажњу њиховој заштити. Сходно томе, ова заштита се односи и на операције са распоређивањем.
  4. Смернице за примену. Већина Гит система изворно подржава смернице гране по грану — на пример, само захтеви за повлачење могу да ажурирају мастер, а промене мора да прегледа и прихвати други члан тима. Као и код контроле приступа, исте смернице се примењују и на ажурирања примене.

Као што видите, ГитОпс метода има много предности. Током протекле године, два приступа су стекла посебну популарност. Један је заснован на гурање, други на повлачење. Пре него што их погледамо, хајде да прво погледамо како изгледају типичне Кубернетес примене.

Методе примене

Последњих година, Кубернетес је успоставио различите методе и алате за примену:

  1. Засновано на матичним Кубернетес/Кустомизе шаблонима. Ово је најлакши начин за постављање апликација на Кубернетес. Програмер креира основне ИАМЛ датотеке и примењује их. Да бисмо се ослободили сталног поновног писања истих шаблона, развијен је Кустомизе (претвара Кубернетес шаблоне у модуле). Белешка. трансл.: Кустомизе је интегрисан у кубецтл са издање Кубернетеса 1.14.
  2. Хелм Цхартс. Хелм графикони вам омогућавају да креирате скупове шаблона, инит контејнера, сидецара, итд., који се користе за примену апликација са флексибилнијим опцијама прилагођавања него у приступу заснованом на шаблонима. Овај метод је заснован на шаблонским ИАМЛ датотекама. Хелм их испуњава различитим параметрима, а затим их шаље Тиллер-у, компоненти кластера која их поставља у кластер и дозвољава ажурирања и враћања. Важно је да Хелм у суштини само убацује жељене вредности у шаблоне и затим их примењује на исти начин као што се ради у традиционалном приступу (више о томе како све то функционише и како можете да га користите прочитајте у нашем чланак Хелм — прибл. превод). Постоји велики избор готових Хелм карти које покривају широк спектар задатака.
  3. Алтернативни алати. Постоји много алтернативних алата. Оно што им је свима заједничко је да неке датотеке шаблона претварају у Кубернетес читљиве ИАМЛ датотеке и затим их користе.

У свом раду стално користимо Хелм графиконе за важне алате (пошто имају доста ствари већ спремних, што знатно олакшава живот) и „чисте“ Кубернетес ИАМЛ датотеке за имплементацију сопствених апликација.

Пулл & Пусх

У једном од мојих недавних постова на блогу, представио сам алат Веаве Флук, који вам омогућава да урезујете шаблоне у Гит спремиште и ажурирате примену након сваког урезивања или притискања контејнера. Моје искуство показује да је овај алат један од главних у промовисању приступа повлачења, тако да ћу се често позивати на њега. Ако желите да сазнате више о томе како да га користите, овде линк до чланка.

НБ! Све предности коришћења ГитОпс-а остају исте за оба приступа.

Приступ заснован на повлачењу

ГитОпс: Поређење метода повлачења и гурања

Приступ повлачења заснива се на чињеници да се све промене примењују унутар кластера. Унутар кластера постоји оператер који редовно проверава придружена Гит и Доцкер Регистри спремишта. Ако дође до било каквих промена, стање кластера се интерно ажурира. Овај процес се генерално сматра веома безбедним, пошто ниједан спољни клијент нема приступ правима администратора кластера.

Предности:

  1. Ниједан спољни клијент нема права да прави промене у кластеру; сва ажурирања се уводе изнутра.
  2. Неки алати вам такође омогућавају да синхронизујете ажурирања Хелм графикона и повежете их са кластером.
  3. Доцкер регистар се може скенирати за нове верзије. Ако је нова слика доступна, Гит спремиште и примена се ажурирају на нову верзију.
  4. Алати за повлачење могу се дистрибуирати у различитим именским просторима са различитим Гит репозиторијумима и дозволама. Захваљујући томе, може се користити модел са више станара. На пример, тим А може да користи именски простор А, тим Б може да користи именски простор Б, а тим за инфраструктуру може да користи глобални простор.
  5. По правилу, алати су веома лагани.
  6. У комбинацији са алатима као што је оператер Битнами Сеалед Сецретс, тајне се могу чувати шифроване у Гит спремишту и преузимати унутар кластера.
  7. Не постоји веза са цјевоводима ЦД-а пошто се имплементације дешавају унутар кластера.

Против:

  1. Управљање тајнама размештања са Хелм графикона је теже од обичних, јер оне прво морају да се генеришу у облику, рецимо, запечаћених тајни, затим да их дешифрује интерни оператер, и тек након тога постају доступне алату за повлачење. Затим можете покренути издање у Хелму са вредностима у већ распоређеним тајнама. Најлакши начин је да креирате тајну са свим Хелм вредностима које се користе за примену, дешифрујете је и предате Гиту.
  2. Када узмете приступ повлачењу, постајете везани за алате за повлачење. Ово ограничава могућност прилагођавања процеса имплементације у кластеру. На пример, Кустомизе је компликован чињеницом да мора да се покрене пре него што се коначни шаблони предају Гиту. Не кажем да не можете да користите самосталне алате, али их је теже интегрисати у ваш процес примене.

Пусх заснован приступ

ГитОпс: Поређење метода повлачења и гурања

У пусх приступу, спољни систем (углавном ЦД цевовод) покреће примену у кластеру након урезивања у Гит репозиторијум или ако је претходни ЦИ цевовод успешан. У овом приступу, систем има приступ кластеру.

Прозодија:

  1. Безбедност је одређена Гит репозиторијумом и цевоводом за изградњу.
  2. Примена Хелм графикона је лакша и подржава Хелм додатке.
  3. Тајнама је лакше управљати јер се тајне могу користити у цевоводима и такође могу да се чувају шифроване у Гиту (у зависности од преференција корисника).
  4. Не постоји веза са одређеним алатом, пошто се било који тип може користити.
  5. Ажурирања верзије контејнера могу бити покренута цевоводом за прављење.

Против:

  1. Подаци за приступ кластеру су унутар система изградње.
  2. Ажурирање контејнера за примену је и даље лакше уз процес повлачења.
  3. Велика зависност од ЦД система, пошто су цевоводи који су нам потребни можда првобитно написани за Гитлаб Руннерс, а затим тим одлучује да пређе на Азуре ДевОпс или Јенкинс... и мораће да мигрира велики број цевовода за изградњу.

Резултати: Гурните или Повуците?

Као што обично бива, сваки приступ има своје предности и мане. Неке задатке је лакше извршити са једним, а теже са другим. У почетку сам имплементирао ручно, али након што сам наишао на неколико чланака о Веаве Флук-у, одлучио сам да имплементирам ГитОпс процесе за све пројекте. За основне шаблоне ово је било лако, али онда сам почео да наилазим на потешкоће са Хелм графиконима. У то време, Веаве Флук је нудио само рудиментарну верзију Хелм Цхарт Оператора, али чак и сада су неки задаци тежи због потребе да се ручно креирају тајне и примене. Можете тврдити да је приступ повлачења много сигурнији јер акредитиви кластера нису доступни изван кластера, што га чини толико сигурнијим да је вредно додатног труда.

Након мало размишљања, дошао сам до неочекиваног закључка да то није тако. Ако говоримо о компонентама које захтевају максималну заштиту, ова листа ће укључивати тајно складиште, ЦИ/ЦД системе и Гит репозиторије. Информације унутар њих су веома рањиве и потребна им је максимална заштита. Поред тога, ако неко уђе у ваше Гит спремиште и може тамо да гурне код, може да примени шта год жели (било да је то повлачење или гурање) и инфилтрирање у системе кластера. Дакле, најважније компоненте које треба заштитити су Гит репозиторијум и ЦИ/ЦД системи, а не акредитиви кластера. Ако имате добро конфигурисане политике и безбедносне контроле за ове типове система, а акредитиви кластера се издвајају у цевоводе само као тајне, додатна безбедност приступа повлачења можда неће бити толико вредна као што се првобитно мислило.

Дакле, ако је приступ повлачења интензивнији и не пружа безбедносну корист, зар није логично користити само пусх приступ? Али неко би могао да тврди да сте у пусх приступу превише везани за ЦД систем и можда је боље да то не радите како би било лакше извршити миграције у будућности.

По мом мишљењу (као и увек), треба користити оно што је најпогодније за одређени случај или комбинацију. Лично, користим оба приступа: Веаве Флук за имплементације засноване на повлачењу које углавном укључују наше сопствене услуге и пусх приступ са Хелмом и додацима, који олакшава примену Хелм графикона на кластер и омогућава вам да креирате тајне без икаквих проблема . Мислим да никада неће постојати јединствено решење погодно за све случајеве, јер увек има пуно нијанси и оне зависе од конкретне примене. Узимајући то у обзир, топло препоручујем ГитОпс – он чини живот много лакшим и побољшава безбедност.

Надам се да ће вам моје искуство на овој теми помоћи да одлучите који метод је прикладнији за ваш тип примене, и било би ми драго да чујем ваше мишљење.

ПС Напомена преводиоца

Недостатак модела повлачења је то што је тешко ставити приказане манифесте у Гит, али нема лоше стране то што ЦД цевовод у моделу повлачења живи одвојено од увођења и у суштини постаје цевовод категорије Континуирана примена. Због тога ће бити потребно још више труда да се прикупи њихов статус од свих имплементација и на неки начин обезбеди приступ евиденцијама/статусу, по могућности у односу на ЦД систем.

У том смислу, пусх модел нам омогућава да обезбедимо бар неке гаранције за увођење, јер се животни век цевовода може учинити једнаким животном веку увођења.

Испробали смо оба модела и дошли до истих закључака као и аутор чланка:

  1. Модел повлачења је погодан за нас да организујемо ажурирања компоненти система на великом броју кластера (види. чланак о аддон-оператору).
  2. Пушки модел заснован на ГитЛаб ЦИ је веома погодан за пуштање апликација које користе Хелмове графиконе. У исто време, увођење имплементација унутар цевовода се прати помоћу алата верф. Иначе, у контексту овог нашег пројекта, чули смо стални „ГитОпс“ када смо на нашем штанду на КубеЦон Еуропе'19 разговарали о хитним проблемима ДевОпс инжењера.

ППС од преводиоца

Прочитајте и на нашем блогу:

Само регистровани корисници могу учествовати у анкети. Пријавите се, Добродошао си.

Да ли користите ГитОпс?

  • Да, повуци приступ

  • Да, гурај

  • Да, повуци + гурај

  • Да, још нешто

  • Не

Гласало је 30 корисника. Уздржано је било 10 корисника.

Извор: ввв.хабр.цом

Додај коментар