Разграничение зон контроля пользователей Yandex Managed Service for Apache Airflow™ и Yandex Cloud
При работе с сервисом Yandex Managed Service for Apache Airflow™ необходимо учитывать, что контролирует Yandex Cloud как облачный провайдер, а что — клиент Yandex Cloud. Понимание этих зон контроля помогает эффективно использовать возможности сервиса и корректно взаимодействовать с технической поддержкой.
Техническая поддержка Yandex Cloud обрабатывает обращения, связанные с проблемами в зоне контроля Yandex Cloud. Запросы на отладку проблем в зоне контроля клиента выходят за рамки поддержки, оказываемой Yandex Cloud.
Архитектура сервиса
Каждый кластер Apache Airflow™ запускается в отдельной группе узлов Yandex Managed Service for Kubernetes, которая изолирована от других кластеров средствами виртуальных сетей и самого Kubernetes. Группы узлов управляются общим Kubernetes-мастером под управлением Yandex Cloud.
Для хранения метаданных Apache Airflow™ используется общий кластер PostgreSQL под управлением Yandex Cloud. Доступ к нему ограничен.
Зона контроля Yandex Cloud
-
Физическая и виртуальная инфраструктура. Обеспечение работоспособности физических серверов, виртуальных машин, дисков и сетевой связности, на которых функционируют компоненты сервиса.
-
Kubernetes-инфраструктура. Обеспечение работоспособности общего Kubernetes-мастера и сетевой инфраструктуры групп узлов: виртуальной сети, группы безопасности и сервисного аккаунта. Изоляция групп узлов между кластерами.
-
Управляемый кластер PostgreSQL для метаданных. Обеспечение работоспособности, доступности и резервного копирования общего кластера PostgreSQL, который используется для хранения метаданных Apache Airflow™.
-
Компоненты Apache Airflow™ под управлением Yandex Cloud. Обеспечение работоспособности основных компонентов Apache Airflow™:
- веб-сервера;
- планировщика;
- DAG-процессора;
- воркеров;
- Triggerer.
-
Резервное копирование и восстановление. Обеспечение резервного копирования и восстановления базы метаданных кластера Apache Airflow™. Восстановление из резервной копии не гарантируется, если проблема связана с ошибкой на стороне поставщика компонента или архитектурными особенностями данных. Техническая поддержка Yandex Cloud объяснит причину проблемы и возможные способы ее предотвращения в будущем.
-
Кластерные операции. Обеспечение выполнения операций с кластером через доступные облачные интерфейсы: создание, изменение, масштабирование, обновление и удаление кластера, а также изменение конфигурации компонентов.
-
Хранилище DAG-файлов. Обеспечение работоспособности интеграции между кластером Apache Airflow™ и Yandex Object Storage на платформенном уровне.
-
Мониторинг и логирование платформенного уровня. Предоставление метрик работоспособности компонентов Apache Airflow™ через Yandex Monitoring. Предоставление платформенных логов компонентов Apache Airflow™ через Yandex Cloud Logging.
-
Обслуживание и обновления. Применение обновлений безопасности для компонентов платформы и гостевой ОС узлов. Применение оптимальных настроек по умолчанию при создании новых кластеров и обновлении версии Apache Airflow™.
-
Интеграция с сервисами Yandex Cloud. Обеспечение платформенной интеграции с сервисами Yandex Cloud:
- Yandex Object Storage — хранение DAG-файлов и логов задач;
- Yandex Identity and Access Management — управление доступом к сервису на уровне платформы;
- Yandex Virtual Private Cloud — сетевая изоляция кластера;
- Yandex Lockbox — хранение секретов, Connections и Variables;
- Yandex Cloud Logging и Yandex Monitoring — сбор платформенных логов и метрик.
-
Пользовательская документация. Разработка и актуализация документации по эксплуатации Yandex Managed Service for Apache Airflow™. Документация самого Apache Airflow™ является зоной ответственности проекта Apache Software Foundation.
Зона контроля клиентов Yandex Cloud
-
Написание DAG-файлов. Разработка, тестирование, отладка и оптимизация DAG-файлов и операторов Apache Airflow™.
-
Логика задач. Обеспечение корректности бизнес-логики внутри операторов, хуков и сенсоров.
-
Зависимости Python. Управление пользовательскими Python-библиотеками, устанавливаемыми в кластер. Клиент отвечает за совместимость библиотек с версией Python и Apache Airflow™, которые предоставляет сервис, а также за совместимость библиотек между собой.
Версия Python фиксируется версией Apache Airflow™, поставляемой Yandex Cloud, и может измениться при обновлении кластера. Клиент отвечает за проверку совместимости пользовательских библиотек с новой версией Python и Apache Airflow™ после обновления. Yandex Cloud не гарантирует работоспособность пользовательских библиотек с какой-либо конкретной версией Python или Apache Airflow™.
-
Диагностика Task Instance. Анализ статусов выполнения задач, изучение логов задач и диагностика причин сбоев на уровне кода задачи.
-
Планирование расписания. Корректная настройка параметров расписания DAG:
schedule_interval,start_date,catchup,max_active_runsи других. -
Производительность DAG. Оптимизация DAG с точки зрения количества задач, параллелизма и времени выполнения. Предотвращение перегрузки планировщика, DAG-процессора и пула воркеров.
-
Хранилище DAG-файлов в Yandex Object Storage. Загрузка, версионирование и управление DAG-файлами в бакете Yandex Object Storage. Настройка и эксплуатация CI/CD-пайплайнов для доставки DAG-файлов в бакет. Обеспечение корректных прав доступа сервисного аккаунта кластера к бакету.
-
Использование GitLab в качестве хранилища DAG-файлов. Обеспечение работоспособности GitLab. Платформенные ошибки Yandex Managed Service for Apache Airflow™ при работе с GitLab относятся к зоне контроля Yandex Cloud.
-
Ресурсы кластера. Обеспечение соответствия конфигурации кластера фактической нагрузке: выбор типа ресурсов, количества экземпляров компонентов, минимального и максимального количества воркеров.
-
Параметры Apache Airflow™. Настройка параметров конфигурации Apache Airflow™, доступных клиенту. Клиент отвечает за последствия отклонения от рекомендуемых значений по умолчанию.
-
Окно технического обслуживания. Назначение временного окна для проведения технического обслуживания кластера.
-
Connections и Variables. Создание, настройка и поддержание актуальности Connections и Variables Apache Airflow™. Настройка интеграции с Yandex Lockbox или другими бэкендами для хранения секретов. Управление жизненным циклом секретов.
-
Управление доступом. Настройка ролей и сервисных аккаунтов для доступа к Apache Airflow™.
-
Мониторинг и реакция на события. Анализ метрик работоспособности кластера и своевременная реакция на алерты. Настройка дополнительных алертов для метрик пользовательских задач и DAG. Анализ логов задач, доступных через веб-интерфейс Apache Airflow™ и Yandex Cloud Logging.
-
Внешние системы. Обеспечение доступности и корректной работы внешних систем, с которыми взаимодействуют задачи Apache Airflow™.
-
Сетевая связность с внешними системами. Настройка групп безопасности, маршрутизации и NAT для доступа кластера к целевым внешним ресурсам.
-
Стороннее ПО. Настройка и эксплуатация инструментов CI/CD для развертывания DAG и сторонних систем мониторинга.
-
Обновление версий. Подготовка к обновлению версии Apache Airflow™ после получения оповещения или ознакомления с политикой работы с версиями Apache Airflow™: анализ истории изменений, проверка совместимости DAG, операторов и зависимостей с целевой версией.
Клиент отвечает за проверку совместимости пользовательских Python-библиотек с версией Python и Apache Airflow™, поставляемыми в новой версии кластера, до и после обновления. Обновление или замена библиотек, несовместимых с новой версией, также является ответственностью клиента.
-
Тестирование перед обновлением production-кластера. Тестирование DAG на новой версии Apache Airflow™ до применения обновления в production-кластере.
-
Работа на неактуальной версии Apache Airflow™. Решение проблем эксплуатации, связанных с использованием неактуальной версии Apache Airflow™ по истечении сроков поддержки, установленных Yandex Cloud.
Типичные сценарии
| Сценарий | Зона контроля |
|---|---|
| Веб-сервер Apache Airflow™ недоступен, веб-интерфейс не открывается | Yandex Cloud |
| Task Instance завершился с ошибкой в пользовательском коде | Клиент |
| DAG-процессор не обрабатывает DAG из-за платформенной ошибки | Yandex Cloud |
| DAG-процессор не обрабатывает DAG из-за синтаксической ошибки в DAG-файле | Клиент |
Планировщик не запускает задачи из-за некорректного schedule_interval или start_date |
Клиент |
| KEDA не масштабирует воркеры из-за платформенной ошибки | Yandex Cloud |
| Ошибка кластерной операции, например создания или масштабирования через API | Yandex Cloud |
| Ошибка подключения к внешней БД из задачи Apache Airflow™ | Клиент |
| DAG-файл не загружен в бакет Yandex Object Storage | Клиент |
| Некорректная работа встроенной интеграции с Yandex Lockbox | Yandex Cloud |
| Несовместимость пользовательских Python-библиотек с текущей версией Apache Airflow™ или Python | Клиент |
| Пользовательская Python-библиотека перестала работать после обновления версии Apache Airflow™ или Python в кластере | Клиент |
| Сбой резервного копирования базы метаданных на платформенном уровне | Yandex Cloud |
| GitLab недоступен | Клиент |
| Ошибка подключения к GitLab связана с платформенной ошибкой Yandex Managed Service for Apache Airflow™ | Yandex Cloud |
Обращение в техническую поддержку
Техническая поддержка Yandex Cloud обрабатывает обращения, связанные с проблемами в зоне контроля Yandex Cloud.
При обращении по вопросам, относящимся к зоне контроля клиента, техническая поддержка не может гарантировать полноценный разбор и устранение проблем. К таким вопросам относятся отладка DAG, оптимизация задач, настройка Connections, анализ пользовательских логов, совместимость Python-библиотек, конфигурация CI/CD-пайплайнов GitLab и другие задачи эксплуатации.
Примечание
В случае если у клиента недостаточно экспертизы, чтобы самостоятельно выполнять действия из своей зоны контроля, он может обратиться к своему аккаунт-менеджеру. Аккаунт-менеджер предложит варианты привлечения сертифицированных партнеров или профессиональных сервисов Yandex Cloud.