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

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

Привет, это Максим Павлов из 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, где запускаются все автотесты

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

Раскрывать всегда
Купил 1900 тюльпанов на 114 000 рублей и пытаюсь продать на 8 марта. Реальные цифры, первый опыт.

Не перевелись на Руси энтузиасты с жилкой фарцовщины, братцы! Сколько можно заработать на тюльпанах накануне 8 марта.

Купил 1900 тюльпанов на 114 000 рублей и пытаюсь продать на 8 марта. Реальные цифры, первый опыт.
3535
66
55
33
11
11
реклама
разместить
Что нужно знать о зумерах, чтобы команда не обновляла резюме

Я собрал самые популярные мифы о зумерах (поколении Z, родившихся примерно с 1997 по 2012 год) и проверил их на основе последних исследований.

Действительно ли зумеры ленивые?
1313
Сколько зумеров нужно, чтобы поменять лампочку? Один, но ему нужно сначала объяснить, какой "смысл" в этом действии, обеспечить work-life баланс во время замены и выдать сертификат о новом скилле после. 🤣🤣🤣
Кейс: Разработка сайта с личным кабинетом для компании АЭР
Кейс: Разработка сайта с личным кабинетом для компании АЭР
33
День 1120: Fix Price запустится в Сербии

Собираем новости, события и мнения о рынках, банках и реакциях компаний.

Источник фото: РБК
66
11
11
«Политика, борщ — всё пойдёт в топку!»: в веб-версии Grok появились «персоны» — в том числе с рейтингом «18+»

Когда их добавят в X и приложения — неизвестно.

С такой шутки бот начал диалог. Скриншот vc.ru
77
22
📖 Почему лонгриды всё ещё конвертят лучше коротких постов
📖 Почему лонгриды всё ещё конвертят лучше коротких постов
55
Nvidia представила базовую модель для роботов-гуманоидов GR00T N1 с опцией рассуждений — её обучали в том числе на синтетических данных

У решения с открытым исходным кодом 2 млрд параметров.

1212
11
Предприниматель Питер Левелс сгенерировал игру с помощью нейросети и получил $87 тысяч за первый месяц — с рекламы, подписок и продажи предметов

На создание онлайн-авиасимулятора у него ушло три часа.

3434
1313
77
Сомневаюсь, что это бы хоть кому то было интересно и хоть что то бы зарабатывало без волшебной фразы "сгенерировано ИИ", в точности как было с бумом доткомов, где приставка .com прибавляла стоимости и популярности больше, чем сам продукт. Люди не меняются. Глупость лишь множится.
«Нет смысла держать товары на складах»: продавцы «Мегамаркета» пожаловались на падение продаж

С начала 2025 года маркетплейс перешёл на экспресс-доставку и не возит заказы по России.

77
реклама
разместить
Играю я для души, а так у меня бизнес есть. Собрал 16 игр для прокачки навыков предпринимателя!

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

Играю я для души, а так у меня бизнес есть. Собрал 16 игр для прокачки навыков предпринимателя!
7474
1313
55
33
33
Нужно в нарды играть с нужными человечками города - тогда и бизнес пойдет
Новые правила игры и сервис от Авито - ТОП 3 изменения площадки в начале 2025 года

Авито постоянно выкатывает обновления, которые касаются работы платформы. В статье поговорим о нововведениях в ранжировании объявлений с помощью искусственного интеллекта и как на это влияет локация в объявлении, а также о возможности найти подработку на Авито.

Новые правила игры и сервис от Авито - ТОП 3 изменения площадки в начале 2025 года
77
22
11
[]