DeployBook — черга для бронювання DEV середовищ

Вітаю спільното 👋

Я Андрій — .NET розробник в компанії GlobalLogic, у цьому кейсі хочу поділитись однією проблемою яка виникла під час роботи на поточному проєкті, в також своїм варіантом вирішення.

Проблема

На поточному проєкті, де я працюю, як і всюди, є декілька середовищ, але команда велика: розробники, тестувальники, QA.

— Кожному частенько потрібно зарезервувати те чи інше середовище для роботи чи під демо.

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

— А бувають ще кейси, коли 2 різних розробники, які тестували свою фічу, розгорнули несумісні версії різних сервісів, бо хтось з них забув повідомити в загальному чаті — і тоді все ламається ⛓️‍💥

Доводиться робити повторний deploy всіх сервісів з 0.

Solution: DeployBook

Спочатку я пішов до Cursor та попросив створити додаток, який працюватиме всередині Microsoft Teams, але дуже швидко виявилось, що більшість фіч, які я хочу, неможливо реалізувати засобами Microsoft PowerApps.

Вирішив зробити свій додаток (поки що тільки прототип без логіки).

Можете покрутити-поклацати, пароль/логін-будь який, так як це лише прототип.

Звісно, можна робити все в Гугл календарі, але:

— тоді не буде такої фічі як черга (вам не потрібно турбуватися про start та end date — ви тільки отримуєте сповіщення коли середовище звільнилось і автоматично бронюєте свій слот).

— та можливість підписатись на конкретне середовище і отримувати сповіщення хто і що бронює

Єдиний блокер поки що 😁🤯- зі сторони замовника цю ініціативу не апрувнули, «корпоративні policy» не дозволяють.

Але сам продукт дуже хочеться перевірити на практиці, особливо в командах із десятків або сотень людей 👥

Тож в даний момент набираю волонтерів, для кого актуальна ця проблема і хто хотів би випробувати це у своїй команді/компанії ✅

Для тих, хто стурбований безпекою/compliance — авторизація через GitHub чи invitation token — ніяких корпоративних акаунтів, ніяких корпоративних пошт, сповіщення — browser push notifications чи на особисту пошту.

Ось як виглядає типовий workflow:

— Ви авторизуєтесь через GitHub

— Створюєте workspace для своєї команди чи компанії

— Створюєте invitation токени для своїх колег, з допомогою яких вони можуть входити в систему

✅ Готово — команда працює в єдиному просторі

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Так буває коли замість апки цілковиті милиці

Використовуйте feature flag підхід при розробці і релізі бізнес фіч, це набагато зручніше ніж контроль релізу через коміти. Іноді будуть коміти з рефакторінглм чи технічними задачами які не закриєш фічею але в загальному це зменшить залежності від енвів в 10 разів.

и потом каждый просто активирует свою фичу и один большой лист фич активных по умолчанию

стоять в очередях совсем не весело
предлагаю сделать процесс занятия энвов веселее:
надо назвать энвы энвами силы, ловкости, хитрости, мудрости, храбрости. или энвами земли/воды/воздуха/огня — смотря сколько их у вас и что больше нравится

право на энв можно будет получить пройдя соответствующее испытание

можно добавить возможность объединяться в команды для каких-то энвов. при этом в конце, например, иногда победитель будет только 1 и именно он будет решать судьбу энва.
тогда сразу будет что обсудить на стендапах: эпичные альянсы и предательства, тактики и сборы команд, попытки коррупции и голосование за судьбу энва

как вариант, хранитель энва может придумывать следующее испытание когда будет время его передавать

как будто дешевле еще пару энвов развернуть, если вы по какой-то причине не можете on-demand их поднимать

это просто максимально странно звучит делать приложение чтобы занять очередь там, где ее в принципе не должно быть

еще более странно представить, что заказчик, который не выделил денег на еще пару тестовых энвов/поддержку on-demand энвов, выделит деньги на разработку и саппорт приложухи чтобы занимать очередь =/
это ж ее куда-то еще и задеплоить нужно будет — там вполне мог бы быть еще 1 тестовый энв вместо этого

прототип зато красивенький

Привіт, а у вас на проекті є DevOps, чи хтось на кшталт нього? Бо ця проблема з точки зору операцій, і як раз CD типу argo/flux її вирішують у вигляді автоматизованого створення ефірних середовищ на період тестування

А чому не можна розгорнути окреме середовище під будь-яку команду на вимогу?

Мені здається, що навпаки розклад цей стрес створює. Приклад: я забронював середовище на один день, але не встиг. І що мені робити? Працювати вночі, щоб встигнути? Тому що зранку вже буде інша команда тестувати.

Так і є

Та вот якось не так. Я хочу ось так: натиснув кнопку, запустився скрипт, який створив окремі інстанси сервісів, та надав посилання: my-unique-instance-123123123.myapp.example.com

А там може дійсно було б корисно мати якийсь сайт, який показує хто створив середовище, коли, яка версія сервісів, чи користуються, та кнопку «Видалити».

В Гугл-календарі можна створити ресурси-середовища та букати їх: support.google.com/a/answer/1033925

Підписатись на коментарі