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

Додати коментар або відгук