Технический стек Medpoint: как мы строим портал для врачей на годы вперёд

Теги:

  • Medpoint

Medpoint — это образовательный портал для врачей, созданный Onpoint совместно с ведущими экспертами отрасли. Сегодня платформой пользуется более 70 000 врачей по всей России: они профессионально развиваются, обмениваются практическим опытом с коллегами и изучают материалы на основе доказательной медицины.

Чтобы Medpoint был одновременно надёжным, быстрым и удобным, мы собрали технический стек, который в фарме используется крайне редко. Сегодня приоткроем завесу и расскажем, как он устроен внутри. Наша команда разработчиков подбирала технологии не формально, а исходя из реальных задач портала: где‑то использовали лучшие мировые практики, а где‑то создавали собственные решения. Такой подход позволил собрать систему, которая работает именно под нужды врачей и брендов, а не по шаблону.

Содержание

Архитектура и база данных: гибкость против классики

Бэкенд: Node.js и сила open-source

Собственная админка вместо CMS

Интеграции и данные

Масштабируемость и скорость

Безопасность и надёжность

UX-технологии «под капотом»

Архитектура и база данных: гибкость против классики

Обычно в фармацевтической digital-среде используют SQL-базы: они хороши там, где структура данных заранее жёстко задана. Но в Medpoint всё иначе — у нас десятки форматов контента: видео, статьи, вебинары, клинические кейсы, дайджесты. На старте мы тоже использовали SQL, но довольно быстро стало ясно: такой подход тормозит развитие портала. Поэтому ещё на раннем этапе мы приняли решение перейти на MongoDB (NoSQL).

Этот шаг позволил:

  • Хранить разнотипные данные без сложных обходных решений;

  • Гибко компоновать данные и собирать персонализированный контент под интересы пользователя (например, формировать дайджест-рассылку из материалов разных форматов);

  • Быстрее проверять и масштабировать продуктовые гипотезы и запускать новые сервисы;

  • Поддерживать скорость изменений, критичную для образовательных проектов: если завтра появляется новый формат курса, мы просто добавляем модуль, а не перестраиваем систему.

Бэкенд: Node.js и сила open-source

Бэкенд Medpoint построен на TypeScript/Node.js с использованием фреймворка NestJS. Это решение позволило нам:

  • Опираться на огромную экосистему open-source-библиотек (npm) — от обработки видео до математических расчётов, что ускоряет запуск новых фич без необходимости писать всё с нуля;

  • Масштабировать систему под рост аудитории и нагрузку;

  • Эффективно работать в роли сервера для веб-приложений без тяжёлых вычислений.

Такой подход делает развитие портала экономичнее и быстрее: мы используем лучшие практики глобального IT-сообщества и адаптируем их под нужды фармобразования.

Узнайте больше про Medpoint

Образовательный продукт для врачей в сотрудничестве с ведущими лидерами мнений

Узнать больше

Узнайте больше про Medpoint

Образовательный продукт для врачей в сотрудничестве с ведущими лидерами мнений

Узнать больше

Собственная админка вместо CMS

Стандартные CMS перегружены лишним функционалом и плохо подходят для медицинского контента. В Medpoint мы используем собственную админку — не классическую CMS, а гибкое самописное решение, которое:

  • Включает конструктор для создания, наполнения курсов и библиотеки с обучающими материалами;

  • Минимизирует лишний функционал и делает интерфейс максимально удобным;

  • Легко адаптируется под новые задачи портала.

В результате администрирование становится быстрее, а команды маркетинга и медицинские редакторы могут сосредоточиться на контенте, а не на технических барьерах.

Интеграции и данные

Medpoint интегрирован с ключевыми сервисами фармрынка и digital-аналитики:

  • Altcraft — рассылки всех типов (email, СМС, push, ОСМ), включая триггерные и дайджесты;

  • Яндекс DataLens — дашборды и визуализация статистики по рассылкам;

  • Amplitude, Яндекс Метрика — поведенческая аналитика и A/B-тесты.

Чтобы данные обновлялись быстро и без перегрузки систем, мы используем:

  • RabbitMQ — «склад сообщений», который принимает миллионы запросов одновременно и распределяет их по сервисам в удобном для них темпе. Это стандарт индустрии: даже при пиковых нагрузках система остаётся стабильной.

  • Оптимизацию API-запросов — группируем данные пакетами и минимизируем количество обращений к сторонним сервисам, чтобы ускорить обмен информацией.

  • Postgres — отдельная SQL-база для агрегации статистики по email-рассылкам и выгрузки этих данных в Яндекс DataLens.

Благодаря этому портал стабильно обрабатывает большие объёмы данных и остаётся быстрым даже при сложных интеграциях.

Масштабируемость и скорость

Medpoint выдерживает пиковые нагрузки — будь то федеральные медицинские форумы или массовые аккредитованные вебинары. За это отвечает архитектура, построенная на современных индустриальных решениях:

  • Микросервисная архитектура. Вместо монолита, где всё «лежит в одной коробке» и падение одного модуля может остановить работу целиком, у нас каждая функция живёт в отдельном сервисе: авторизация, рассылки, админпанель, синхронизации. Если нагрузка растёт на один блок (например, рассылки), мы просто масштабируем именно его, не перегружая остальное.

  • Kubernetes. Он управляет сервисами как «коробочками»: если нагрузка увеличивается, автоматически поднимает дополнительные «коробочки», чтобы система работала стабильно. У нас три географические зоны (разные дата-центры Яндекса), и даже если одна «падает», Kubernetes переносит нагрузку на другие, сохраняя доступность портала. Кроме того, Kubernetes позволяет выкатывать обновления бесшовно: мы можем обновить отдельный модуль или даже весь портал, не прерывая работы пользователей.

  • Мониторинг и логи (Prometheus + Loki + Promtail + Grafana).
    Prometheus отвечает за мониторинг сервисов, Loki и Promtail — за сбор и агрегацию логов, а Grafana отображает данные. Благодаря этому разработчики в реальном времени видят состояние системы и получают алерты прямо в Telegram, что позволяет реагировать мгновенно.

Безопасность и надёжность

В Medpoint мы закладываем безопасность и стабильность работы портала в саму архитектуру.

Мы регулярно проверяем портал на соответствие стандарту OWASP Top 10 — это международный список наиболее распространённых угроз для веб-приложений. Такой аудит позволяет своевременно закрывать уязвимости и держать уровень защиты на высоком уровне.

Чтобы минимизировать риски потери данных или простоя, мы используем несколько решений:

  • Ежедневные бэкапы, чтобы при необходимости можно было быстро восстановить систему;

  • Гибкую систему прав внутри облачного провайдера и Kubernetes: доступ к базе и контейнерам только у нужных специалистов;

  • Репликацию базы — данные синхронно хранятся в нескольких копиях;

  • Геораспределённые серверы — в трёх независимых дата-центрах: даже если один из них «падает», портал продолжает работать.

Наш кейс: когда один из дата-центров Яндекса вышел из строя, Medpoint не остановился ни на секунду. Благодаря продуманной архитектуре портал продолжал работать в штатном режиме — пользователи даже не заметили сбоя.

Другими словами, Medpoint спроектирован так, чтобы врачи всегда имели доступ к образовательным материалам, а бренды — к стабильной коммуникационной площадке, даже при внешних сбоях.

UX-технологии «под капотом»

Для врача важно не задумываться о технологиях — портал должен работать быстро, стабильно и удобно. В Medpoint мы используем решения, которые незаметны на поверхности, но делают работу с сайтом комфортной:

  • Server-Side Rendering (Next.js) — страницы генерируются на сервере и отдаются врачу уже в готовом виде. Это ускоряет загрузку в разы, улучшает SEO и позволяет видеть контент почти мгновенно.

  • Адаптивная вёрстка — мобильная версия учитывает привычки врачей: например, меню вынесено вниз экрана. Мы постоянно тестируем разные варианты интерфейса через A/B-тесты, чтобы выбирать то, что действительно удобнее.

  • Современные графические форматы и кеширование — используем для изображений WebP и другие лёгкие форматы, которые сохраняют качество и ускоряют загрузку. Дополнительно настроено кеширование изображений: при повторном заходе страницы картинки загружаются практически мгновенно.

  • Поисковая система OpenSearch — новое решение, которое мы внедрили для более быстрого и точного поиска по порталу. Это особенно важно, когда врач работает с большим количеством материалов и ему нужно найти нужное за секунды.

  • Персонализированные дайджесты и аналитика — система подбирает релевантный контент, чтобы врачам было проще находить нужное.

В результате Medpoint остаётся быстрым и удобным на мобильных устройствах, через которые на портал заходит большинство пользователей.

Взгляд в будущее

Мы внедряем решения, которые в фарме появляются одними из первых:

  • AI-сервисы для врачей. AI Bolit — интеллектуальный поиск по клиническим рекомендациям, встроенный прямо в портал Medpoint. Он позволяет находить нужную информацию в привычной среде портала, экономя время и повышая точность поиска. Подробнее в статье.

  • Прозрачная аналитика для заказчиков. Функция «Личные кабинеты вебинаров» показывает эффективность образовательного контента. Обычно фармкомпании получают Excel-таблицы с данными, которые сложно систематизировать. В Medpoint же каждая активность имеет отдельную статистику и готовую воронку из четырёх ключевых элементов, что делает анализ и планирование гораздо проще. Подробнее в статье

Все технологии, о которых мы рассказали, работают «под капотом». А главное, для врачей Medpoint остаётся удобным и надёжным образовательным порталом.

Для фармкомпаний портал обеспечивает:

  • стабильную работу контента даже при высокой нагрузке;

  • прозрачную аналитику в реальном времени;

  • интеграцию брендовых материалов в образовательный контент без потери доверия.

Эти возможности помогают компаниям эффективнее организовывать обучение и оценивать результаты своих образовательных проектов.

Если вы планируете запуск портала, лендинга или образовательного проекта, команда Onpoint может помочь создать решение, которое будет удобно для врачей и эффективно для бренда.

Подпишитесь на наш Telegram!

Обсуждаем тренды и цифровые инновации в фармпродвижении, делимся кейсами, лайфхаками и инсайтами из мира фармацевтики

Подписаться
логотип канала ComeOn, Pharma!

Теги:

  • Medpoint

Войди с нами в digital-контакт

Напишите нам!

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪