Новости HRTech, интересные идеи о Digital HR в нашем канале в Telegram: https://t.me/WebsoftHR

Как мы перешли на Kubernetes и "переехали" в Яндекс-Облако

На протяжении многих лет наши продукты (Websoft HCM/Webtutor, E-Staff) приобретались клиентами для размещения на собственных серверах. Запросы на "облачные" решения были эпизодическими. Но, несколько лет назад ситуация начала меняться.

Первые, единичные, "облачные" решения мы разворачивали на собственных серверах в одном из крупных российских дата-центов. Следующим логичным шагом стало использование решений Microsoft Azure (мы давние партнеры Microsoft). Мы построили достаточно эффективный механизм развертывания платформы в Azure на принципах Multitenant (множество виртуальных экземпляров системы в рамках одной большой инсталляции)

Однако, требования российского законодательства и особенности использования Websoft HCM заказчиками (multitenant подход не всегда удобен - разным клиентам нужны разные версии продукта) заставили нас искать новое решение. 

Мы поняли, что нам необходимы:

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

Еще более 5 лет назад, решая задачу импортозамещения для наших государственных заказчиков, мы обеспечили работу наших продуктов не только на платформе Microsoft, но и на Linux/PostreSQL. Это очень облегчило нам решение задачи создания нового "облака".

Что мы сделали

В итоге мы выбрали следующую конфигурацию:

  • Провайдером облачной инфраструктуры для нас стало Яндекс-Облако
  • В качестве платформы для управления микросервисами мы используем Kubernetes
  • Поскольку крупные внедрения Websoft HCM могут использовать множество различных сервисов (ролей) - сервера веб-приложений, worker сервера, медиа-сервера, сервера записи вебинаров и анализа прокторинга, ... мы создали решение, работающее по принципу Service Discovery, для гибкого динамического распределения ролей между экземплярами системы (подами, в терминологии Kubernetes). Этот компонент мы назвали Websoft Inventa.

... и мы начали работать. 

Все работы по доработке системы и настройке инфраструктуры выполнили специалисты Websoft. Коллеги из Яндекса помогли нам, предоставив среду для экспериментов и документацию. Со всем остальным мы справились сами.

Немного техники - что мы используем для работы системы в "облаке"

Managed Service for Kubernetes – сервис управления экземплярами системы, для каждого клиента – как минимум 1 экземпляр, расширяемый до необходимого кол-ва , в зависимости от требуемой производительности

Управляем базой данных системы из консоли Яндекс-Облака 

Managed Service for PostgreSQL – сервис управления базами данных системы, для каждого клиента – изолированная база данных с отдельным доступом. Сейчас используется версия PostgreSQL 12. 

Yandex S3 Compatible Object Storage  – сервис объектного хранилища для хранения файлов системы, для каждого клиента – изолированная папка с отдельным доступом. В Websoft HCM реализован внутренний модуль поддержки виртуальной файловой системы (VFS) , которая перехватывает все функции работы с заданными директориями, blobs в базе данных и полнотекстовыми индексами и перенаправляет потоки на внешние источники (S3 , сетевое хранилище).

Хранилище docker образов системы


Yandex Container Registry
– сервис хранилища docker - образов – для размещения в kubernetes 

Websoft Inventa – сервис управления размещением экземпляров и их параметров для каждого клиента HCM

Интерфейс для настройки конфигураций клиентов в Websoft Inventa

Что получили наши клиенты

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

Весьма важно, что мы не получили в результате всех описанных манипуляций два разных продукта (облачный и обычный). У нас один единый продукт и каждая его сборка может быть развернута как в "облаке" так и в инфраструктуре заказчика. Соответственно, заказчик получает одинаковую документацию, одинаковую техническую поддержку и идентичные сервисы не зависимо от того какой вариант развертывания он выбирает.

Масштабировать систему, подключать дополнительные сервисы мы можем максимально быстро, в том числе автоматически (если в настройках конфигурации клиента выставлена возможность автоматического наращивания предоставляемой мощности). В результате стали возможны проекты, в которых, например, клиенту в течение 10 месяцев года нужна определенная мощность, а в 2 пиковых месяца в году (когда проходит массовое обучение или оценка) эта мощность удваивается. Изменение конфигурации для такой задачи выполняется несколькими кликами мышки.

Итоги

  • Доработка платформы для поддержки Kubernetes, создание инструментов развертывания системы, миграции данных и т.п. заняла у нас порядка 3 месяцев. Еще 2-3 месяца ушло на отладку и оптимизацию
  • За 3 месяца наши инженеры, без потерь данных и с минимальными перерывами в предоставлении сервиса, мигрировали клиентов в новое облако, заодно, обновив их до актуальной версии платформы
  • Дорабатывая систему для поддержки новой облачной модели, мы создали решение (Websoft Inventa) облегчающее процесс управления большими группировками собственных серверов для наших крупных заказчиков. А заодно и поддержали работу системы с провайдерами DFS (Distributed File System) для кластеров в корпоративных сетях. Теперь эти решения используют наши традиционные "необлачные" заказчики

Хотите познакомиться с современными инструментами автоматизации HR-процессов? Узнать как автоматизировать подбор, адаптацию, обучение и оценку ваших сотрудников с помощью современной HCM системы?


Популярные сообщения из этого блога

Стандарты электронного обучения

Какие инструменты необходимы для организации дистанционного обучения

Вы перестали пить коньяк по утрам, отвечайте ― да или нет?

Заглянем под капот: какая методология лежит в основе карьерных треков, про что важно подумать до автоматизации?

Постановка задач на доработку Websoft HCM. Основные принципы обеспечения стабильности работы кастомизаций