Внедрение и оптимизация Apache DolphinScheduler в NetEase Mail
Перевод: Внедрение и оптимизация Apache DolphinScheduler в NetEase Mail
Оригинал: https://apachedolphinscheduler.substack.com/p/netease-mails-migration-journey-to
В связи с бурным развитием Интернета, электронная почта — один из важнейших инструментов обмена информацией — испытывает постоянно растущий спрос на обработку данных и планирование задач. NetEase Mail, ведущий поставщик услуг электронной почты в Китае, внедрил платформу DolphinScheduler, чтобы лучше справляться с задачами обработки огромных объемов данных и планирования задач. Компания провела углубленное внедрение и оптимизацию платформы в реальных условиях эксплуатации.
Докладчик:
Лэй Баосинь, инженер больших данных NetEase Mail
Предпосылки проекта и выбор платформы
NetEase Mail – это ведущий китайский поставщик услуг электронной почты, являющийся частью крупной интернет-компании NetEase. Вот основные характеристики и информация о компании:
* Широкая линейка продуктов: NetEase Mail предлагает разнообразные почтовые услуги, включая:
* Бесплатная почта: Наиболее известные сервисы 126.com и 163.com, хорошо известные в Китае.
* Корпоративная почта: Предназначена для бизнеса, предлагая более надежные и профессиональные решения.
* VIP-почта: Почтовые сервисы премиум-класса с расширенными функциями и поддержкой.
* Долгая история: Существует с 1997 года, что говорит о стабильности и накопленном опыте.
* Огромная база пользователей: Благодаря популярности сервиса в Китае, NetEase Mail обслуживает миллионы пользователей.
* Технологическая зрелость: NetEase Mail активно использует современные технологии (например, Kubernetes, Apache DolphinScheduler и Streampark) для обработки больших объемов данных, планирования задач и улучшения общей эффективности.
* Ориентация на стабильность и безопасность: Компания уделяет большое внимание предоставлению стабильных, безопасных и эффективных почтовых услуг.
* Инновационное развитие: NetEase Mail постоянно совершенствует свои сервисы, внедряя новые функции, интегрируя искусственный интеллект и оптимизируя инфраструктуру.
* Вклад в opensource: NetEase Mail активно контрибьютит в open-source проекты, например, SeaTunnel, что говорит об их технической экспертизе и желании делиться разработками с сообществом.
В целом, NetEase Mail – это авторитетный и инновационный поставщик услуг электронной почты в Китае, отличающийся широким спектром услуг, ориентацией на стабильность и безопасность, а также активным применением передовых технологий.
История развития NetEase Mail
С момента запуска в 1997 году, NetEase Mail прошла несколько важных этапов развития, эволюционировав от 126 Mail, 163 Mail до Mail Master, постоянно расширяя линейку продуктов и спектр услуг. Сегодня NetEase Mail создала диверсифицированную бизнес-систему, включающую бесплатную почту, корпоративную почту, VIP-почту и многое другое, предоставляя стабильные, безопасные и эффективные услуги электронной почты огромному количеству пользователей.

Сценарии применения данных
В ежедневной работе NetEase Mail необходимо обрабатывать огромные объемы данных журналов бизнес-операций. Эти данные требуют постоянного холодного и горячего резервного копирования в течение более полугода, а журналы бизнес-операций обрабатываются и хранятся отдельно как в автономном режиме (HDFS), так и в режиме реального времени (ClickHouse). В то же время, для обеспечения доступности бизнеса, критически важные звенья, такие как основные механизмы отправки/получения электронной почты и аутентификации пользователей, требуют эффективной обработки данных и поддержки планирования задач.

Предпосылки выбора и преимущества DolphinScheduler
Столкнувшись с постоянно растущими потребностями в обработке данных, команда NetEase Mail сравнила несколько платформ планирования задач с открытым исходным кодом. DolphinScheduler выделился благодаря поддержке различных механизмов планирования, высокой стабильности, простоте использования и богатой функциональности. Он способен поддерживать различные сценарии работы с данными, отвечая сложным и разнообразным требованиям NetEase Mail к планированию задач.

Развертывание платформы и текущее использование
Путь обновления и преобразования на основе DS
После внедрения платформы DolphinScheduler, команда NetEase Mail встала на путь непрерывной оптимизации и обновления. Начиная с предварительных исследований и сравнений при выборе платформы, затем решая проблемы, возникающие в процессе использования, и, наконец, выполняя вторичную разработку для постоянного улучшения простоты использования и пользовательского опыта, команда неустанно двигалась к совершенствованию платформы. После подтверждения выбора в марте 2023 года, первоначальная трансформация на основе функциональности оповещения была завершена в декабре 2023 года, а к марту 2024 года была достигнута стабильная работа и продолжающиеся исследования.
Архитектура данных и текущее использование
В настоящее время в отделе NetEase Mail платформа DolphinScheduler развернута в архитектуре 3 Master, 5 Worker и работает на Kubernetes (k8s). Платформа поддерживает более 1200 автономных задач планирования для таких сервисов, как защита от спама, контроль рисков, AI и многого другого, с ежедневным количеством запусков, превышающим 50 000.

Внедрение платформы значительно повысило эффективность разработки данных, снизило затраты на эксплуатацию и обслуживание и обеспечило стабильный вывод бизнес-данных, тем самым оказывая сильную поддержку быстрой итерации и инновациям в бизнесе.
Типы задач и поддержка приложений
Платформа DolphinScheduler стала основной платформой планирования задач внутри отдела, предлагая широкий спектр типов задач, включая Spark, Shell, SQL, SeaTunnel, Python и многое другое. Эти задачи обеспечивают надежную поддержку данных для нисходящих приложений, таких как управление метаданными, отчеты BI и исследования и разработки данных, удовлетворяя потребности в обработке данных в различных бизнес-сценариях.

Интеграция функциональности распространения данных и методы оптимизации
Интеграция функциональности распространения данных
Что касается планирования и распространения данных, команда NetEase Mail выявила несколько проблем, которые необходимо было решить для повышения эффективности и возможностей обработки данных, в том числе:
- Частые запросы на обработку данных:** Частые запросы на обработку данных от персонала, не занимающегося исследованиями и разработками, требуют поддержки разработчиков данных.
- Низкая готовность к созданию промежуточных таблиц:** Команды разработчиков продуктов и контроля качества демонстрируют небольшую готовность к созданию промежуточных таблиц, поскольку это занимает много времени.
- Существуют пороги в конфигурации синхронизации данных:** Конфигурация задач синхронизации данных между гетерогенными источниками данных представляет определенные пороги, требующие специализированной поддержки разработки данных.
- Процесс разработки задач синхронизации относительно длинный:** Полный процесс разработки задач синхронизации данных является длительным, включая такие шаги, как создание таблиц, создание конфигурации синхронизации и создание задач планирования.
Чтобы решить эти проблемы, команда NetEase Mail интегрировала функциональность распространения данных в платформу DolphinScheduler.

*Общий подход – это создание промежуточных таблиц + генерация конфигурации задач синхронизации + создание задач планирования, что повышает эффективность обработки промежуточных данных и обеспечивает комплексный процесс для построения задач обработки данных.*
Эта функциональность предлагает два режима — быструю конфигурацию и пользовательскую конфигурацию. Она может автоматически генерировать операторы DDL таблицы на основе параметров формы и выполнять логику создания таблицы, одновременно генерируя SQL для промежуточной обработки и конфигурации задач синхронизации данных, и, наконец, вызывать внутренние методы Dolphin для создания рабочих процессов и задач планирования.
В результате внедрения этой функциональности среднее время обработки промежуточных данных сократилось с 1 часа до 20 минут, что увеличило эффективность разработки на 67%, и она уже поддерживает более 40 онлайн-задач обработки данных, при этом количество пользователей постоянно растет.
Оптимизация методов автономного планирования для повышения отказоустойчивости
Исходный механизм планирования, при обработке сбоев зависимых задач, приводил к непосредственному сбою зависимых узлов, делая невозможным повторный запуск незавершенной цепочки данных одним щелчком мыши. Это увеличивало операционную нагрузку на разработчиков данных и увеличивало время восстановления после сбоев.

Чтобы решить эту проблему, команда переработала логику обработки сигналов ожидания и сбоев в методе getModelDependResult класса DependentExecute в модуле dolphinscheduler-master. Когда статус зависимой задачи — FAILED, статус в dependResultList изменяется на WAITING, чтобы нижестоящие задачи получали статус WAITING, а не FAILED.
Эта оптимизация позволяет восстанавливать и повторно запускать цепочку данных одним щелчком мыши, снижая затраты на ручное вмешательство, повышая эффективность и интеллектуальность восстановления цепочки задач, ускоряя скорость восстановления цепочки данных после сбоев и обеспечивая своевременное восстановление и вывод бизнес-данных.

Интеграция и оптимизация компонентов SeaTunnel, повышение эффективности синхронизации данных
Чтобы удовлетворить потребности в крупномасштабной синхронизации данных для нового бизнеса, команда внедрила инструмент интеграции данных SeaTunnel и развернула его в кластере Kubernets (k8s) в режиме разделенного кластера.
За счет оптимизации плагинов SeaTunnel NetEase Mail предлагает как пользовательские, так и быстрые режимы конфигурации, тем самым снижая порог использования.

Принцип реализации
С точки зрения реализации, решение поддерживает как конфигурацию на основе форм, так и пользовательскую конфигурацию. Режим конфигурации на основе форм генерирует логику взаимодействия для конфигурации SeaTunnel (ST) через параметры формы и поддерживает конфигурацию дополнительных пользовательских параметров, а также конфигураций JVM на уровне задач.

Бэкэнд получает параметры формы для генерации необходимой конфигурации для контекста выполнения задачи. Он разрабатывает интерфейс IConfigGenerator для реализации логики генерации Source и Sink для каждого источника данных, и, наконец, класс SeatunnelConfigGenerator используется для генерации окончательной конфигурации ST.
Развертывание и настройка
Что касается развертывания и настройки, то кластер SeaTunnel использует архитектуру 2 Master, 5 Worker для обеспечения высокой доступности и производительности синхронизации.
За счет оптимизации логики сегментирования для HDFS, HIVE и MultiTable Source, считыватель получает более сбалансированные сегменты, что повышает производительность синхронизации данных. Соответствующие оптимизации были отправлены в виде PR в сообщество.

С точки зрения настройки параметров, в ответ на требование крупномасштабной синхронизации данных из HDFS в Doris, после исследования и настройки параметров кода DorisSink была достигнута скорость передачи данных в 2 миллиона записей в секунду, что значительно повысило производительность синхронизации данных.

Практический пример проекта: перенос задач и практика изоляции ресурсов
Эффективная миграция задач с платформы Mammoth на DolphinScheduler
Платформа Mammoth – это программное обеспечение платформы больших данных, разработанное для внутреннего использования в NetEase Group, и некоторые зависимости между задачами Mammoth очень сложны, требуя анализа и организации. Если это делать вручную, эффективность будет низкой, и, вероятно, возникнут пропуски или ошибки.
В конце концов, после изучения представления зависимостей задач на платформе DolphinScheduler, было решено перейти на DolphinScheduler.
Что касается выбора метода миграции, то если бы был принят ручной подход к миграции, он был бы не только трудоемким и отнимающим много времени, но и подвержен ошибкам миграции из-за сложности зависимостей задач, что повлияло бы на общую стабильность задач.
Исходя из различных соображений, после обсуждения и исследований NetEase Mail решила принять решение об автоматизированном решении синхронизации. Это решение автоматически собирает метаданные задач и lineage задач со старой платформы, преобразует их в формат конфигурации задач платформы Dolphin и одновременно добавляет зависимости задач. Наконец, рабочие процессы быстро создаются через интерфейс Dolphin. Для достижения этого процесса NetEase Mail использовала инструмент синхронизации PyDolphinScheduler, официально предоставляемый DolphinScheduler — Python API, который позволяет определять рабочие процессы с использованием кода Python, а именно, “workflow as code”.
Кроме того, NetEase Mail также собирала метаданные и lineage задач Mammoth через систему метаданных, пакетно переписывала задачи Mammoth в задачи DolphinScheduler и автоматически добавляла узлы зависимостей в соответствии с lineage.

Эта практика эффективно завершила перенос более 300 задач Mammoth, обеспечив плавный бизнес-переход, достигнув массовой миграции одним щелчком мыши, значительно сэкономив затраты на рабочую силу и предоставив ценный опыт для аналогичных сценариев миграции задач в будущем.
Практика изоляции групп Worker
Следующая практика проекта — это практика изоляции ресурсов на основе группировки Worker в DolphinScheduler.
В повседневном использовании платформы NetEase Mail DolphinScheduler ключевым бизнес-сценарием является поддержка задач планирования онлайн-мониторинга QA. Эти задачи характеризуются высокой частотой планирования, в основном на уровне минут; существует большое количество задач, при этом количество задач, связанных с мониторингом, в настоящее время достигает 120+.
Выполнение этих задач планирования мониторинга в настоящее время в основном достигается с помощью типа задачи SHELL путем вызова самостоятельно разработанного jar-пакета инструмента обработки задач ETL. Этот jar-пакет предоставляет дополнительные функциональные возможности во время выполнения задачи, такие как проверки идемпотентности, повторные попытки по таймауту и т.д.
Однако этот вид вызова запустит множество процессов JVM на рабочих узлах (worker nodes). В это время, если некоторые критически важные задачи планирования также запланированы на тот же рабочий узел, и OOM killer запускается из-за нехватки памяти, эти критически важные задачи, как правило, имеющие более высокое использование памяти, могут получить более высокий балл OOM и с большей вероятностью будут завершены, что приведет к нестабильному выполнению критически важных задач.
Кроме того, для выполнения некоторые задания синхронизации Т+1 на следующее утро требуют большого количества ресурсов и не подходят для планирования на том же узле, что и другие задания, что может повлиять на производительность и стабильность выполнения других заданий на том же работнике.
Поэтому команда NetEase Mail рассматривала возможность использования решения для изоляции Worker group для решения вышеуказанных проблем.
Благодаря изоляции групп Worker команда отделила высокочастотные задачи планирования, такие как мониторинг в режиме реального времени, от других задач, обеспечив стабильное выполнение основных графиков, связанных с OKR, и повысив общую стабильность и надежность выполнения задач.

На практике NetEase Mail создала на платформе различные группы Worker, содержащие различные узлы Worker, включая такие группы, как Default, AI, Monitoring, Hadoop и группы задач с большими ресурсами, чтобы избежать проблем блокировки задач и состязания за ресурсы, оптимизировать распределение ресурсов и повысить общую утилизацию ресурсов и производительность платформы.
Эта практика эффективно решила такие проблемы, как блокировка задач, вызванная высокой частотой планирования задач мониторинга QA, и проблемы OOM узла worker, вызванные высоким запросом ресурсов задачами Т+1 рано утром, тем самым снизив операционные риски.

Итоги и перспективы
Резюме практики
Внедрив платформу DolphinScheduler и проведя серию мероприятий по развертыванию и оптимизации, команда NetEase Mail достигла значительных результатов в повышении эффективности разработки данных, снижении эксплуатационных затрат и обеспечении стабильного вывода бизнес-данных. Вторичная разработка платформы тесно связана с бизнес-потребностями, подчеркивая повышенное удобство для пользователя и эффективность разработки, в то время как команда постоянно сосредотачивается на оптимизации и улучшении платформы и активно вносит вклад в сообщество, стимулируя постоянное развитие платформы.
Значение и преимущества платформы
Платформа DolphinScheduler играет важную роль в бизнесе NetEase Mail. Она не только повышает эффективность и стабильность разработки данных, но и удовлетворяет разнообразные потребности бизнеса за счет оптимизированных процессов планирования задач, обеспечивая своевременный вывод данных и активно способствуя устойчивому развитию почтового бизнеса.
Обмен опытом и идеями
В процессе развертывания и оптимизации платформы команда NetEase Mail накопила богатый практический опыт. Этот опыт представляет собой важную справочную ценность для других предприятий при выборе и использовании платформ планирования задач. Команда подчеркивает, что вторичная разработка должна быть тесно интегрирована с фактическими бизнес-потребностями, всегда уделяя первоочередное внимание пользовательскому опыту и эффективности разработки. В то же время постоянная ориентация на оптимизацию и улучшение платформы и активное участие в построении сообщества с открытым исходным кодом может стимулировать постоянное совершенствование и развитие платформы.
Перспективы на будущее
Заглядывая в будущее, команда NetEase Mail планирует продолжить изучение и продвижение в следующих направлениях:
- Внедрение ИИ:** Интеграция возможностей ИИ и LLM для достижения более интеллектуальных и удобных для пользователя процессов ETL обработки данных, повышая уровень автоматизации и интеллектуализации обработки данных.
- Управление данными:** Интеграция данных планирования DolphinScheduler с внутренним центром метаданных для достижения интеллектуального сбора и анализа lineage данных/задач и карт данных, обеспечивая сильную поддержку управления данными.
- Оптимизация платформы:** Дальнейшая оптимизация производительности и функциональности платформы DolphinScheduler для повышения ее стабильности и надежности, что позволит лучше удовлетворять растущие потребности в обработке данных.
- Внедрение DATA OPS:** Достижение интеграции и консолидации между платформой DolphinScheduler и другими системами платформ данных, содействие автоматизации интеграции и передачи данных, а также построение более эффективной экосистемы данных.
В заключение
Практика развертывания и оптимизации NetEase Mail на основе платформы DolphinScheduler не только решила существующие проблемы планирования задач и обработки данных, но и заложила прочный фундамент для будущего развития. Благодаря постоянным технологическим инновациям и практическим исследованиям NetEase Mail продолжит предоставлять пользователям более качественные и эффективные услуги электронной почты, а также вносить больший вклад в развитие сообщества с открытым исходным кодом.