Как увеличить количество клиентов в 2 раза и разделить монолит

Как разделить монолит и увеличить количество уникальных посетителей в два раза

В 2015 году Правовед.ru запланировали миграцию в инфраструктуру российского провайдера. Кроме этого, компания развивала новый сервис, которому требовались кастомные конфигурации серверов для работы под большими нагрузками. О том, какие решения использовала компания и к каким результатам пришла, читайте в кейсе.

Изображение записи

Задачи:

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

О компании

Правовед.ru помогает компаниям и частным клиентам быстро решать юридические вопросы, а юристам — зарабатывать на консультациях. Чтобы получить помощь, пользователям сервиса не нужно тратить время на походы в офис — достаточно пообщаться со специалистом онлайн или по телефону. Юристы Правовед.ru предлагают разные услуги. Например, оказывают юридическую поддержку бизнесу и подготавливают документы: договоры, заявления, жалобы и многие другие.

Кроме этого, до переезда в Selectel Правовед.ru начал развивать второй продукт — Feedot. Это партнерская сеть, которая позволяет собирать и продавать лиды юридической тематики, чтобы вебмастеры зарабатывали на своих сайтах, а юридические компании находили клиентов. Оба сервиса размещались на одной инфраструктуре как монолит. Платформы использовали одну базу данных и поэтому влияли на работу друг друга. Если у Правовед.ru возникала нестандартная нагрузка, DDoS-атака, или в продакшен попадал баг, это влияло на второй сервис. Платформы мешали друг другу — их нужно было разъединить не только по целям бизнеса, но и физически: разделить базу данных и разбить монолитное приложение на несколько сервисов и микросервисов.

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

Нам понравились услуги Selectel, потому что с ними можно гибко настраивать серверы под свои нужды и заказывать выделенные серверы любой конфигурации. Так мы смогли попробовать разные типы серверов и разную архитектуру наших проектов. В Selectel мы могли получить все, что хотели — и это очень хорошо.

Константин Романенко Разработчик Правовед.ru

Решение

В 2015 году Правовед.ru переехал в Selectel. Компания попыталась сразу мигрировать проекты в облако, но поняла, что на построение инфраструктуры не хватало опыта сотрудников и ресурсов. За нужное время она не смогла настроить автоматическую работу облака и решила оставить там только тестовую среду и микросервисы, которые не требовали высокой стабильности и отказоустойчивости, — за ними не нужен был постоянный контроль администраторов.

Основные проекты команда перенесла на выделенные серверы, а в 2019 году началось разделение инфраструктуры на два проекта: Правовед.ru и Feedot. Специалисты компании самостоятельно выносили платформу лидогенерации на отдельные серверы. Начали с приложений по фильтрации и модерации лидов, и в итоге они стали полностью изолированными от систем Правовед.ru. Затем компания продолжила переносить Feedot: лендинги, личные кабинеты для вебмастеров и покупателей лидов — для этого команда подключала дополнительные серверы. Финалом переноса стало разделение базы данных — каждому проекту предоставили отдельную. С тех пор оба сервиса работают независимо друг от друга.

Когда компания начала расти, у нее появилось больше специалистов для решения конкретных архитектурных проблем. Правовед.ru смогли подключить дополнительные серверы произвольной конфигурации и настроить их масштабирование. Это помогло серверам адаптироваться под разные нагрузки — днем справлялся с входящим трафиком, а ночью не простаивать.

Выделенные и облачные серверы Правовед.ru находились в дата-центрах Москвы и Петербурга. Чтобы объединить их в комплексную защищенную инфраструктуру и максимально защитить свои системы, компания подключила L3 сеть. Так компания экономила на трафике, потому что внутри сети скорость и трафик не ограничены. Также сеть позволила изолировать группы серверов и защитить данные, что обеспечило повышенную безопасность сервисов компании.

В 2020 году команда Правовед.ru начала готовиться к переносу проекта Feedot в кластер Kubernetes, чтобы увеличить отказоустойчивость и упростить управление приложениями. Для этого пришлось доработать сервис в соответствии с правилами 12 факторов — методологии создания веб-приложений. Одно из таких правил требовало перенести файлы из системы серверов в сторонние хранилища. 

Чтобы это сделать, компания решила использовать облачное хранилище Selectel. Для тестирования сервиса команда перенесла в холодное хранилище провайдера 1 Тб пользовательских файлов — счета на оплату клиентов сервиса Feedot. Благодаря облаку компания перестала мониторить свободное место для файлов на сервере — в облачном хранилище нет ограничений по объему данных и файлов. Также получилось снизить требования к серверам приложений и упростить создание и организацию бэкапов.

Несмотря на то, что команда Правовед.ru в основном самостоятельно решала вопросы с инфраструктурой, иногда она обращалась за помощью в техподдержку Selectel. Общение с ней всегда оставляло положительные впечатления. Один из примеров, когда техническая поддержка очень помогла, — DDoS-атака на Правовед.ru летом 2020 года. Благодаря специалистам Selectel получилось быстро подключить NetGuard и успешно защититься от последующих попыток атаковать сайт.

Подход ваших сотрудников заключается не в том, чтобы просто сделать, как мы попросили. Они понимают, какая задача или проблема стоит, понимают, каких целей хотим достигнуть, — и предлагают решения. Техподдержка Selectel реагирует качественно и быстро.

Константин Романенко Разработчик в Правовед.ru

Результат

  • 1 млн

    показов виджетов в день на платформе Feedot

  • 99,98

    процентов Uptime сервисов компании

  • В два раза увеличилось количество пользователей Правовед.ru.
  • Компания использует 12 серверов и ВМ в продакшене.
  • Релизы происходят ежедневно.

Теперь для сервиса Правовед.ru компания арендует 4 сервера: 2 для основной и резервной баз данных, 2 сервера для приложения.

Компания начинала свой путь с одного сервиса, но за время сотрудничества с Selectel она развила партнерскую программу Feedot как отдельный продукт. У платформы лидогенерации инфраструктура состоит из 8 серверов: «железо» для приложений, которое нужно для получения и обработки лидов, сервер для отдачи статики, связанной с партнерскими виджетами, серверы для основной базы и резервных данных, фронтенда и несколько виртуальных машин для тестового окружения.

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

Цель IT-отдела — перейти к более гибкому управлению инфраструктурой. Сейчас она завязана на умениях и знаниях тех людей, которые ее настраивали — системных администраторов и разработчиков. Команда хочет привести управление инфраструктурой в состояние, когда вся инфраструктура описана в коде и автоматически может развертываться у любого провайдера. Также компания хочет перенести в Облачное хранилище файлы Правовед.ru — около 2 Тб документов, фотографий и архивов в холодное хранилище.

До Selectel у сервиса Правовед.ru было от 100 000 до 150 000 уникальных посетителей в день — этот показатель вырос более чем в в 2 раза. Платформа Feedot без проблем выдерживает несколько миллионов показов статических виджетов в день на страницах партнеров.

Планы на будущее

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