Проверка работоспособности и готовности сервисов DCGN в среде контейнеризации#

DCGN использует в работе liveness и readiness probes — два основных типа проверок, доступных в контейнере:

  • template-registry/template-provider:

    • liveness probe основана на стандартной реализации Spring Boot, то есть на состоянии ApplicationContext. Если контекст приложения успешно запущен, Spring Boot предполагает, что приложение находится в доступном состоянии.

    • readiness probe основана на стандартной реализации Spring Boot, то есть на состоянии компонентов CommandLineRunner и ApplicationRunner и проверке доступности БД сервиса. Для окружения Platform V Frontend High Load для readiness probe сервиса template-registry реализована функциональность критичности аудита. Таким образом если сервис Аудита недоступен и конфигурация audit.failure.enabled установлена в true, то readiness probe вернет 0. Подробнее о параметре читайте в разделе «Изменение конфигураций» документа «Руководство по системному администрированию». Template-registry будет пытаться отправить событие ATTEMPTED_ACTION в сервис Аудит с установленной частотой в конфигурации readiness.retry.periodSeconds. Подробнее о параметре читайте в разделе «Изменение конфигураций» документа «Руководство по системному администрированию».

    Если БД недоступна, readiness probe сервиса будет возвращать 0. Через N (указывает настройка readinessProbe.failureThreshold) попыток Pod выйдет из балансировки. Если liveness probe возвращает 0, то через N (указывает настройка livenessProbe.failureThreshold) попыток контейнер будет перезапущен.

  • docgen-service:

    • liveness probe основана на стандартной реализации Spring Boot, то есть на состоянии ApplicationContext. Если контекст приложения успешно запущен, Spring Boot предполагает, что приложение находится в доступном состоянии.

    • readiness probe основана на стандартной реализации Spring Boot, то есть на состоянии компонентов CommandLineRunner и ApplicationRunner.

    Если сервис template-provider недоступен, readiness probe docgen-service будет возвращать все равно 1. Если пользователь при этом использует закешированный шаблон, то создание документов будет происходить успешно. Если пользователь обратится за новым шаблоном, то получит ошибку о невозможности получить шаблон. Если readiness probe сервиса будет возвращать 0, через N (указывает настройка readinessProbe.failureThreshold) попыток Pod выйдет из балансировки. Если liveness probe возвращает 0, то через N (указывает настройка livenessProbe.failureThreshold) попыток контейнер будет перезапущен.