реклама
разместить

Как по нытью разработчиков понять, что вам нужны фича-серверы

Привет, это Максим Павлов из KTS.

Я уже писал о том, как фича-серверы ускоряют Time To Market.

Как по нытью разработчиков понять, что вам нужны фича-серверы

Что такое фича-серверы (динамические окружения)

У каждого разработчика столько серверов, сколько фичей у него в работе
У каждого разработчика столько серверов, сколько фичей у него в работе

Динамические окружения, или фича-серверы, позволяют разработчикам тестировать все фичи независимо друг от друга на актуальной копии сервиса. При таком подходе разработчики не мешают друг другу, распутывая клубки конфликтующих изменений в разных фичах. В этой статье расписал красные флаги, которые дадут понять, что вам нужны фича-серверы.

👨‍💼: «Где можно проверить новую фичу?»

👨‍💻: «Пока нигде, тестовый сервер занят»

Чтобы фичи разных разработчиков не наслаивались, разработчики могут договориться занимать сервер по очереди
Чтобы фичи разных разработчиков не наслаивались, разработчики могут договориться занимать сервер по очереди

Ситуация: Разработчики решили проблему наслоения изменений запуском нескольких тестовых серверов. Теперь им приходится договариваться между собой — кто, когда и на каком сервере тестирует фичу.

Пока одни разработчики тестируют — другие простаивают. Работа замедляется.

Как решают проблему фича-серверы

После того, как фича готова к показу, под нее автоматически создается отдельный адрес, на котором можно ее изолированно протестировать.

Разработчику не надо ждать, когда тестировщик протестирует чужую фичу или подчищать сервер после предыдущего разработчика.

👨‍💼🧑‍🏫👨‍✈: Решают, что 5 из 10 фич с теста должны поехать в продакшн

👨‍💻: Ругается, что ему опять придется что-то там пересобирать

Чтобы отправить в продакшн только стикеры с зелёными доработками нужно собрать отдельную версию только с этими фичами
Чтобы отправить в продакшн только стикеры с зелёными доработками нужно собрать отдельную версию только с этими фичами

Ситуация: к моменту релиза на тесте скопились фичи разной степени готовности. Чтобы не ждать недоделанные фичи, принимается решение выкатить в продакшн только готовые доработки.

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

Почему так происходит

То, что мы видим на сервере – это комбинация из разных веток, вручную собранных последним разработчиком, который выкатывал свои изменения на тестовый сервер.

Если выкатить нужно не все эти изменения, а выборочно, то разработчику сначала придется собрать нужные изменения в отдельную ветку. Она потом поедет в продакшн.

Как решают проблему фича-серверы

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

Но нельзя забывать, что в таких ситуациях нужен еще отдельный stage-сервер. Он должен быть максимально похож на продакшн-сервер, и на него выкатываются только изменения, которые должны ехать в продакшн.

👨‍💻: «Тестовый сервер разломался, потому что накопилось много старых фичей»

Если фичи слишком наслоились друг на друга, сервер может сломаться
Если фичи слишком наслоились друг на друга, сервер может сломаться

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

Почему так происходит

Разработчики тестировали все задачи на одном сервере. Сначала это работало, потому что фичей было не так много и они касались разных частей проекта, поэтому не мешали друг другу. Но как только задачи стали наслаиваться, начались проблемы.

На первых порах конфликтующие изменения можно распутать, если потратить на это дополнительные ресурсы. Но обычно число незавершенных задач растет и рано или поздно накопившиеся конфликты ломают сервер.

Тестирование всех фичей блокируется.

Как решают проблему фича-серверы

С использованием фича-серверов проблема наслоения фичей друг на друга уходит полностью, так как каждая фича тестируется на отдельном сервере. Ничего не ломается.

👨‍💻: «Сегодня я занимался только разворачиванием проекта»

<p>3й рабочий день новый сотрудник разворачивает контейнеры веб сервиса у себя на компьютере и не может взять рабочие задачи</p>

3й рабочий день новый сотрудник разворачивает контейнеры веб сервиса у себя на компьютере и не может взять рабочие задачи

Ситуация: в команду пришел новый разработчик, который первый день (или даже несколько дней) занимался только развертыванием проекта у себя на компьютере и не брал рабочие задачи.

Почему так происходит

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

Как решают проблему фича-серверы

Чтобы ветки разворачивались автоматически, DevOps инженеры «программируют» выполнение всех нужных действий по развертыванию. Не имеет значения — развернуть сервис под отдельную ветку или развернуть его на компьютере разработчика.

Развертывая сервис на своем компьютере, разработчик запускает только одну команду, а все остальное происходит автоматически. Это помогает ускорить онбординг новых разработчиков.

С чего же начать?

Можно начать внедрять фича-серверы самостоятельно, а можно написать нам. По нашим опросам, в зависимости от опыта команды настройка фича-серверов может занимать от 4 до 6 месяцев, мы же делаем это за две недели.

Пишите мне в телеграм.

2525
реклама
разместить
15 комментариев

Интересно, как вы делаете раворачивание фича-бекенд-серверов? В двух словах, если можно. С фронтом, кажется, нет проблем, есть кучу сервисов типа нетлифай или AWS, где это делается "связкой" с репозиторием, или можно написать скрипт, который будет класть сборку в S3 – дешево и сердито)

В следующей статье расскажу чуть подробнее, подпишитесь :)

Но если кратко, то в базе заводим отдельный неймспейс для экономии ресурсов и если надо протестить вместе фронтовую и бэкенд ветку, то указываем это при сборке

2

ну или новые разработчики

Шоколад не виноват:)

А "нытьё", о котором я рассказал в статье не показатель того что программисты плохие, а что тупо нет одного инструмента

1

Интересная история, разве поднятие виртуалки с развернутым софтом на ней не базовая задача для индустрии ИТ сегодня? Это нужно просто, чтобы хотя бы интеграционные тесты прогнать.
У нас перед каждым коммитом в мастер бранч прогоняется все юнит тесты и основные интеграционные.

Асинхронно прогоняются все интеграционные, performance и юнит тесты для всех комбинаций архитектур и платформ, которыми пользуются наши клиенты - Windows, macOS, Linux/AMD64, ARM, IBM... Автоматически детектируются коммиты, которые сломали что-либо. Включая perf.

Вот поднять такую инфраструктуру сложно, а разворачивание ПО на одной виртуалке - это просто маленький винтик в ней.

В предыдущей статье автор утверждал, что у них там очень много клиентов, которые о никаких CI/CD слыхом не слыхивали, и деплоят руками

Термином "сервер" я сознательно упростил менее понятное "окружение". Технически это всё развертывается в кубернетесе и билд пропускается через стандартный процесс CI/CD, где запускаются все автотесты

Мы занимаемся в основном веб и мобильной разработкой, статья про именно про веб проекты. Поэтому задачи про тестирование на нескольких архитектурах и платформах не стоит. Но в остальном всё делаем также как вы и сказали

Раскрывать всегда
«Наниматель попросил убрать из видео надпись "Тестовое задание". Отказал ему, а он — мне»: в Х обсуждают, как компании «разводят» соискателей

И как последние учатся с этим бороться.

6565
99
22
11
11
О, моя остановочка. Вообще теперь почти никогда не делаю тестовые
реклама
разместить
60 запросов, 21 ответ, ноль подтверждений: The Bell опросило крупнейший по выручке западный бизнес о планах вернуться в Россию

О его возможном возвращении заговорили российские власти — предупредив, что условия будут жёсткими.

Источник фото: Lenta.ru
2323
77
11
Снова инвестировать в страну где у тебя уже конфисковали активы, где коррумпированная судебная, правовая, да и в принципе вся система? Где права инвестора ни чем не защещены, где законы принимаются только с одной формулировкой - запретить?
«Не ври». Лёгкий роман на вечер, если ищете, что почитать 😉

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


«И не то чтобы прямо играла кровь…».


Нет, совсем нет, я не влюбилась в него тут же, меня не поразил Амур в самое сердце. Я см…

«Не ври». Лёгкий роман на вечер, если ищете, что почитать 😉
11
В App Store появился сервис Touch Grass — он блокирует приложения на смартфоне до тех пор, пока пользователь не потрогает траву

Работает по подписке, есть бесплатная версия с ограничениями.

77
55
11
- Гражданин, закладки на газоне ищем? - Да нет, мне просто нужно срочно потрогать траву... это такое приложение... - Ваши документы
«Автотор» собрал партию BMW из старых деталей — автопроизводитель заявил, что не несёт за них ответственность

Группа сообщила, что использование этих автомобилей «может создать потенциальные риски для жизни».

Источник фото: Unsplash
4040
77
22
11
11
11
А цена, как раньше, но ещё +20% сверху?)
У наушников Apple AirPods появится функция синхронного перевода — Bloomberg

Устройство будет распознавать речь на иностранном языке и переводить её пользователю на нужный.

Источник фото: The Verge
100
3737
1717
11
Наконец-то можно будет подслушивать о чем говорят цыгане в маршрутке!
Как изменятся коммуникации сотрудников российских компаний на работе в 2025 году?

Исследование разработчика онлайн-сервисов для бизнес-коммуникаций MANGO OFFICE

Как изменятся коммуникации сотрудников российских компаний на работе в 2025 году?
11
Досье на телефонных мошенников: Forbes узнал детали концепции государственной антифрод-системы

Банки, госорганы, операторы и маркетплейсы смогут обмениваться данными о подозрительных номерах и счетах мошенников, а жертвы передавать подробности о звонках.

Фото «Интерфакс» 
88
88
Если много лет бороться с критическим мышлением на всех уровнях образования, получаешь большое количество доверчивых (в плохом смысле слова) граждан. И никакими обменами информацией и реестрами это не исправишь.
Как я вложил 1,5 года жизни и 50 миллионов в проект, который должен был занять месяц, а теперь мои клиенты зарабатывают больше меня

Меня зовут Вячеслав. В 2014 году я был фрилансером и делал заказы за 3000 рублей. Сегодня развиваю платформу, где предприниматели запускают проекты без программистов: один создал HR-платформу, другой за 90 дней собрал мобильное приложение для торговли с Азией, третий прошел акселерацию ФРИИ и вошел в топ-25 из 150 заявок.

Вот тут считали сколько остается до запуска, наивные) 
2323
33
11
реклама
разместить
ИТ-компании попросили у правительства поддержки на случай возвращения иностранных игроков — РБК

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

7676
1010
11
11
О, дотационные додики заскулили… ничего не могут сделать в конкурентной среде.
Random Coffee: что это такое?

Средство, которое стоит принимать при первых симптомах одиночества и скуки

Random Coffee: что это такое?
3535
[]