Garden v0.10.0: Вашаму наўтбуку не патрэбен Kubernetes

Заўв. перав.: З Kubernetes-энтузіястамі з праекта Сад мы пазнаёміліся на нядаўнім мерапрыемстве KubeCon Europe 2019, дзе яны зрабілі на нас прыемнае ўражанне. Гэты іх матэрыял, напісаны на актуальную тэхнічную тэму і з прыкметным пачуццём гумару, - нагляднае таму пацвярджэнне, а таму мы вырашылі яго перавесці.

Ён распавядае пра галоўнае (аднайменнае) прадукце кампаніі, ідэя якога - аўтаматызацыя працоўных працэсаў і спрашчэнне распрацоўкі прыкладанняў у Kubernetes. Для гэтага ўтыліта дазваляе лёгка (літаральна адной камандай) разгортваць у dev-кластары новыя змены, зробленыя ў кодзе, а таксама падае падзяляныя рэсурсы/кэшы для паскарэння зборкі і тэставанні кода камандай. Два тыдні таму ў Garden адбыўся рэліз 0.10.0, у якім стала магчымым выкарыстоўваць не толькі лакальны Kubernetes-кластар, але і выдалены: менавіта гэтай падзеі і прысвечаны дадзены артыкул.

Менш за ўсё я люблю працаваць з Kubernetes на сваім наўтбуку. «Кармчы» паглынае яго працэсар і акумулятар, прымушае кулеры круціцца без прыпынку і складзены ў абслугоўванні.

Garden v0.10.0: Вашаму наўтбуку не патрэбен Kubernetes
Фатаграфія са сцёку ў тэму для мацнейшага эфекту

Minikube, kind, k3s, Docker Desktop, microk8s і т.д. - Выдатныя прылады, створаныя для таго, каб карыстацца Kubernetes было максімальна зручна, і дзякуй ім за гэта. Сур'ёзна. Але з якога боку ні паглядзі, зразумела адно: Kubernetes не прыстасаваны для запуску на маім ноўце. Ды і сам наўтбук не прызначаны для працы з кластарам кантэйнераў, якія былі раскіданыя па пластах віртуальных машын. Небарака стараецца з усіх сіл, але відавочна не любіць гэты занятак, выказваючы сваю незадаволенасць выццём кулераў і наровячы абпаліць сцягна, калі я неабдумана стаўлю яго на калені.

Скажам жа: наўтбуку - наўтбукава.

Сад – інструмент для распрацоўшчыкаў, які займае тую ж нішу, што і Skaffold, і Draft. Ён спрашчае і паскарае распрацоўку і тэсціраванне Kubernetes-прыкладанняў.

З моманту самага пачатку працы над Garden, каля 18 месяцаў таму, мы ведалі, што лакальная распрацоўка размеркаваных сістэм - часовае рашэнне, таму заклалі ў Garden значную гнуткасць і трывалую аснову.

Цяпер мы гатовы падтрымліваць як лакальныя, так і выдаленыя Kubernetes-асяроддзі. Працаваць стала значна прасцей: зборку, разгортванне і тэставанне зараз можна праводзіць у выдаленым кластары.

Карацей кажучы:

З Garden v0.10 можна цалкам забыцца пра лакальны кластар Kubernetes і па-ранейшаму атрымліваць хуткую рэакцыю на змены ў кодзе. Усё гэта - бясплатна і з адкрытымі зыходнікамі.

Garden v0.10.0: Вашаму наўтбуку не патрэбен Kubernetes
Атрымлівайце асалоду ад аднолькавай выгодай пры працы з лакальнымі і выдаленымі асяроддзямі

Прыцягнуў вашу ўвагу?

І я рады гэтаму, паколькі ў нас ёсць яшчэ шмат цікаўных фішак! Агульнае выкарыстанне dev-кластэраў мае больш маштабныя наступствы, асабліва для сумесна працуючых каманд і CI-пайплайнаў.

Як так?

Перш за ўсё, внутрикластерный зборшчык - няхай гэта будзе стандартны дэман Docker або Kaniko, - а таксама внутрикластерный рэестр з'яўляюцца агульнымі для ўсяго кластара. Ваша каманда можа разам выкарыстоўваць dev-кластар, пры гэтым кэшы зборак і выявы даступныя ўсім распрацоўнікам. Паколькі Garden прысвойвае тэгі выявам на аснове хэшаў зыходнікаў, тэгі і пласты вызначаюцца адназначна і несупярэчліва.

Гэта азначае, што як толькі распрацоўнік стварае выяву, ён становіцца даступны для ўсёй каманды. З дня ў дзень мы спампоўваем адны і тыя ж базавыя выявы і які робіцца адны і тыя ж зборкі на кампутарах. Цікаўна, колькі трафіку і электрычнасці марнуецца марна?..

Тое ж самае можна сказаць аб тэстах: іх вынікі даступныя ўсяму кластару і ўсім чальцам каманды. Калі адзін з распрацоўшчыкаў пратэставаў нейкую версію кода, адпадае ўсякая неабходнасць паўторна праводзіць той жа тэст.

Іншымі словамі, справа не толькі ў тым, што не трэба запускаць minikube. Гэты скок адкрывае для вашай каманды дарогу да мноству магчымасцяў па аптымізацыі - больш ніякіх лішніх зборак і тэставых прагонаў!

Як наконт CI?

Большасць з нас абвыклі да таго, што CI і лакальны dev – гэта два самастойных свету, якія трэба наладжваць асобна (і яны не выкарыстоўваюць агульны кэш). Цяпер іх можна аб'яднаць і пазбавіцца ад лішняга:

Можна выконваць адны і тыя ж каманды ў CI і ў працэсе распрацоўкі, а таксама выкарыстоўваць адзіную сераду, кэшы і вынікі тэстаў.

У сутнасці ваша CI ператвараецца ў робата-распрацоўніка, які працуе ў тым жа асяроддзі, што і вы.

Garden v0.10.0: Вашаму наўтбуку не патрэбен Kubernetes
Элементы сістэмы; бесперашкодная распрацоўка і тэсціраванне

Можна істотна спрасціць канфігі CI-пайплайнаў. Для гэтага дастаткова запусціць Garden з CI для зборак, тэстаў і дэплояў. Паколькі вы і CI выкарыстоўваеце адно і тое ж асяроддзе, верагоднасць сутыкнуцца з праблемамі CI значна ніжэй.

Капанне ў незлічоных радках канфігаў і скрыптоў, затым push'і, чаканне, надзея і бясконцыя паўторы… Усё гэта ў мінулым. Вы проста займаецеся распрацоўкай. Ніякіх лішніх рухаў.

І каб канчаткова растлумачыць сітуацыю: калі вы ці іншы прадстаўнік каманды сабраў ці пратэставаў нешта з дапамогай Garden, тое ж самае адбылося і для CI. Калі вы нічога не мянялі пасля тэставых прагонаў, то не трэба праводзіць тэсты (ці нават зборкі) для CI. Garden усё робіць сам, а затым пераходзіць да іншых задач, такім як арганізацыя асяроддзя папярэдняга запуску, pushing артэфактаў і г.д.

Гучыць прывабна. Як паспрабаваць?

Сардэчна запрашаем у наш рэпазітар GitHub! Усталёўвайце Garden і гуляйце з прыкладамі. Тым, хто ўжо выкарыстоўвае Garden ці жадае пазнаёміцца ​​з ім бліжэй, прапануем Remote Kubernetes Guide. Далучайцеся да нас у канале #garden у Slack'е Kubernetes, Калі ў вас ёсць пытанні, праблемы ці вы проста хочаце пагутарыць. Мы заўсёды гатовы дапамагчы і вітаем зваротную сувязь ад карыстальнікаў.

PS ад перакладчыка

У хуткім часе мы таксама апублікуем агляд карысных утыліт для распрацоўнікаў прыкладанняў, якія функцыянуюць у Kubernetes, куды апроч Garden патрапілі і іншыя цікавыя праекты… А пакуль – чытайце таксама ў нашым блогу:

Крыніца: habr.com

Дадаць каментар