← На главную
При активном развитии информационной системы 1С, увеличении количества пользователей и найме новых разработчиков, рано или поздно встает вопрос о необходимости отдельного сервера для разработки. Текущий "боевой" сервер начинает работать на пределе, а одновременная работа пользователей и программистов приводит к снижению производительности и жалобам. Давайте подробно разберем, как эффективно организовать сервер для разработки 1С, какие существуют варианты лицензирования и на что обратить внимание при выборе аппаратного и программного обеспечения.
Зачем нужен отдельный сервер для разработки 1С?
Вы, как и многие другие, сталкиваетесь с ситуацией, когда основной сервер не справляется с нагрузкой, особенно при работе нескольких программистов. Наш опыт показывает, что использование отдельного сервера для разработки является критически важным для стабильной и эффективной работы предприятия.
- Стабильность и безопасность "боевой" системы: Разделение сред разработки и эксплуатации позволяет избежать влияния ошибок разработчиков на работу пользователей в основной базе. Некорректные запросы, зависания или падения сервера во время отладки могут нарушить бизнес-процессы и привести к простоям. На отдельном сервере мы можем безопасно тестировать изменения, не опасаясь за основной учет.
- Масштабируемость: По мере роста компании и увеличения числа пользователей, а также интенсивности разработки, нам требуется больше ресурсов. Отдельный сервер позволяет гибко наращивать мощности, упрощать обновление и оптимизировать работу с памятью.
- Контроль доступа и прав: На отдельном сервере мы можем более точно настроить права доступа для разработчиков и системных администраторов, не затрагивая настройки основного сервера.
- Снижение нагрузки: Операции в конфигураторе, такие как сравнение/объединение конфигураций, обновление платформ и релизов, могут быть чрезвычайно ресурсоемкими. Вы справедливо отмечаете, что память сервера может доходить до 85% при работе программиста, что неминуемо влияет на пользователей. Отдельный сервер снимает эту нагрузку с основного.
Варианты организации сервера для разработки 1С:Предприятия
Мы рассмотрим несколько подходов к организации сервера разработки, учитывая различные бюджеты и требования.
1. Отдельный физический или виртуальный сервер для разработки
Это наиболее рекомендуемый вариант, который обеспечивает максимальную изоляцию и контроль. Давайте подробно разберем его компоненты.
Аппаратное обеспечение:
Не существует универсальной конфигурации сервера для 1С, подбор всегда индивидуален, но мы можем выделить общие принципы:
- Процессор: Для 1С важны как количество ядер, так и тактовая частота. Современные версии платформы 1С:Предприятие 8.3 более эффективно используют многоядерность, однако высокая тактовая частота все еще играет ключевую роль, особенно для таких операций, как формирование отчетов, фоновые задания и работа конфигуратора. Мы рекомендуем иметь запас по ядрам (на 30-40% больше минимально необходимых).
- Оперативная память (ОЗУ): Объем ОЗУ критически важен для производительности 1С. Для вашей базы в 270 Гб и 50 пользователей, 128 ГБ ОЗУ, указанные вами, могут быть недостаточными, особенно при активной работе разработчиков и накаткой обновлений. Сервер 1С и СУБД активно кэшируют данные в ОЗУ. Мы рекомендуем иметь запас ОЗУ на 30-50% от минимально необходимого для комфортной работы. Использование ECC (Error-Correcting Code) памяти повышает надежность системы.
- Дисковая подсистема: Скорость дисковой подсистемы сильно влияет на производительность 1С, особенно при большой базе и интенсивных операциях записи/чтения (обновления, проведение документов).
- NVMe SSD: Накопители NVMe SSD обеспечивают самую высокую производительность по сравнению с обычными SSD и HDD. Мы рекомендуем их для максимальной отдачи.
- RAID-массивы: Использование RAID-массивов повышает отказоустойчивость и производительность дисковой подсистемы. Например, RAID 10 (1+0) обеспечивает хорошую производительность и защиту данных. Мы рекомендуем проконсультироваться с системными администраторами по поводу настройки RAID.
- Запас дискового пространства: Рекомендуется иметь запас дискового пространства 50-100% от текущего объема базы для роста и временных файлов.
Операционная система и СУБД:
Выбор ОС и СУБД для сервера разработки может значительно повлиять на стоимость лицензирования и гибкость решения.
- Microsoft Windows Server + MS SQL Server: Это традиционная, но наиболее дорогая связка. Она обеспечивает высокую производительность и привычный интерфейс, но требует значительных затрат на лицензии Windows Server и MS SQL Server. Если ваш "боевой" сервер работает на этой связке, то тестовый на такой же конфигурации обеспечит максимальную идентичность сред.
- Linux + PostgreSQL: Это экономичный и эффективный вариант, который становится всё более популярным.
- Экономия: Использование Linux (например, Ubuntu Server, Debian) и PostgreSQL позволяет существенно сэкономить на лицензиях Microsoft Windows Server и Microsoft SQL Server, так как эти компоненты являются бесплатными.
- Совместимость и производительность: Для работы 1С с PostgreSQL требуется специальная версия СУБД, содержащая необходимые патчи. Мы можем скачать такую версию с портала 1С или от компаний, поддерживающих PostgreSQL для 1С (например, 1c.postgres.ru).
- По нашему опыту, существуют различные мнения относительно производительности. Некоторые тесты показывают, что 1С на MSSQL может работать быстрее, чем на PostgreSQL (до 1.5 раз) для определенных операций. Однако другие тесты, в том числе с использованием "теста Гилева", показывают незначительную разницу в производительности (около 3%) для типовых конфигураций. Сравнения на 500 пользователей также демонстрируют схожие результаты.
- Важный момент: Если конфигурация нормально работает на PostgreSQL, то на MSSQL она будет работать точно. Однако, если мы будем тестировать на MSSQL, а в прод выпускать на PostgreSQL, могут возникнуть "сюрпризы". MSSQL гораздо лучше оптимизирует "кривые" запросы 1С-"погромистов", поэтому он легче переваривает неоптимальный код. Мы рекомендуем стремиться к максимальной идентичности сред боевого и тестового серверов по стеку ОС/СУБД, или как минимум тестировать на более "строгой" СУБД, чтобы убедиться в качестве запросов.
- Настройка: Установка сервера 1С на Linux и PostgreSQL включает подготовку операционной системы, установку сервера 1С, PostgreSQL, настройку PostgreSQL для работы с 1С, создание баз 1С и настройку HASP Licence Manager. Создание баз 1С для PostgreSQL должно производиться средствами 1С, а не напрямую в СУБД.
Лицензирование программного обеспечения для сервера разработки:
Это один из ключевых вопросов, который вызывает много опасений. Разберем необходимые лицензии:
- Лицензия на сервер 1С:Предприятия:
- Лицензия разработчика (Community-лицензия 1С): Это отличный вариант для сервера разработки. Фирма "1С" предоставляет бесплатные комьюнити-лицензии для обучения и разработки собственных конфигураций, начиная с версии платформы 8.3.23. Эти лицензии не имеют функциональных ограничений с точки зрения задач разработки и могут быть получены после регистрации на портале developer.1c.ru.
- Ограничения: Комьюнити-лицензия имеет ограничения по количеству одновременных сеансов: не более 3 сеансов с прямым подключением (через толстый/тонкий клиент), не более 1 сеанса через веб-сервер, не более 1 сеанса клиента "1С:Аналитики" и не более 1 сеанса мобильного клиента. Этих ограничений обычно достаточно для небольшой команды разработчиков.
- Продление: Такие лицензии необходимо продлевать раз в неделю, и для этого требуется доступ в интернет с сервера 1С, что может быть нежелательно с точки зрения безопасности. Существуют решения для автоматической установки и продления комьюнити-лицензий на сервере без графического интерфейса.
- Сервер 1С:Предприятия МИНИ на 5 подключений: Это бюджетная лицензия на сервер платформы 8.3 (ПРОФ) с ограничением до 5 пользовательских сеансов в режиме "Предприятие" и одним сеансом в режиме "Конфигуратор". Это может быть хорошим вариантом, если комьюнити-лицензия не подходит (например, из-за необходимости постоянного доступа к интернету для продления) и требуется более стабильное решение с фиксированным сроком действия.
- Полноценный сервер 1С:Предприятия: Если ваша команда разработчиков большая или требуется больше сеансов конфигуратора/пользователей на тестовом сервере, вам может потребоваться полноценная лицензия на сервер 1С:Предприятия.
- Клиентские лицензии 1С: Лицензия разработчика включает в себя 3 клиентских сеанса при прямом подключении к серверу. Если этого недостаточно для вашей команды, мы можем докупить дополнительные клиентские лицензии 1С.
- Отраслевое решение: Это один из самых спорных вопросов. Вы отмечаете, что системщики и франчайзи говорят о необходимости покупки отдельной поставки отраслевого решения. Однако, другие источники утверждают, что для тестовой базы отраслевое решение покупать не нужно, так как отраслевая лицензия является клиентской и не связана с серверной.
- Наше понимание: Отраслевая лицензия, как правило, является клиентской и "привязывается" к конкретным пользователям или рабочим местам, а не к серверу 1С. Она проверяется на уровне конфигурации. Если вы используете одну и ту же конфигурацию, то по логике, лицензии, уже купленные для основного решения, должны работать и на тестовом, если они не привязаны жестко к определенным аппаратным ключам, которые не могут быть дублированы. Мы рекомендуем дополнительно прояснить этот вопрос с техподдержкой разработчика отраслевого решения, уточнив возможность использования уже имеющихся лицензий для целей разработки на отдельном сервере, или возможность использования специальной "тестовой" лицензии. Это критически важно для сокращения расходов.
- Лицензии RDP (RDS CAL) для разработчиков: Если вы планируете, что несколько разработчиков будут подключаться к серверу через RDP, вам потребуются клиентские лицензии Remote Desktop Services (RDS CAL). Это не "выдуманная проблема", а вполне реальное лицензионное требование Microsoft. Системные администраторы могут помочь с подбором и покупкой этих лицензий.
2. Модернизация существующего "боевого" сервера (как временное или частичное решение)
Вы упомянули, что год назад делали апгрейд, но сервер все равно работает на пределе. Это подтверждает, что даже мощное железо может быть перегружено при одновременной работе 50 пользователей и интенсивной разработке. Однако, если отдельный сервер пока не вариант, мы можем рассмотреть следующие действия:
- Дополнительный апгрейд ОЗУ: Если 128 ГБ уже недостаточно, а база продолжает расти и нагрузка увеличивается, мы можем рассмотреть увеличение объема оперативной памяти. Это часто дает быстрый и заметный эффект.
- Улучшение дисковой подсистемы: Убедитесь, что используются самые быстрые диски (NVMe SSD) и они объединены в оптимальный RAID-массив для 1С (например, RAID 10).
- Тонкая настройка: Иногда проблема не только в железе, но и в настройках ОС, СУБД или самого сервера 1С.
Важно: Модернизация "боевого" сервера не решает проблему конфликтов и рисков, связанных с разработкой. Инцидент, когда аутсорс-разработчики "положили" сервер два раза из-за неоптимального запроса, ярко демонстрирует эти риски. Отдельный сервер для разработки – это инвестиция в стабильность и непрерывность бизнеса.
Организация командной разработки и удаленной работы
С появлением второго программиста нам необходимо грамотно организовать совместную работу.
- Хранилище конфигурации: Это ключевой инструмент для групповой разработки в 1С. Оно обеспечивает версионирование, позволяет отслеживать изменения, сделанные каждым разработчиком, и предотвращает одновременное изменение одного и того же объекта разными людьми. Хранилище может быть размещено на любом ПК под Windows или Linux и является бесплатным компонентом платформы 1С. Мы настоятельно рекомендуем его использование.
- RDP для разработчиков:
- Терминальный сервер Windows Server: Если вы используете Windows Server, для нескольких разработчиков, работающих через RDP, можно настроить терминальный сервер с соответствующими клиентскими лицензиями Remote Desktop Services (RDS CAL). Это позволяет каждому разработчику иметь свою полноценную сессию.
- RemoteApp: Мы можем настроить запуск 1С в режиме RemoteApp, когда пользователю видна только программа 1С, а не весь рабочий стол сервера. Это удобно и экономит ресурсы.
- Несколько экземпляров сервера 1С на одном компьютере: Вы не совсем поняли про "несколько серверов 1С". Мы можем запустить несколько экземпляров службы сервера 1С на одном физическом компьютере, каждый на своем порту. Например, один для боевой базы, другой для тестовой. Это позволяет гибко распределять ресурсы и настройки для разных баз. У вас, вероятно, так сделано с базами БУХ и ЗУП, если они используют разные платформы или экземпляры сервера 1С. Однако помните, что нагрузка от этих экземпляров все равно суммируется на одном физическом железе.
Оптимизация производительности 1С и базы данных
Помимо апгрейда железа, для улучшения производительности 1С мы можем проводить следующие действия:
- Анализ текущей конфигурации сервера 1С: Выявление слабых мест и определение наиболее эффективных изменений. Мы можем использовать специализированные инструменты и методики (например, gilev.ru предлагает отличные материалы по этой теме) для проведения аудита.
- Настройка параметров сервера 1С: Оптимизация размера ОЗУ, количества ядер, выделяемых для рабочего процесса сервера 1С (rphost), и других параметров может значительно повлиять на производительность.
- Оптимизация базы данных:
- "Тестирование и исправление" информационной базы (ТиИ): Регулярное выполнение этой процедуры помогает находить и устранять ошибки, некорректные итоги, "битые" ссылки, устаревшие объекты. Мы можем оптимизировать структуру базы и восстановить корректность данных.
- Индексирование: Правильное индексирование таблиц базы данных значительно ускоряет выполнение запросов.
- Регламентные задания СУБД: Для MS SQL Server и PostgreSQL необходимо настраивать регламентные задания по перестроению индексов и актуализации статистики.
- Нагрузочное тестирование: Для выявления "узких" мест в производительности и оценки реакции системы на большое количество пользователей мы можем использовать такие инструменты, как Apache JMeter или "1С:Тест-центр".
Консультации и обучение
Вы ищете обучение или консультации, и это правильный подход. Мы можем рекомендовать следующие ресурсы:
- Гилев.ру: Это авторитетный специалист по производительности 1С. На его сайте gilev.ru вы найдете множество полезных статей, вебинаров и платных курсов по администрированию и оптимизации 1С. Вы можете обратиться к нему за профессиональной консультацией по подбору конфигурации сервера под ваши кастомные задачи.
- Тринити: Компания "Тринити" также известна своими компетенциями в области серверных решений и оптимизации 1С. Мы можем обратиться к ним за консультацией или помощью во внедрении.
- Онлайн-курсы: Для углубления знаний по администрированию Linux и PostgreSQL, а также по особенностям их работы с 1С, доступны специализированные онлайн-курсы на различных платформах.
- Официальные ресурсы 1С: Порталы its.1c.ru и developer.1c.ru содержат обширную документацию и методические материалы по платформе 1С:Предприятие.
Заключение
Наш анализ показывает, что отдельный сервер для разработки 1С – это не просто желаемое, а часто необходимое решение для обеспечения стабильности, безопасности и эффективности работы вашей информационной системы и команды разработчиков. Мы видим, что есть пути существенно сократить затраты на лицензирование, выбирая связку Linux + PostgreSQL и используя лицензию разработчика 1С. Комплексный подход, включающий оптимизацию аппаратного обеспечения, грамотный выбор программного стека и использование инструментов командной разработки, позволит вам эффективно развивать вашу систему 1С, не опасаясь за ее производительность и стабильность.