Senior No-Code Developer

Поки весь світ захоплено пише промпти до ChatGPT, 🍦 опановує інструменти що були в тренді 5 років тому.

Знадобилося по роботі зробити нагадування про апгрейд продакшену. Апрув на це в нас робиться вручну, видається реліз, розкатується на стейджинг, якщо все ок, то потім розкатують на продакшн. «Розкатати» значить замерджити автоматично створений під час релізу мердж реквест де апгрейдяться куберівські дефінішени, які далі зааплаїть ArgoCD.

Мене попросили зробити нотифікашку в слак, яка б перевіряла скільки часу минуло з останнього релізу на стейджинг та пропонувала робити апгрейд проду. До нотифікашки мала б додаватися кнопка «Approve» щоб запустити процес негайно, та «Cancel», щоб скасувати автоматичний апгрейд.

Задача у своїй суті дуже проста — витягнути потрібні мердж реквести, подивитися скільки часу минуло, написати в слак, почекати деякий час, замерджити. Буквально чотири API виклики, які треба зв'язати до купки.

Але далі починаються складності. Хто буде запускати крон? Де буде знаходитися код який лапатиме вебхуки від кнопок? Де буде зберігатися стейт? Потрібно робити інфраструктуру для інфраструктури, окремий сервіс з маленькою базою, інгрес, хелм чарт і тд і тд. Або якась лямбда яка запускається за розкладом, а до лямбди тераформ, а в тераформі апі гейтвей, окремий репозиторій, тести, деплой🫣 Всюди прокинути потрібні ключі, видати права.

Просто жах.

Добре, що один з інженерів вже робив схожі інтеграції на інтегроматі (зараз це Make.com). Я пішов туди, почитав доку, з'ясував що є все що потрібно, та сів до реалізації.

Виявилося, що це супер зручно, поки все просто. Додаєш дію «Знайти мердж реквести в гітлабі», наклікуєш там критерії, далі фільтруєш, далі регекспом парсиш текст, далі постиш повідомлення у слак. Значно швидше та зручніше, ніж вручну душити пітона. Можна відразу ж це все запустити, побачити які дані інтегромат витягнув з датасорсів, що він далі з ними зробив. Також сценарій легко ставиться на крон.

Отак я за пів години наклікав і все завелось. Ну як, все. Виявилося, що динамічні кнопки не зробиш, через те що інтегромат не має такої функції. Я перерив всю документацію і форум, знайшов два пости з такими ж запитами, але без відповідей.

Тому повноцінного ChatOps, щоб можна було керувати справами, не виходячи зі слаку, в мене не вийшло.

Проблеми у таких рішень звісно вже давно відомі: дебаг, моніторинг, версіонування, тестування і так далі.

Для простих випадків мені здається штука дуже зручна.

Але це вже все неактуально, тому що ChatGPT незабаром з'їсть світ, і буде сам писати лямбди та тераформи й деплоїти це в клауд по одному нашому промпту.

P.S.: в коментах можете постити жарти про «no-money customer»


Сподобалось? Долучайтеся до мого телеграм каналу: https://t.me/full_of_hatred