Как перенести сервис документооборота без даунтайма: опыт EnDocs

- EnDocs — компания, которая предоставляет SaaS-решение для автоматизации электронного документооборота.
- Изначально инфраструктура EnDocs располагалась на облачной платформе Microsoft Azure, но в начале 2022 года компания начала искать российскую облачную платформу, которая соответствовала бы Федеральному закону № 152-ФЗ «О персональных данных» и предоставляла необходимые управляемые сервисы.
- Важным критерием при выборе облачного провайдера была поддержка микросервисной архитектуры и Kubernetes.
- После анализа рынка EnDocs выбрала Yandex Cloud с сервисом Yandex Managed Service for Kubernetes®.
- Миграция в Yandex Cloud проходила в два этапа и заняла три месяца.
- На первом этапе была перенесена бизнес-логика, реализованная в среде Kubernetes, а S3-хранилище осталось в Azure.
- На втором этапе были перенесены 60 Гб данных из S3-хранилища Azure в Yandex Object Storage.
- Миграция прошла с нулевым даунтаймом.
- После миграции уменьшился пинг и ускорилась загрузка документов на 1–3 секунды.
- EnDocs получили надёжный облачный сервис, который соответствует российским и международным стандартам безопасности.
- Компания планирует разработку модуля обработки кадровых документов.
- Основатель компании положительно оценивает переезд в Yandex Cloud и рассматривает возможность использования других сервисов Яндекса.
О чём история
Компания EnDocs
Как мигрировать кластер Kubernetes{#}
В этой статье:
EnDocs занимается автоматизацией электронного документооборота и процессов обработки документов. Решения компании помогают организовать корпоративный электронный архив, автоматизировать документооборот, обработку бухгалтерских документов и т. д. EnDocs была создана 10 лет назад в виде on‑premise решения. Три года назад компания разработала SaaS‑продукт с аналогичной функциональностью — EnDocs Cloud.
Инфраструктура компании изначально располагалась на облачной платформе Microsoft Azure и релиз облачной версии также проходил на ресурсах Azure. В начале 2022 года команда EnDocs начала поиск российской облачной платформы, которая полностью соответствовала бы Федеральному закону № 152‑ФЗ «О персональных данных» и предоставляла необходимое количество управляемых сервисов.
Важным критерием при выборе облачного провайдера была поддержка микросервисной архитектуры и Kubernetes. В Azure компания использовала Kubernetes как сервис и большую часть поддержки на себя брал облачный провайдер. Такая организация работы существенно экономила время сотрудников EnDocs. Требовалось, чтобы на новой площадке провайдер отвечал следующим требованиям:
- развёртывание виртуальных машин;
- настройка сети;
- установка ОС и ПО;
- обновление кластера и групп узлов;
- резервное копирование;
- обеспечение безопасности хранилища.
В результате анализа рынка компания выбрала Yandex Cloud, который предоставлял необходимый управляемый сервис — Yandex Managed Service for Kubernetes® и имел все аттестаты соответствия требованиям безопасности информации и персональных данных.
Три месяца на миграцию всех сервисов
Миграция в Yandex Cloud для EnDocs проходила в два этапа.
На первом этапе была перенесена бизнес‑логика, реализованная в среде Kubernetes. Микросервисная архитектура проекта состоит из трех контуров разработки (тестовый, производственный и контур разработки) и следующих сервисов:
- веб‑интерфейс;
- внешнее API;
- API мобильной версии;
- автоматические фоновые процессы.
Метаинформация, такая как тема и реквизиты документов, хранилась в СУБД MYSQL, а пользовательские документы в облачном S3‑хранилище.
Сначала был разработан план переезда и составлен обновлённый пайплайн всей среды Kubernetes. На первом этапе решили перенести бизнес‑логику, а S3‑хранилище оставить в облаке Azure.
Список задач, которые необходимо было решить на этом шаге:
- разработать адаптер, который бы связывал среду, расположенную в Yandex Cloud, с хранилищем данных в Azure;
- внести изменения в деплой, который отличается в архитектурах Microsoft и Yandex Cloud;
- развернуть и настроить кластер в Yandex Managed Service for Kubernetes®;
- перенести метаданные в сервис Yandex Managed Service for MySQL;
- перенести данные пользователей в сервис Yandex Managed Service for Redis.
Реализация первого этапа миграции заняла полтора месяца. Чтобы снизить риски, её производили постепенно. Сначала переносили сервисы тестового окружения, проверяли их работоспособность, вносили изменения. Затем те же шаги повторили с окружением разработки и продакшена. После того как работоспособность всех сервисов была проверена, системные администраторы переключили DNS и настроили редирект с Azure.
На втором этапе, который также занял полтора месяца, перенесли 60 Гб данных из S3‑хранилища Azure в Yandex Object Storage. Для пользователей этот процесс прошёл незаметно: перенести данные удалось без даунтайма. Для миграции использовалась собственная утилита, разработанная командой EnDocs.
Облачный сервис, соответствующий 152‑ФЗ
После миграции EnDocs получили надежный облачный сервис, который соответствует российским и международным стандартам безопасности, в том числе Федеральному закону РФ № 152‑ФЗ. Теперь в компании планируют разработку модуля обработки кадровых документов, который будет содержать персональные данные. Также в EnDocs отметили, что за счет уменьшения пинга загрузка документов и превью стала происходить быстрее на 1‑3 сек.

