К основному контенту

К вопросу об организации оркестратора кластера в деле бесшовного ввода новых версий Kalpa-системы.

Страшное дело - организация взаимодействия в большой системе взаимодействующих узлов.
Первое и основное дело, с каким придется столкнуться - реализация плавного, бесшовного обновления всей системы на новые версии. Причем делать это надо не дергая пользователей. Пусть они спокойно доработают свою сессию на старой версии. Для обеспечения такой плавности необходима одновременная работа как всего серверного хозяйства в старой версии, так и плавный ввод в работу версии новой.
Итак. В системе существует служба "SystemControl". Она отвечает:

  • За контроль топологии системы. Знает какие узлы существуют в системе и какие службы эти узлы обслуживают.
  • Мониторит отказ отдельных узлов и перебалансировку топологии системы.
  • Осуществляет плавное обновление системы. 
Каждая служба (кроме слоя сервера приложений) имеет свой набор сетевых портов ожидания. Каждая версия использует только один из трех портов. SystemControl всегда знает расписание портов текущей и прошлой версии. Таким образом можно одновременно держать несколько версионных слоев служб на всем пространстве узлов.
Схематиченый сценарий ввода в работу новой версии все системы таков. 

  • Соединение специальной утилитой с SystemControl и инициация протокола запуска новой версии системы.
  • Загрузка через SystemControl исполняемых файлов и библиотек всех служб системы.
  • Активация новой версии SystemControl на новом порте ожидания.
  • Новая версия SystemControl (из общей со старой версией базы) получает список всех рабочих узлов системы и через старую версию NodeControl, работающую на каждом узле, передает файлы и библиотеки новой версии на каждый узел. 
  • На каждом рабочем узле активируется новая версия NodeControl на новом порте ожидания.
  • После того как получено подтверждение о запуске новой версии NodeControl начинается процесс активации внутренних служб согласно текущей топологии системы. Стартуют все службы кроме серверов приложения.
  • После подтверждения старта внутренних служб новая версия SystemControl начинает процесс активации слоя новых версий серверов приложений. Для этого ->
    • SystemControl соединяется со старой версией NodeControl (на узле AS) и отключает старый сервер приложений.
    • SystemControl соединяется с новой версией NodeControl (на узле AS) и активирует новую версию сервера приложений.
    • В службе ASControl все активные AS-серверы удаляются и "взводится" первый рабочий сервер приложения. 
    • Каждый последующий запущенный сервер регистрируется в ASControl, что происходит практически мгновенно.
  • SystemControl перехватывает управление соединяясь со старой версией NodeControl на всем пространстве запущенных узлов и получает доступ к статистической информации о системе. 
  • Когда на всех узлах AS (ApplicationServer) прекращается обслуживание последней доживающей пользовательской сессии, можно с уверенностью сказать, что все пользователи, использующие старый слой сервера, завершили свою работу. 
  • После завершения работы последнего пользователя старой версии все уровни внутренних служб гасятся через NodeControl каждого узла.
  • После гасятся сами NodeControl, ASControl и SystemControl старой версии.
  • Система полностью и плавно переходит на новую версию.
Простой системы (в части обработки поступающих запросов на установку новой сессии) минимален (несколько миллисекунд).

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

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

Надежды юношей питают.

Всем хорошо известна эта фраза. Считается, что она являет собой аналог известного афоризма Ф. Бекона: "Надежда - хороший завтрак, но плохой ужин".
История появления этой фразы в русском языке проследить не удается. Известно только, что она появилась в стихотворении Глеба Глинки.

Надежд сомнителен приют.
«Надежды юношей питают,
Отраду старцам подают»,
Но все же постепенно тают.

И, наконец, на склоне дней
Вдруг понимает человече
Тщету надежд, тщету идей...
«Иных уж нет, а те далече»,
Интересно отметить, что рассматриваемая фраза взята в кавычки. Конечно Глинка не мог не знать знаменитой оды Ломоносова "На день восшествия на престол Елисаветы".
Науки юношей питают,
Отраду старым подают,
В счастливой жизни украшают,
В несчастной случай берегут;
В домашних трудностях утеха
И в дальних странствах не помеха.
Науки пользуют везде,
Среди народов и в пустыне,
В градском шуму и наедине,
В покое сладки и в труде.
Но здесь вовсе не надежды, но науки. Искажение, результат творческой переработки, заб…

Новости госмессенджеров.

«Развитие IT-технологий является приоритетом работы правительства Республики Крым. Наш президент в своём послании Федеральному собранию назвал развитие цифровой экономики вопросом национальной безопасности и технологической независимости России. Глава государства обратил особое внимание на риски, связанные с цифровыми технологиями, и необходимость защиты от киберугроз», — отметил Сергей Аксёнов.
Андрей Назаров уточнил, что свои разработки программисты могут представить на третьем ялтинском форуме в апреле следующего года. Отметим, что Назаров также занимает пост председателя правления Ялтинского международного экономического форума.
Госконтрактом с крымским правительством уже заинтересовались разработчики российского мессенджера Dialog, которые участвуют в конкурсе Института развития интернета на создание государственного мессенджера для федеральных чиновников.

«Мы готовы принять участие и в разработке закрытого безопасного мессенджера для крымских чиновников, в свете чего планируем про…