ООО «Протон» занимается разработкой программного обеспечения по двум направлениям. Первое связано с собственным ПО GANDIVA для бережливого управления компанией. Второе — деятельность как франчайзи 1С. Компания обслуживает крупные организации (например, автохолдинг «АГАТ»), а также средний и малый бизнес, которым предоставляются услуги обслуживания серверов 1С и глубокое программирование. Летом был реализован первый опыт по переносу серверов 1С в Яндекс.Облако.
Задача компании
Заказчиком стала региональная компания с филиалами в общей сложности на 50 рабочих мест. Использовалось гибридное решение из двух серверов Windows Server (непосредственно 1С) + Linux (СУБД PostgreSQL), включая типовые и нетиповые конфигурации. Заказчиком были поставлены две главные задачи:
- оптимизировать ИТ, наладить бесперебойную работу ИТ-систем;
- уйти от использования собственной инфраструктуры, чтобы минимизировать необходимость технического обслуживания.
Первая задача решалась за счет стандартных процедур по налаживанию нормального документооборота (инфраструктура Active Directory, разграничение ролей и доступов, резервное копирование, правильно настроенное сетевое оборудование и прочее). Для решения второй задачи было предложено большую часть инфраструктуры перенести в облако.
Сотрудникам компании «Протон», как франчайзи 1С, постоянно приходится что-то исправлять у заказчиков, которые ранее купили типовую конфигурацию 1С, разместили ее на своих серверах и заказали доработку системы у сторонних программистов. Это становится слабым местом всего решения, ведь, как показывает опыт «Протона», с типовыми конфигурациями (бухгалтерия, зарплата, управление торговлей) проблем не бывает. 99% всех проблем с 1С, включая ошибки и низкую производительность, связаны с переделанными конфигурациями и переписанными отчетами. Обнаруживается это уже в процессе эксплуатации и зачастую связано с использованием БД PostgreSQL, которая обходится дешевле Microsoft SQL Server. PostgreSQL более требовательна к написанию кода, но оценить это у МСБ-заказчика просто нет возможности. Наличие сложностей становится очевидно при появлении постоянных тормозов в базе 1С, зависании программы при простейших манипуляциях, отказе базы данных или неудавшемся бэкапе.
Решение
В компании «Протон» сильный штат программистов 1С и системных администраторов, поэтому переезд был осуществлен своими силами с привлечением техподдержки Яндекс.Облака. Основным используемым сервисом для запуска 1С в облаке стал Yandex Compute Cloud (СУБД PostgreSQL развернули на ВМ).
Процесс миграции занял несколько дней:
- запустили тестовый стенд и копии БД;
- сотрудники клиента протестировали работоспособность системы и дали положительный отзыв;
- перенесли лицензии;
- запросили увеличение квот в техподдержке и перенесли БД.
В процессе миграции и обслуживания специалисты «Протона» столкнулись с необходимостью попутного решения различных задач, мы рекомендуем обратить внимание на три из них и учитывать их при переносе 1С в Яндекс.Облако.
Развертывание веб-сервера
1С работает в режиме тонкого клиента, и в качестве веб-сервиса можно использовать либо штатный IIS, который уже есть в образе Windows Server на платформе Яндекс.Облако, либо сторонний Apache. Попытка использования Apache на Windows Server 2016 привела к зависаниям, снижению скорости работы и отклика (при вполне штатном конфигурационном файле). Вероятно, проблема связана с реализацией MPM под эту ОС (mpm_winnt). На Unix/Linux тестирования не проводилось. В итоге был запущен веб-сервер IIS и это решило проблемы.
Организация сетевого взаимодействия между виртуальной сетью в облаке и локальной сетью клиента
Изначально возникли затруднения при входе из корпоративной сети в 1С, так как использовалось временное решение, сложное в управлении и реализуемое только для Linux (Site2Site VPN до ВМ в облаке и построение отдельного GRE-туннеля с каждого сервера в облаке на эту ВМ). С помощью техподдержки Яндекса было найдено более правильное и простое решение с использованием статических маршрутов (static routes), поэтому, если вам нужен VPN до сервера 1С в облаке, обращайтесь в поддержку за консультацией (static routes сейчас находится в режиме закрытого превью, доступ дается по запросу). Строго говоря, в 1С клиент подключается на внешний IP-адрес web-сервера, описанного в предыдущем пункте. Никаких проблем с этим нет. Для работы 1С в режиме тонкого клиента Site-2-Site VPN не нужен, но он нужен для переноса оставшихся ролей в облако, авторизации и интеграции c инфраструктурой клиента. Кроме того, S2S VPN может быть полезен тем, кто хочет работать с 1С напрямую, минуя web-сервер. В этом случае тонкий клиент подключается непосредственно на TCP-порты кластера 1С и публикация такого сервиса на внешнем IP может быть небезопасна.
Лицензионные ограничения
Программные лицензии платформы 1С привязаны к аппаратному обеспечению, поэтому изменение версии ОС, RAM, CPU влияет на лицензирование. С учетом обращения в техподдержку 1С необходимо дополнительно закладывать 1–2 дня в план миграции.
Результаты
Переезд состоялся, и большая часть инфраструктуры переведена в Яндекс.Облако, таким образом для заказчика решена задача, связанная с техническим обслуживанием. На стороне клиента в итоге останется минимальная инфраструктура, включая локальный контроллер домена.
Вскоре после переезда представилась возможность воспользоваться преимуществами облачных технологий. Кейс связан с тем, что в последний день месяца резко выросла нагрузка на сервер БД. Оказалось, что все менеджеры составляли отчеты, это стандартная практика, которая не была описана в ТЗ, а специалисты «Протона» не могли этого предусмотреть, поскольку не были глубоко погружены в бизнес-процессы компании. При возникновении проблемы через интерфейс Яндекс.Облака была оперативно изменена конфигурация СУБД (конфигурация сервера 1С не менялась, поскольку основная проблема была именно в дефиците оперативной памяти на СУБД из-за неоптимально написанного запроса 1С):
- Было: 4 vCPU (100% гарантированной доли vCPU, Intel Cascade Lake) 8 Gb RAM.
- Стало: 8 vCPU (100% гарантированной доли vCPU, Intel Cascade Lake), 32 Gb RAM.
- Сейчас: 6 vCPU (100% гарантированной доли vCPU, Intel Cascade Lake), 18 Gb RAM.
Этот опыт доказал экономическую привлекательность облачной модели для плавающих нагрузок: удалось и отработать период повышенной нагрузки, и уменьшить стоимость ресурсов облака после их окончания.
Решение первой задачи продолжается. Инфраструктура заказчика продолжает трансформироваться. В сентябре в облако переедут контроллер домена, VPN-сервер, в планах:
- Использовать Яндекс.Облако для резервного копирования архивных данных клиента — Object Storage.
- Реализовать отказоустойчивую конфигурацию СУБД. Настроить асинхронную репликацию данных между зонами Яндекс.Облака. Также тестируется сборка PostgreSQL 1С от Яндекс.Облака.
Яндекс.Облако — новая платформа, она не перегружена, позволяет гибко настраивать тарифный план, и в итоге стоимость услуг очень сильно радует. Пользователь не чувствует разницы между 1С в облаке и на локальном сервере. Более того, уже сейчас функциональные возможности Яндекс.Облака превосходят требования большинства заказчиков из МСБ по размещению 1С в „облаке“. Если у клиента исключительные требования к сохранению конфиденциальности своих данных, убедить его использовать облако будет гораздо сложнее. А вот для тех, кто умеет считать свои деньги и время, кто хочет снять с себя нагрузку, связанную с планированием управления физической инфраструктурой, — для них такой способ размещения ресурсов и управления ими является очень полезным, очень выгодным, очень удобным
отмечает Денис Курманов, начальник технического блока компании „Протон“.