Представим счёт за миграцию, который принёс подрядчик. Аренда сервера в нём занимает одну строку, причём не самую длинную. Выше стоят «аудит выгрузки», «сопоставление полей», «перенос вложений», «настройка ролей». Ниже идут «обучение команды», «параллельный период» и «поддержка в первый месяц». Читатель, который пришёл с вопросом «сколько стоит VPS вместо подписки», обычно удивляется: оказывается, сервер — самая предсказуемая часть задачи. Дорого и непредсказуемо всё, что вокруг него.
Эта статья разбирает такой счёт по статьям. Мы не будем обещать срок окупаемости: он зависит от числа пользователей, объёма данных, ставок людей и от того, что именно вы заменяете. Вместо этого соберём условный бюджет с переменными, куда можно подставить свои цифры, и посмотрим, какие возможности SaaS разумно оставить как есть.
Почему «подписка минус сервер» не отвечает на вопрос
Простая формула выглядит так: платили за SaaS столько-то в месяц, сервер стоит меньше, разница — экономия. Формула не врёт, она просто неполная. В ней нет труда людей, нет времени, когда работают обе системы, и нет того, что в SaaS было включено в цену незаметно: обновления, мониторинг, восстановление после сбоев, поддержка вендора, соответствие требованиям.
Методология оптимизации затрат облачного провайдера связывает расходы с функциональными требованиями, использованием ресурсов и согласованием спроса с мощностью (AWS Well-Architected Cost Optimization Pillar). Из этого можно вынести полезную мысль, применимую и к переезду: сначала выясняют, какие функции вам нужны, и только потом считают, чем их обеспечить. Если вы пользовались двадцатью процентами возможностей SaaS, сравнивать нужно не «продукт с продуктом», а «ваши двадцать процентов» с их самостоятельной реализацией. Иногда выходит выгодно, иногда нет, и это честный результат.
Удобно разделить стоимость перехода на три разовых блока и два регулярных:
- Подготовка данных — разовый блок: выгрузка, очистка, сопоставление, проверка.
- Настройка замены — разовый блок: установка, роли, интеграции, резервные копии, мониторинг.
- Обучение людей — разовый блок, который часто забывают включить.
- Параллельный период — временный расход: две системы оплачиваются одновременно.
- Сопровождение — регулярный расход: обновления, инциденты, контроль места, восстановление.
Теперь пройдём по ним в том порядке, в котором они случаются.
Подготовка данных: самая недооценённая строка
Чаще всего смета ломается именно здесь. Кажется, что у SaaS есть кнопка «экспорт», а у новой системы — кнопка «импорт», и между ними нет работы. На практике между ними лежит несколько отдельных задач.
Экспорт: что вообще отдаёт сервис
Первый вопрос — полнота выгрузки. Некоторые сервисы отдают таблицы, но не отдают историю изменений, комментарии, права доступа, вложения или связи между объектами. Часть данных приходится собирать через API с ограничением частоты запросов, а это растягивает выгрузку на часы или дни. Пока вы не сделали пробный экспорт, оценка срока — гадание. Поэтому первая рабочая единица бюджета — не «миграция», а пробная выгрузка на копии небольшого фрагмента данных и осмотр результата.
Очистка и сопоставление
За годы работы в любой системе накапливаются дубликаты, умершие учётные записи, поля «Прочее 2» и справочники, которые создавал сотрудник, давно уволившийся. Перенос без очистки переносит и мусор, причём платить за него придётся дважды: сначала за перенос, потом за поиск ошибок. Сопоставление полей — отдельный труд: в старой системе «статус» мог быть списком из семи значений, а в новой их пять, и кто-то должен решить, куда деваются два лишних.
Чтобы сопоставление не превращалось в споры в чате, заведите таблицу соответствий, где у каждого поля старой системы есть три колонки: куда оно переходит, по какому правилу преобразуется и кто принял решение. Пример с семью статусами и пятью значениями: «На паузе» и «Ждёт клиента» можно слить в «Ожидание», но тогда исчезнет различие, по которому, возможно, строился еженедельный отчёт. Значит, до переноса надо выяснить, кто и как этот отчёт читает. Это час разговора с владельцем процесса, а не часы правок после запуска, когда карточки уже перемешаны.
Есть и арифметика, которую удобно держать перед глазами. Если в выгрузке 12 000 карточек и вы проверяете вручную хотя бы по одной из двухсот, это 60 карточек. При пяти минутах на сложную карточку выходит пять часов труда, и их стоит сразу записать в Hд, а не считать «побочным занятием». Числа здесь иллюстративные: у вашего проекта объём и сложность карточек будут другими, но принцип одинаков: выборочная проверка имеет цену, пропорциональную числу записей и их сложности.
Вложения и объём
Вложения — это файлы, а файлы весят. Здесь есть и денежная сторона. Если ваши вложения лежат в объектном хранилище, стоимость такого хранения зависит от нескольких составляющих: хранения, запросов, извлечения и передачи данных, а также класса хранения и дополнительных функций (Amazon S3 pricing). Для переезда важно слово «извлечение»: вытащить большой архив из облака может стоить отдельных денег, и эту строку полезно выяснить до начала, а не после. Кроме того, на диске VPS эти файлы займут место, значит, придётся оценить объём и запас под рост.
Проверка результата
Проверять перенос нужно не взглядом «вроде всё на месте», а сверкой: количество записей до и после, выборочное сравнение сложных карточек, открытие вложений разных типов, проверка прав на нескольких реальных ролях. Если для хранения копий вы используете restic, полезно помнить, что восстановление позволяет извлечь выбранный снимок в отдельную директорию, а значит, результат можно сначала осмотреть, не трогая рабочие данные; при этом фильтры по пути снимка и по включаемым файлам — разные действия (Restic: восстановление). Тот же принцип пригодится и при миграции: сначала разворачиваем во временное место, смотрим, потом переключаем.
Настройка замены: сервер — лишь основание
Когда данные понятны, начинается сборка самой системы. Тут и появляется строка «аренда VPS». Она небольшая, но к ней добавляется труд: установка приложения, домен и сертификат, почта для уведомлений, роли и права, интеграции с тем, что работает рядом, резервное копирование, мониторинг свободного места и состояния сервиса.
О ресурсах стоит думать как об отправной точке для теста, а не как о гарантии. На сайте MAATRIX в публичном предложении перечислены конфигурации: Ba — 1 vCPU, 2 ГБ RAM, 40 ГБ NVMe; Uab — 2 vCPU, 4 ГБ, 80 ГБ; Heka — 4 vCPU, 8 ГБ, 160 ГБ; Maat — 8 vCPU, 16 ГБ, 240 ГБ; Djed — 16 vCPU, 32 ГБ, 320 ГБ. Эти цифры не равны обещанию ёмкости: сколько пользователей выдержит ваш сервис, покажет нагрузочная проверка на ваших данных. Зато они позволяют прикинуть, с какой ступени начинать. Небольшая команда с лёгким инструментом может уложиться в младшие, а система с большим архивом вложений быстро упрётся в диск, и тогда решает не процессор, а объём NVMe.
Для некоторых задач есть готовые пути. В публичном каталоге предложений MAATRIX есть n8n и Nextcloud с установкой, но точное наличие и операционная система уточняются в форме заказа. Если вы уходите с облачного файлообменника, Nextcloud — естественный кандидат; если заменяете сервис автоматизаций, то n8n. Установка при этом закрывает лишь часть работы: роли, интеграции и копии всё равно остаются на вас. Также у VPS есть root-доступ, и это одновременно возможность и ответственность: всё, что SaaS делал за вас, теперь делаете вы.
Разберём на примере, почему готовая установка не равна готовой замене. Допустим, вы заменяете облачный файлообменник на Nextcloud. Само приложение будет стоять быстро, но дальше начинается список: перенести структуру папок и права на них, решить, что делать со ссылками, которые сотрудники уже разослали клиентам (старые перестанут открываться), подключить синхронизацию на рабочих компьютерах, выбрать, где хранятся копии. Каждый пункт — часы специалиста, и именно они входят в Hн. Если в бюджет заложена только аренда сервера, эти часы всплывут позже, в виде внеплановых просьб от людей, у которых «не открывается файл».
Похожая картина с n8n. Если сценарии автоматизации в старом сервисе были связаны с десятком внешних приложений, каждое подключение придётся создать заново: заново выдать доступы, проверить, как сценарий ведёт себя при ошибке, и убедиться, что он не запускается дважды при повторной отправке данных. Поэтому перед оценкой Hн полезно составить перечень сценариев и для каждого записать, сколько у него внешних подключений: стоимость растёт именно с их числом, а не с числом самих сценариев.
Среда для репетиции
Хороший способ удешевить риск — репетиция на отдельной копии. Методология двенадцати факторов советует сокращать разрыв между разработкой, тестированием и рабочей средой по инструментам, времени и людям (The Twelve-Factor App: Dev/prod parity). Для миграции это читается так: пробный перенос должен идти на таком же стеке и теми же людьми, которые будут потом переносить начисто. Тогда сюрпризы случаются на репетиции, а не в день переключения. Это не означает, что репетиционный сервер должен быть той же мощности или что в него надо копировать все персональные данные: достаточно обезличенного или урезанного набора, на котором видны проблемы формата и связей.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации Россия, США, Франция и Великобритания. Оплата картой РФ и по СБП.
Обучение людей: цена привычки
Интерфейс, к которому люди привыкли, — это актив, и при замене он обнуляется. Обучение стоит денег не потому, что новая система сложна, а потому, что каждый сотрудник какое-то время работает медленнее. Эту потерю можно оценить грубо, но честно: сколько человек, сколько часов на обучение, сколько недель сниженной производительности и какова стоимость часа.
Есть и скрытая часть: инструкции. Их нужно написать, проверить на человеке, который не участвовал в миграции, и поддерживать. Короткая памятка «как сделать три самые частые операции» обычно полезнее толстого руководства. Отдельно стоит продумать роль «человека первой линии» — того, к кому идут с вопросами в первые недели. Его время в бюджет тоже входит, пусть и не отдельной строкой в счёте.
Полезно разделить сотрудников по глубине использования системы, потому что Hо у всех разный. Администратору, который настраивает права и справочники, может понадобиться заметно больше часов, чем человеку, который лишь открывает карточки и оставляет комментарии. Если считать «три часа на всех», бюджет получится ровным, но неверным: переплата на рядовых пользователях и недооценка тех, на ком держится процесс. Честнее ввести две группы со своими часами и ставками и суммировать их отдельно.
Второй источник скрытых затрат — период, когда люди возвращаются к старым привычкам. Если кто-то продолжает вносить данные в старый сервис, потому что «так быстрее», в новой системе возникают пробелы, и их придётся досверять руками. Это прямо связано с параллельным периодом: чем хуже обучены сотрудники, тем дольше его приходится держать и тем больше платить сразу за две системы. Так обучение оказывается не отдельной статьёй, а рычагом, который двигает и стоимость параллельной работы.
Параллельный период: две подписки на одну работу
Закрывать SaaS в день переключения рискованно: всегда находятся данные или процессы, которые не заметили при проверке. Поэтому разумно некоторое время держать обе системы. Это прямые деньги: подписка на старый сервис плюс сервер, плюс труд по синхронизации, если какое-то время данные вводят в обеих.
Длину параллельного периода определяют не календарём, а условиями выхода. Примерный набор таких условий:
- все активные пользователи вошли в новую систему и выполнили типовые операции;
- сверка количества записей и выборочная проверка карточек пройдена;
- резервная копия новой системы создана и из неё хотя бы один раз восстановили тестовую копию;
- интеграции работают без ручного вмешательства;
- у старого сервиса сохранён полный архив выгрузки на случай спорных вопросов.
Пока условия не выполнены, подписка продлевается. Здесь полезно заранее посмотреть, на каких условиях сервис продлевает или приостанавливает тариф: если оплата только годовая, параллельный период может стоить заметно дороже, чем кажется. Это та деталь, которую надо выяснить до выбора даты переезда.
Сопровождение после запуска
Подписка на SaaS включает в себя много невидимой работы. После переезда она не исчезает, а переходит к вам. Регулярные расходы складываются из нескольких привычек:
- установка обновлений приложения и системы, проверка совместимости;
- контроль свободного места, особенно если растут вложения;
- проверка того, что копии создаются и из них можно восстановиться;
- реакция на инциденты: кто просыпается и что делает;
- продление сертификатов, домена, актуализация доступов при смене сотрудников.
Каждый пункт — это часы в месяц. Их можно оценить как долю ставки администратора или как оплачиваемый пакет внешней поддержки. Автоматические резервные копии нельзя считать данностью: в публичных материалах MAATRIX они не заявлены для всех тарифов, поэтому план копирования и его проверку нужно закладывать самим. Сюда же относится вопрос о том, сколько данных вы готовы потерять при сбое: пять минут или сутки. От ответа зависит и техника, и стоимость, а разобрать её помогает материал про цену потери пяти минут данных против суток.
Условный бюджет с переменными
Соберём пример. Он условный: цифры подобраны для наглядности, это не реальный проект и не результат измерений. Подставьте в формулы свои значения.
Переменные: N — число пользователей; Hд — часы на подготовку данных; Hн — часы на настройку; Hо — часы обучения на одного человека; Hс — часы сопровождения в месяц; Sт — ставка технического специалиста за час; Sп — ставка рядового сотрудника за час; P — ежемесячная подписка SaaS; V — ежемесячная стоимость VPS; M — месяцы параллельного периода.
| Статья | Формула | Характер |
|---|---|---|
| Подготовка данных | Hд × Sт | разовый |
| Настройка замены | Hн × Sт | разовый |
| Обучение | N × Hо × Sп | разовый |
| Параллельный период | M × (P + V) | временный |
| Сопровождение | Hс × Sт + V | ежемесячный |
Теперь подставим условные значения: N = 10, Hд = 24, Hн = 16, Hо = 3, Sт = 3000 руб/ч, Sп = 1000 руб/ч, P = 20 000 руб, V = 2 000 руб, M = 2, Hс = 4. Подготовка данных: 24 × 3000 = 72 000. Настройка: 16 × 3000 = 48 000. Обучение: 10 × 3 × 1000 = 30 000. Параллельный период: 2 × 22 000 = 44 000. Разовая часть в сумме — 194 000 рублей. Ежемесячное сопровождение: 4 × 3000 + 2000 = 14 000 рублей против подписки в 20 000, то есть регулярная разница составляет 6 000 рублей в месяц.
Если делить разовые расходы на ежемесячную разницу, получится больше тридцати месяцев. Но это не «срок окупаемости», а иллюстрация того, как чувствительна картина к входным данным. Поднимите ставку специалиста вдвое, и сопровождение съест почти всю экономию. Опустите объём подготовки, потому что данные чистые, и картина изменится в другую сторону. Если же внутренний специалист уже есть и его время на сопровождение почти не создаёт дополнительных затрат, регулярная разница окажется заметно больше. Поэтому честный вывод из такой таблицы — не число месяцев, а список переменных, которые сильнее всего двигают результат. Обычно это ставка труда, часы сопровождения и размер подписки.
Что ещё сдвигает результат
Подписка может расти с числом пользователей, а сервер — нет, и тогда при большой команде выигрыш реальнее. Или наоборот: команда маленькая, подписка недорогая, и разовые расходы никогда не вернутся. Есть и нематериальные причины: контроль над данными, выбор места размещения, возможность доработать систему под себя. Они не измеряются рублями, но входят в решение. Главное — не прятать их за экономией, которой нет.
Что не стоит воспроизводить самостоятельно
Самое полезное, что можно сделать с бюджетом, — вычеркнуть из него то, чего вы не обязаны строить. Переезд не обязан быть полным. Часто разумнее забрать то, где самостоятельное размещение даёт реальный выигрыш, и оставить то, где SaaS даёт больше, чем вы сможете повторить.
Вот функции, которые стоит оценивать особенно придирчиво:
- Доставка почты. Репутация отправителя и попадание в «Входящие» — отдельная сложная область. Обычно проще подключить сторонний почтовый сервис, чем держать свой.
- Круглосуточная поддержка и дежурство. Если инструмент критичен по ночам, а дежурного у вас нет, стоимость простоя может перевесить любую экономию.
- Совместное редактирование в реальном времени, поиск по большим архивам, распознавание. Это тяжёлые сервисы со своей нагрузкой; воспроизводить их надо только при ясной потребности и после проверки на ваших данных.
- Соответствие отраслевым требованиям. Если вендор берёт на себя часть обязанностей, при переезде они возвращаются к вам. Автоматического соответствия закону от выбора страны сервера не возникает.
- Мобильные приложения и интеграции с чужими сервисами. Их готовность и стабильность придётся проверять заново.
Наоборот, есть области, где переезд оправдан легче: файловое хранилище с большим объёмом, автоматизации с собственной логикой, внутренние инструменты, где важна доработка, и сервисы, у которых подписка растёт быстрее, чем нужна вам функциональность. Здесь платная подписка часто покупает возможности, которые вы не используете, а контроль над размещением и конфигурацией ценен сам по себе.
Хороший компромисс — гибридный путь. Например, файлы и автоматизации живут на своём сервере, а почта и мониторинг остаются у специализированных поставщиков. Такой вариант уменьшает объём труда и риск, а экономия остаётся там, где она действительно возникает.
Какое решение стоит принять
Переход с SaaS на VPS оправдан не тогда, когда сервер дешевле подписки, а тогда, когда вы получаете что-то, чего подписка не даёт: управление данными, настройку под процесс, предсказуемый рост затрат при росте команды или объёма. Если после честной подстановки ставок и часов регулярная экономия мала, а рисков и ответственности прибавилось, переезд превращается в дорогое хобби. Если же вам нужны контроль, доработки или стоимость, которая не растёт с каждым новым пользователем, разовые расходы становятся инвестицией, а не потерей.
Практический порядок такой. Сначала сделайте пробную выгрузку и посмотрите, что в ней есть. Затем выпишите функции, которыми вы реально пользуетесь, и вычеркните те, которые не готовы поддерживать сами. Подставьте свои числа в таблицу и найдите две-три переменные, от которых результат зависит сильнее всего. После этого запустите репетицию на небольшом сервере подходящей конфигурации, проверьте нагрузку и восстановление из копии и только затем назначайте дату. Если картина по-прежнему сходится, переезжайте частями и закрывайте подписку по условиям выхода, а не по календарю.