FinTech Studios всегда старается оставаться на шаг впереди новейших и лучших технологий. Итак, мы рады, что посетили Flink Forward 2018 в Сан-Франциско, 9–10 апреля 2018 года.

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

Основные выводы

  • Flink — очень здоровый проект Apache, и мы можем предвидеть активные усилия по разработке и конвейеру в будущем.
  • Существует несколько проектов, таких как Apache SOMOA или Apache Beam, целью которых является обобщение языков SDK и специфичных для предметной области функций (например, машинного обучения), поэтому разработчикам приложений не нужно беспокоиться о базовом потоковом процессоре (Flink будет работать так же, как Apache Apex, Spark Streaming и т. д., и разработчик не заметит разницы). Дополнительная языковая поддержка, кажется, является общей темой.
  • Многие люди используют ElasticSearch в качестве хранилища для аналитики, а затем Kibana для отображения.
  • SQL CLI во Flink 1.5.0!

Отличные советы

  • Интерфейс Flink AsyncFunction очень мощный (вы можете интегрировать внешние операции в рабочий процесс Flink). Однако есть несколько факторов, о которых следует помнить, иначе вы столкнетесь с проблемами. Например: AsyncFunction использует complete(), а не collect(), поэтому пользовательский интерфейс Flink не показывает обратного давления. Это может привести к некоторым интересным сценариям отладки.
  • API SQL/Table отлично подходит для конвейеров данных, ETL с малой задержкой, потоковой аналитики и активных информационных панелей.
  • Kafka MirrorMaker позволяет легко дублировать потоки между регионами для архитектуры «активный-активный» или любой архитектуры высокой доступности.
  • Начальная загрузка Flink не существует из коробки. Однако один из вариантов — использовать сохранение потока (Kafka, Kinesis и т. д.), а не полагаться на сам Flink.

Резюме конференции

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

Очевидно, что Apache Flink — очень здоровый проект с открытым исходным кодом; это один из 10 самых активных списков рассылки Apache, который в среднем загружается 12 000 раз в месяц. Разнообразный набор вариантов использования явно является фактором его быстрого внедрения: риск капитала, обнаружение мошенничества, бизнес-аналитика в режиме реального времени и машинное обучение, и это лишь некоторые из них.

Потоковая обработка предназначена для создания приложений.

Обработка Steam изменяет архитектуру, ориентированную на базу данных.

В качестве общей тенденции мы наблюдаем отход от архитектуры «озера данных» конца 2000-х годов, когда идея заключалась в том, чтобы собрать/сохранить все сейчас, а разобраться с этим позже. Тенденция к озеру данных явно совпала с резким снижением емкости дисков и цен на память, а также ростом мощных пакетных «молотов», таких как Hadoop.

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

Однако в случае с Apache Flink в качестве примера потоково-ориентированные архитектуры вызывают более сильную связь между приложением и базой данных, что, в свою очередь, создает проблемы в эксплуатационных аспектах обслуживания таких типов систем на протяжении всего жизненного цикла разработки программного обеспечения. Некоторые примеры:

  • Как вы переносите состояние при обновлении, изменении или масштабировании Flink?
  • Как вы можете исправить проблемы в истории, также известные как повторная обработка/воспроизведение данных?

Это проблемы, с которыми столкнется любой, кто попытается развернуть Flink в рабочей среде. Data Artisans, компания, которая управляет Flink Forward, имеет платформу (платформа dA), которая призвана решить эти проблемы.

По мере улучшения основного проекта Flink появляется несколько проектов с открытым исходным кодом, специализирующихся на определенных вариантах использования или разделах Flink. Это включает в себя Pravega, который фокусируется на потоковом хранении, и Apache Beam, целью которого является предоставление нескольких языковых привязок и инструментов для предметной области, обобщенных для работы с базовыми раннерами (включая Flink).

В целом, общая «атмосфера» такова, что Flink — отличный инструмент для производственного использования сегодня в нескольких случаях, но это еще не полноценная корпоративная потоковая платформа. Для этого ему нужны такие вещи, как RBAC, управление метаданными, аварийное переключение/возврат и т. д.