**Постановка задачи:** у клиента понадобилось повысить размеры таблицы conntrack и таблицы маршрутов в ядре для повышения производительности. При этом, текущие значения уже регулируются скриптами. **Решение:** В продукт добавляются 2 опции с размерами: firewall['ipv4.route.max_size.widget']='inputbox "Максимальный размер кеша IPv4 маршрутов" ""' firewall['ipv4.route.max_size']='2621440' firewall['netfilter.nf_conntrack_max.widget']='inputbox "Максимальное количество conntrack" ""' firewall['netfilter.nf_conntrack_max']='1048576' В скриптах константа меняется на значение параметра в конфиге. **Другой пример: ** тест доступности DNS-серверов не успевал получить ответ за timeout по-умолчанию. Решили ввести опцию корректировки: app['dns_timeout']='1' **Ошибка:** Опции продукта предназначены для решения проблем клиентов, а не для экспериментов с настройками параметров и тонкого тюнинга. Какой параметр указать - решает наша система сама, причем несколько параметров в комплексе, рассинхронизация параметров может привести к нестабильности системы. Клиент не должен выбирать системные параметры - это зона ответственности продукта. А у клиента должна быть большая кнопка "Сделать хорошо", причем желательно автоматическая. **Другая, менее очевидная проблема:** гибкая конфигурация на клиенте, либо использование кастомных hook-файлов со спец.настройками на клиентах приводит к тому, что экспертиза, которую получают инженеры тех. поддержки или разработчики, отлаживая клиенсткую систему, **остаются у клиента и не попадают в продукт**, не делают продукт лучше, не развивают его. Даже внутри компании из-за этого данная, уже решенная проблема, может решаться несколько раз разными людьми, из-за того, что экспертиза недостаточно хорошо распространилась. **Как нужно:** Допустим: разработчик нашел проблему, поняв что у некоторых клиентов нужно повышать параметры буфера из-за высокой сетевой нагрузки. Тогда: если изменения подходят всем клиентам - добавляем изменения без опций, если некоторым - делаем 1 опцию типа boolean, которую называем одноименно с проблемой, которую она решает (желательно в продуктовом формате): "Включить оптимизацию для большого количества трафика (более 10 гигабит/сек)". Если опция еще не отлажена, т.е. не собрано достаточно примеров что эта опция хорошо работает на разных конфигурациях, можно указать что опция экспериментальная. Если это спец.конфигурация для нагруженных инсталляций, потом к ней могут привязываться другие изменения. **Что нужно было сделать с DNS: ** нужно сделать опцию "DNS сервера могут долго отвечать", если нам нужно это контроллировать или просто поднять таймаут в самом скрипте без опции. ~~OWNERAPPROVE~~ /*Не удаляйте эту строку и ниже!*/ {(rater>id=1|name=Прочитал_правила_разработки:2018-12-11_непродуктовые_опции_в_конфигурации|type=vote|trace=user|tracedetails=1)}