Привет, я Вячеслав — руководитель отдела маркетинга ispmanager. Мы создаем сложный программный продукт, для которого нужна документация. Использовали Confluence, но решили поменять ПО — еще до того, как Atlassian ушел из РФ.
Рассказываю, почему решили мигрировать, какие альтернативы тестировали, как запустили свой аналог и не скатились в «продуктовую пропасть». А еще поделюсь, что пошло не по плану и почему мы отказались от идеи продвигать продукт на коммерческой основе.
Мигрировать нельзя остаться
Популярная причина миграции с Confluence — сложность с оплатой после ухода Atlassian с рынка РФ. У нас с этим не было проблем, но были другие запросы — уход Atlassian добавил мотивации принимать решение о миграции быстрее =)
Мы продаем панель управления — ниша достаточно узкая. SEO-запросов немного — большинство из них упираются в услуги хостинга, которые мы не предоставляем. Поэтому семантическое ядро маленькое — хотелось его расширить за счет индексации страниц с документацией.
Почему решили мигрировать с Confluence:
Технические трудности из-за ухода Atlassian из РФ — в приложение не получилось добавить поддомен в зоне .ru — конструкция rudocs.ispmanager.com вместо привычного docs.ispmanager.ru нас не устраивала.
Необходимость расширить семантическое ядро. В статьях на поддомене «прячутся» SEO-ключи — с их помощью мы планировали расширить семантическое ядро. Поэтому стояла задача перенести контент на хост — чтобы документация стояла на одном сервере вместе с сайтом, и у нее был адрес example.com/doc вместо doc.example.com. С Confluence так сделать не получилось — его можно разместить только на поддомене.
Выбираем готовое решение
Собрали список требований от команды, что нам нужно от аналога Confluence:
Установка на хост — главное требование.
Удобная миграция из Confluence без потери содержимого.
Понятный редактор статей — язык разметки Markdown, inline-стили. Например, выделение текста, курсив, списки.
Возможность работать со структурой статей — менять уровни и работать с деревом статей.
На начало 2022 года были доступны несколько отечественных вариантов — попробовали разные. Например, тестировали EvaWiki — приложение работало медленно, страницы загружались долго. Девопсы не одобрили — архитектура у EvaWiki на тот момент была «монолитная», нам это грозило большой нагрузкой на сервер и медленной работой сайта.
Общая проблема аналогов Confluence — ПО не поддерживает установку на хост либо тяжелая миграция и терялись данные во время «переезда». |
Посмотрели на рынок и поняли — it’s time to delat’ svoi product. Так уже сделали крупные компании — например, Яндекс запустил Yandex Wiki, Ростелеком — систему управления проектами «Яга». Приступили к работе.
Давайте сделаем как в Confluence
Опыт создания веб-приложений у нас есть — на сайте ispmanager уже работает фичреквест и форум, который мы написали с нуля на базе open-source решений.
За основу взяли технологии:
Фреймворк Laravel для сайтов и веб-приложений.
Админку на базе Orchid — Open-source решение для административной части сайта.
MySQL (MariaDB) для баз данных.
Рядом с фичреквестом на хосте у нас лежал актуальный сайт на Drupal — туда же мы планировали разместить документацию. Под этот «зоопарк» искали архитектуру, которая сможет нормально работать.
Пока обсуждали будущую архитектуру, дизайнер разрабатывал внешний вид документации — здесь было меньше всего проблем. В рамках ребрендинга мы уже обновляли все, что находится на сайте. Поэтому дизайн документации одобрили еще до того, как разработчики сели писать бэкенд. Референсом выступил дизайн Confluence.
Кодим, релизим и катимся в продуктовую пропасть
К работе приступили впятером: я, два веб-разработчика, DevOps и дизайнер. Позже присоединился тестировщик.
Над названием продукта долго не думали, отталкивались от узнаваемого бренда ispmanager — получилось ispmanager Docs, а внутри компании прижилось сокращение iDocs.
Как выглядел процесс работы до первого деплоя:
Написали парсер для Confluence и закатили туда дамп пространств из Confluence — в процессе потеряли половину контента. Потратили еще несколько дней — доделали парсер, мигрировал текст, но потерялись картинки. Confluence хранит изображения в своей базе или подтягивает с URL — пришлось «перевозить» картинки в хранилище S3 и оттуда подтягивать их через подмену URL по маске.
Сделали административную часть приложения — настраивали создание статей, статусы, систему ролевого доступа, редактор. Мы использовали open-source, но все нужно было собрать вместе и подогнать под наши нужды.
Разработали архитектуру сайта и настроили маршрутизацию. Например, пользователь попадал на сайт и перенаправлялся в нужный раздел, который определял бэкенд.
Запустили выкатку обновлений с помощью CI/CD — раньше у нас его не было. Со временем научились выкатывать отдельные элементы системы: доку, сообщество, основной сайт.
Взяли свежий дамп актуальной доки и раскатили его на стейджинг. Все шло как по маслу — нажали заветную кнопку и запустили деплой.
Разгребаем последствия деплоя
С какими проблемами мы столкнулись после деплоя:
Страницы выдавали ошибку 404. Мы уходили с поддомена в хост, поэтому важно было проставить редиректы. Оказалось, мы сделали это недостаточно хорошо — около 20% редиректов, выставленных по маске rudocs.ispmanager.com/* поехали по бороде не проставились.
Причину нашли в парсере, когда сравнили старые и новые URL — он поменял генерацию русских слов в английской раскладке и «pol-zovatelya» превратились в «polzovatelya».
В результате нашли старую структуру URL и проставили редиректы на уровне документации — мы предусмотрели возможность проставить 301 редирект из интерфейса iDocs. Транслитерацию в итоге сделали так же, как было в Confluence.
Все починили примерно за неделю — в результате iDocs научили собирать URL после парсинга, как это делает Confluence.
Появилась ошибка «Поиск не работает» — поиск работал только по названию статьи и ее описанию. Из-за этого репрезентативность выдачи стремилась к нулю.
Помимо этого, поиск оказался очень перегруженным. А еще статьи выдавались по степени совпадения, а не актуальности. Поэтому старые материалы по устаревшим версиям продукта упорно лезли в первые строки выдачи.
Дизайнер и веб-разработка доделали поиск, улучшили релевантность и докрутили интерфейс. Появилась возможность выбрать, по каким пространствам искать — например, по корневым директориям с документацией ispmanager 6, SSL-сертификатами и другими.
Как выглядит поиск по пространствам:
После первого деплоя iDocs довольно быстро поняли, что продукт сырой — предстоит еще много работы, коллеги это подтвердили =))
Что еще доработали в iDocs :
Докрутили работу со статьями — добавили предпросмотр статей, исправили ошибки, из-за которых не сохранялся текст в блоках и некорректно отображался код.
Добавили возможность мигрировать из Confluence по API. Теперь не нужно делать дамп и загружать его в парсер — iDocs все подтягивает по API.
Сделали глобальный лог изменений.
Что получилось
Дизайн iDocs сделали в светлой и темной теме. В статье рассказали, как уже разрабатывали темную тему для панели ispmanager.
Как выглядит пользовательский интерфейс iDocs:
Как выглядит iDocs в админке:
Стремились сделать интуитивно простой интерфейс — сейчас в iDocs понятная структура статей по уровням и удобные инструменты для оформления.
Как выглядят инструменты:
Сделали автоматическое оглавление внутри статьи, которое подтягивается через хедеры.
Как выглядит оглавление внутри статей:
Продолжаем учитывать пожелания команды — докручиваем функционал, который нужен в работе. Например, добавили возможность посмотреть историю изменений статьи:
Результаты
Сделали полноценный продукт для документации и базы знаний — получилась достойная альтернатива Confluence, которую мы смогли разместить на хосте.
Киллер-фича iDocs — возможность поставить ПО на хост, чтобы документация вместе с сайтом находились на одном сервере. Насколько нам известно, российские аналоги Confluence не могут таким похвастаться — если знаете варианты, расскажите о них в комментариях. |
Цель разработки iDocs — расширить семантическое ядро с помощью индексации страниц с документацией на основном домене.
Как изменилась посещаемость сайта ispmanager:
«Переезд» на iDocs в мае 2023 года увеличил посещаемость сайта ispmanager практически в 2 раза — теперь поисковики чаще показывают документацию пользователям, и это помогает наращивать SEO-трафик. |
Почему не стали вкладывать деньги в развитие iDocs
Изначально мы писали продукт для себя — не было цели развивать iDocs на коммерческой основе. Позже мы хотели попробовать вывести его на рынок. Но не срослось.
Почему решили не продвигать iDocs:
Маленький рынок — сложно посчитать объем. Многие крупные компании уже сделали для себя похожие решения, а маленькие игроки используют бесплатные программы — например, Media.Wiki, Wiki.js, DokuWiki.
Конкуренция на зарубежном рынке — «бороться» с Confluence трудно.
Издержки — чтобы начать продавать iDocs, нужно вложить в продукт около 10 миллионов рублей. В бюджет входят задачи: разработать механизмы обновлений клиентских установок и учета срока лицензий, закрыть код, организовать техподдержку, упростить установку ПО, провести кастдевы с аудиторией.
Длинный срок окупаемости — бюджет для выхода на рынок относительно небольшой, но срок окупаемости получился более 3 лет. В текущей экономической ситуации это не выглядит разумной инвестицией — есть способы окупить такую сумму быстрее. Например, расширить географию продаж флагманского продукта — панели управления ispmanager.
Для компании важно развивать продукт с понятным рынком и сроком окупаемости, поэтому от идеи продвигать iDocs «в люди» мы отказались.
Но развитие iDocs на этом не остановилось — продолжили работу и регулярно докручиваем фичи для внутренних потребностей. Несмотря на то что продукт делали для себя, партнеры уже его купили =)
Если у вас похожие задачи и нужна альтернатива Confluence — напишите на почту bizdev@ispmanager.com, поможем развернуть доку или базу знаний для вашего проекта. Заказать бесплатную демо-версию и узнать подробнее об условиях можно на сайте ispmanager. |
Я не считаю проект провальным — iDocs полностью закрыл потребность ispmanager в ПО для документации и базы знаний. А благодаря партнерам мы отбили издержки на первичную разработку.
К тому же мы осознанно не дали скатиться проекту в «продуктовую пропасть» — сначала изучили спрос, сделали расчеты и решили не выходить на рынок. Все по-взрослому =)
Если вы уже пользуетесь собственными или готовыми аналогами Confluence — делитесь впечатлениями, обсудим в комментариях.
Комментарии (14)
vanyas
12.07.2024 14:06адрес example.com/doc вместо doc.example.com. С Confluence так сделать не получилось — его можно разместить только на поддомене.
Камон, простой реврайт на nginx
Ave_Ls Автор
12.07.2024 14:06Изначально такое и использовали для редиректа с rudocs.ispmanager.com в docs.ispmanager.ru, но нет гарантий, что получится нормально отследить трафик. Большинство аналитических систем при переходе между доменами теряют пользователя в ряде случаев.
Опять же, такой роутинг роботами не воспринимается и никаких плюшек для SEO не дает. По нашим наблюдениям.
PereslavlFoto
12.07.2024 14:06Где скачивать вашу программу?
В чём она лучше, если сравнивать с общепринятым MediaWiki ? Судя по сайту с рекламой вашей программы, все её удобства давно есть в MediaWiki.
Спасибо.
Ave_Ls Автор
12.07.2024 14:06Скачать не получится. Мы продаем исходный код, без права реселлинга. После покупки выдаем доступ к репозиторию.
По поводу MediaWiki — возможно там есть те же фичи, да. Сейчас мы разрабатываем решение исключительно под свои нужды, и не работаем над тем, чтобы его продавать в каких-то супер масштабах. Если кому-то подходит решение в текущем состоянии — будем рады предоставить. Если когда-нибудь мы решим выводить его в коммерцию, обязательно об этом расскажем на хабре.)
В этой статье просто хотели показать кейс: была проблема, мы её решили. В процессе создали приложуху, которую решили не выводить на рынок и оставить для тех, кто любит работать с исходниками.)PereslavlFoto
12.07.2024 14:06возможно там есть те же фичи, да
Так чем же ваша программа лучше? Или спросим иначе: почему вы не применяли MediaWiki, а решили писать всё заново?
Не надо выводить в коммерцию. Достаточно использовать свободную лицензию, чтобы ваша программа стала доступной для всех.
Ave_Ls Автор
12.07.2024 14:06Или спросим иначе: почему вы не применяли MediaWiki, а решили писать всё заново?
Тут важен контекст. У нас уже был готов самописный фичреквест / форум и мы планировали уходить в самописную коммерческую часть сайта, ибо устали от Друпала. Изначально мы хотели найти коммерческое отечественное решение и использовать его, потому что техподдержка для нас — важная ценность.
Когда мы не смогли найти подходящего ПО за деньги, было принято решение писать свое таким образом, чтобы с т.з. сервисов и внутрянки оно было консистентно к остальному веб-приложению. К вышеупомянутому фичреквесту и форуму.Не надо выводить в коммерцию. Достаточно использовать свободную лицензию, чтобы ваша программа стала доступной для всех.
Такой вариант мы тоже рассматривали, да. Но в итоге решили отказаться, потому что, в тот момент, когда мы решали продвигать ли продукт "в люди" или нет, у нас уже были партнеры, которые купили исходный код и использовали приложение.)
В любом случае, если будет достаточное количество запросов на открытие кода, рассмотрим такой вариант.PereslavlFoto
12.07.2024 14:06Покупка исходного кода ничем не ущемляет ваших партнёров. Они по-прежнему останутся при купленном, как и все остальные.
Конечно, СПО не запрещает вам продолжать разработку. Больше того! Оно привлечёт к вашей работе и всех остальных людей, а зарплату за них будете получать вы. Именно в этом и состоит главное преимущество свободы.
olegpospeloff
12.07.2024 14:06+2Да, можно было и на github выложить.
Ave_Ls Автор
12.07.2024 14:06Верно, но мы пошли другим путем, поскольку уже были активные пользователи.
Повторюсь, если будет достаточно количество запросов на открытие кода, рассмотрим такой вариант.
Vorchun
12.07.2024 14:06Кейс интересный, спасибо. Заход оригинальный )
Пока пользуемся Wiki в GitLab. Тут код, задачи и теперь освоили вики. Но, поскольку, документировать надо не только проекты по написанию кода - смотрим на внешнюю вики.
ISPanel используем для организации почтового сервера. Т.е. она с нами и, скорее всего, надолго. Но не перейдем в вики туда - рано или поздно встанет вопрос экспорта. А тут самопис со всеми вытекающими.
Сейчас активно смотрим в сторону Js Wiki
WondeRu
Мы ооочеень долго мучились с российскими аналоговнет. В результате переехали на github pages, они страшные и ужасные, но рядом с кодом, для нас это важно.
Ave_Ls Автор
Погуглил, интересная штука. Я так понимаю, там каждая страница отдельно собирается вручную из comit-push?