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 токени для своїх колег, з допомогою яких вони можуть входити в систему
✅ Готово — команда працює в єдиному просторі
11 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарівТак буває коли замість апки цілковиті милиці
Використовуйте 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