Garden v0.10.0: Вашият лаптоп не се нуждае от Kubernetes
Забележка. превод: С ентусиасти на Kubernetes от проекта Градина срещнахме се на скорошно събитие KubeCon Europe 2019, където ни направиха приятно впечатление. Този техен материал, написан на актуална техническа тема и със забележимо чувство за хумор, е ярко потвърждение за това и затова решихме да го преведем.
Той говори за основното (със същото име) продукт компания, чиято идея е да автоматизира работните процеси и да опрости разработката на приложения в Kubernetes. За да направите това, помощната програма ви позволява лесно (буквално с една команда) да внедрите нови промени, направени в кода в клъстера за разработка, и също така предоставя споделени ресурси/кешове, за да ускорите изграждането и тестването на кода от екипа. Преди две седмици Градината беше домакин версия 0.10.0, в който стана възможно да се използва не само локален клъстер Kubernetes, но и отдалечен: това е събитието, на което е посветена тази статия.
Най-малко любимото ми нещо е да работя с Kubernetes на моя лаптоп. "Кормчия" му изяжда процесора и батерията, кара охладителите да се въртят нонстоп и е труден за поддръжка.
Стокова фотография в темата за допълнителен ефект
Minikube, kind, k3s, Docker Desktop, microk8s и др. - отлични инструменти, създадени да направят използването на Kubernetes възможно най-удобно и им благодаря за това. Сериозно. Но както и да го погледнете, едно е ясно: Kubernetes не е подходящ за работа на моя лаптоп. А самият лаптоп не е проектиран да работи с клъстер от контейнери, разпръснати в слоеве от виртуални машини. Горкият се старае, но явно не харесва това занимание, показвайки недоволството си с воя на охладителите и опитвайки се да опари бедрата си, когато безразсъдно го сложих на колене.
Да кажем: лаптоп - лаптоп.
Градина е инструмент за разработчици, който заема същата ниша като Skaffold и Draft. Той опростява и ускорява разработката и тестването на приложения на Kubernetes.
От момента, в който започнахме да работим върху Garden, преди около 18 месеца, знаехме това местен Разработването на разпределени системи е временно решение, така че Garden изгради значителна гъвкавост и солидна основа.
Вече сме готови да поддържаме както локални, така и отдалечени среди на Kubernetes. Работата стана много по-лесна: асемблирането, внедряването и тестването вече могат да се извършват в отдалечен клъстер.
Накратко:
С Garden v0.10 можете напълно да забравите за локален клъстер на Kubernetes и пак да получавате бърз отговор на промени в кода. Всичко това е безплатно и с отворен код.
Насладете се на едно и също изживяване в местни и отдалечени среди
Привлече вниманието ви?
И се радвам за това, защото имаме още много интересни функции! Общото използване на клъстери за разработка има по-широки последици, особено за екипи за сътрудничество и CI тръбопроводи.
Как така?
На първо място, вътрешноклъстерният колектор - било то стандартен Docker демон или Kaniko - както и вътрешноклъстерният регистър се споделят за целия клъстер. Вашият екип може да споделя клъстер за разработчици с кешове за компилация и изображения, достъпни за всички разработчици. Тъй като Garden етикетира изображения въз основа на хешове на източника, таговете и слоевете се дефинират уникално и последователно.
Това означава, че след като разработчикът създаде изображение, то става на разположение на целия екип. Ден след ден изтегляме едни и същи базови изображения и правим едни и същи компилации на нашите компютри. Любопитно колко трафик и електричество се губят?..
Същото може да се каже и за тестовете: техните резултати са достъпни за целия клъстер и всички членове на екипа. Ако някой от разработчиците е тествал определена версия на кода, няма нужда да пускате отново същия тест.
С други думи, не става въпрос само за това, че не работи minikube. Този скок проправя пътя за вашия екип към много възможности за оптимизация - няма повече ненужни компилации и тестове!
Какво ще кажете за CI?
Повечето от нас са свикнали с факта, че CI и local dev са два отделни свята, които трябва да се конфигурират отделно (и те не споделят кеш). Сега можете да ги комбинирате и да се отървете от излишното:
Можете да изпълнявате същите команди в CI и в процеса на разработка, както и използвайте единна среда, кешове и резултати от тестове.
По същество вашият CI се превръща в бот за разработчици, работещ в същата среда като вас.
Системни елементи; безпроблемно разработване и тестване
Конфигурациите на CI тръбопровода могат да бъдат значително опростени. За да направите това, просто стартирайте Garden от CI за компилации, тестове и внедрявания. Тъй като вие и CI използвате една и съща среда, е много по-малко вероятно да срещнете проблеми с CI.
Ровене в безброй редове от конфигурации и скриптове, после бутане, чакане, надежда и безкрайни повторения... Всичко това е в миналото. Вие просто се занимавате с развитие. Без излишни движения.
И накрая да изясним ситуацията: когато вие или друг член на екипа изградихте или тествахте нещо с Garden, същото се случи и за CI. Ако не сте променили нищо след тестовете, тогава не е необходимо да изпълнявате тестове (или дори компилации) за CI. Garden прави всичко сама и след това преминава към други задачи, като организиране на средата преди стартиране, натискане на артефакти и т.н.
Звучи примамливо. Как да пробвам?
Добре дошли в нашето GitHub хранилище! Инсталирайте Garden и си поиграйте с примерите. За тези, които вече използват Garden или искат да го опознаят по-добре, предлагаме Отдалечено ръководство за Kubernetes. Присъединете се към нас в канала #градина в Kubernetes Slack, ако имате въпроси, проблеми или просто искате да поговорим. Винаги сме готови да помогнем и приветстваме обратната връзка от потребителите.
PS от преводача
Скоро ще публикуваме и преглед на полезни помощни програми за разработчици на приложения, работещи в Kubernetes, който включва други интересни проекти в допълнение към Garden... Междувременно прочетете и в нашия блог: