Обеспечить высокий аптайм DocsInBox

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

Рассказываем об инфраструктурных решениях, которые позволили компании DocsInBox исключить незапланированные даунтаймы сервиса.

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

Кейс будет полезен для компаний в следующих сферах:

  • LegalTech
  • E-commerce
  • FinTech
  • EdTech

Задачи:

  • Ускорить работы сервиса и автоматизировать хранение данных пользователей.

О компании

Компания DocsInBox занимается автоматизацией документооборота на рынке HoReCa. В числе клиентов — известные рестораны, кафе, отели: Додо Пицца, ТОКИО CITY, KFS, Novikov Group и другие. DocsInBox ускоряет и облегчает документооборот клиентов, предоставляет удобный интерфейс для ввода накладных, работы с поставщиками и других рутинных процессов в сфере HoReCa.

«Мы хотим помочь каждому ресторану избавиться от рутинных процессов с документооборотом, чтобы экономить время, деньги и достигать поставленных бизнес-результатов. Наше SaaS-решение помогает ресторанам сосредоточиться на вкусной еде, а не на процессах»

Александр Баландин CTO DocsInBox

Почему выбрали Selectel

  • Своевременная помощь с миграцией
  • Большой выбор комплектующих для серверов
  • Собственные дата-центры в разных локациях

Долгое время DocsInBox сотрудничал с Selectel только в рамках исполнения ФЗ-152 — о хранении персональных данных на территории России. Основные сервисы были размещены у зарубежного провайдера, который предоставлял услугу аренды выделенных серверов. В феврале 2022 года компания была вынуждена искать нового партнера. Когда встал вопрос о миграции, сервис выбирал между несколькими российскими провайдерами IT-инфраструктуры. 

У команды DocsInBox были несколько требований к новому IaaS-партнеру: 

  • Компания хотела сохранить архитектуру сервиса на выделенных серверах. Перенос приложений в облако не отвечало требованиям компании к скорости работы систем.
  • Нужно было переехать достаточно быстро и с минимальным, управляемым даунтаймом. Инфраструктура у экс-провайдера была оплачена до определенного времени, поэтому у миграции был четкий дедлайн. 

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

Несмотря на ограниченное время, миграция сервиса прошла бесшовно. Сложнее всего было перенести базу данных. Команда настроила репликацию БД из старого провайдера в Selectel. Финальной точкой миграции, которая длилась 1,5 месяца, стало переключение базы данных — на это ушло полчаса управляемого даунтайма. 

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

Александр Баландин CTO DocsInBox

Ключевые задачи и их решение

  • Ускорить работу сервиса для пользователей.
    Разместили production-системы DocsInBox на трех выделенных серверах.
  • Автоматизировать хранение данных клиентов.
    Использовали объектное хранилище Selectel с S3 API.
  • Перенести внутренние сервис на «мобильную», изолированную инфраструктуру.
    Подготовили облачные серверы для систем, выходящих за рамки production.
  • Обеспечить отказоустойчивость и безопасность работы сервисов.
    Распределили сервисы в двух дата-центрах Selectel: в Москве и Санкт-Петербурге.

Сервис должен работать одинаково быстро для всех пользователей

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

Решение. Все production-системы DocsInBox размещены на выделенных серверах. Один из ключевых элементов инфраструктуры — база данных. Под нее компания используют мощные серверы с быстрыми дисками SSD NVMe M.2 объемом 1 ТБ.

Всего для «экосистемы» БД выделено три машины: один сервер — для основного сервиса DocsInBox, второй — для остальных микросервисов, на третью реплицируются обе базы. С репликой работают аналитики компании, чтобы не нагружать production-базу, также с нее снимаются бэкапы. Использование выделенных серверов с мощными дисками позволило сделать запись и репликацию данных максимально быстрыми.

Автоматизация в хранении данных клиентов и оптимизация стоимости

Поскольку функциональность DocsInBox во многом связана с документооборотом, компания оперирует большим количеством объектов — от документов до изображений (логотипов, аватарок и др.). Оптимизация их хранения — важная часть сервиса.

Решение. Статический контент сервиса хранится в объектном хранилище Selectel — например, логотипы компаний клиентов, которые прикрепляются к письмам для поставщиков. DocsInBox пользуется как «горячим», так и «холодным» типами хранения, чтобы экономить на содержании редко запрашиваемых данных. Компания оценила совместимости объектного хранилища с S3 API, поскольку это сильно облегчило миграцию на инфраструктуру Selectel — все интеграции для S3 у команды уже были.

В течение года DocsInBox рассматривает перенос хранения части документов в объектное хранилище Selectel. Сейчас компания хранит их на арендованных выделенных серверах, но это все менее удобно.

Вынос внутренних сервисов на «мобильную», изолированную инфраструктуру

У DocsInBox есть сервисы, не завязанные на инфраструктуре в production, — как правило, это внутренние сервисы команды, тестовые окружения и т.д. Потребности в их сверхбыстрой работе нет, зато есть желание быстро создавать и легко управлять инфраструктурой для этих сервисов.

Решение. Для подобных систем, выходящих за рамки production, компания выбирает виртуальные серверы. Так, есть выделенная ВМ, на которой работает Clickhouse, на еще одной работают Jira и Confluence. Облачные серверы компания ценит за скорость развертывания и настройки, возможность быстро перенести данные на другую виртуальную машину. Эти преимущества используются в dev-системах DocsInBox.

Отказоустойчивость и безопасность работы сервисов

DocsInBox экономит клиентам время и деньги, поэтому доступность сервиса — одна из важных метрик для компании. Простой сервиса из-за технических проблем или кибератак для компании неприемлем.

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

В качестве превентивных мер от кибератак компания подключила защиту от DDoS-атак. Сервис рассматривает это как важный «гигиенический минимум» для любой компании.

«В основе сервиса DocsInBox — экспертность (мы хорошо понимаем, как работают рестораны) и поддержка. Мы не просто консультируем клиентов в чате, мы разбираемся в их проблемах, помогаем строить нормальные процессы. Здесь Selectel очень схож с нашей компанией по ценностям — по тому, как обе компании относятся к пользователям»

Александр Баландин CTO DocsInBox

Результаты и планы на будущее

  • 30

    столько минут длился управляемый даунтайм при масштабном переезде сервисов DocsInBox от зарубежного провайдера.

  • 98%

    составляет аптайм сервиса.

Сейчас сервис DocsInBox состоит из монолита и ряда микросервисов, которые разработчики стали выделять с 2019 года. На данный момент все основные приложения размещены в Docker-контейнерах. Docker-образы запускаются и работают на выделенных серверах, что не очень удобно с ростом приложения. 

Сейчас компания технологически созрела для использования Kubernetes в разработке и тестирует Managed Kubernetes в своих задачах. До конца года DocsInBox хочет перенести разработку в этот PaaS-сервис, а впоследствии — и production-сервисы.

«Cейчас у нас довольно много болей, связанных с управлением контейнерами, поэтому мы хотим перейти на сервис, который нам в этом поможет. У нас есть выбор: нанимать мощного DevOps-специалиста либо протестировать в задаче готовые кластеры Kubernetes. Второй вариант на текущий момент кажется нам более подходящим»

Александр Баландин CTO DocsInBox