Как стать автором
Обновить
11.39

Apache *

Свободный веб-сервер

Сначала показывать
Порог рейтинга
Уровень сложности

Kafka за 20 минут. Ментальная модель и как с ней работать

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров75K

Привет! Меня зовут Глеб Гончаров, и я руковожу подгруппой ИТ-инфраструктуры в СберМаркете. В работе мы широко используем Kafka как шину данных для микросервисов и не раз убедились на практике, что к инструменту важно подобрать правильный подход. Об этом сегодня и поговорим в двух частях — сначала обсудим основы, а в конце статьи будет ссылка на практические задания.

Читать далее
Всего голосов 41: ↑41 и ↓0+41
Комментарии15

Как мы распиливаем монолит без даунтайма

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2.9K
image

Всем привет!

На связи Михаил, и я продолжаю делиться историями про рефакторинг одного из сервисов облачной платформы #CloudMTS. В прошлый раз я рассказывал о том, как мы аккуратно раскладывали по папочкам код в соответствии с принципами чистой архитектуры. Сегодня поговорим о решении, которое позволяет нам распиливать монолит по кусочкам без простоев.

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

Наши причины перехода были следующими:

  1. В монолите концентрировалось большое количество бизнес-процессов, которые охватывали сразу несколько потребителей: пользователей облачной платформы, сейлз-менеджеров (через CRM-систему), администраторов, обработчиков метрик. Получилась такая одна большая точка отказа сразу для 4 групп бизнес-процессов.
  2. Каждый бизнес-процесс потребляет свой объем ресурсов. Например, для обработки метрик нужно 5 подов (чтобы запараллелить и ускорить обработку), для администрирования хватит и одного. Так как у нас все в одном сервисе, при масштабировании монолита мы будем ориентироваться на самый «прожорливый» бизнес-процесс. Часть ресурсов будет просто простаивать.
  3. Хотелось добиться гранулярности, чтобы независимо писать и деплоить код для каждого бизнес-процесса. И не переживать, что какие-то изменения в одном бизнес-процессе неожиданно отрикошетят в соседний.

Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии2

Проблемы приземления данных из Kafka и их решения на Apache Flink

Время на прочтение14 мин
Количество просмотров3.5K

Меня зовут Вадим Опольский и я работаю data-инженером и участвую в проведении онлайн-тренингов. В статье есть ссылки на воркшопы, чтобы повторить практические вещи из Apache Flink, о которых я расскажу. А обсудим мы следующие проблемы:

➜ Неравномерный поток данных;

➜ Потери данных при передаче их из Kafka в storage;

➜ Масштабирование и скейлинг;

➜ Backpressure;

➜ Мелкие файлы на HDFS;

➜ Стриминговый процессинг.

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии0

Как дать крылья своей сводной таблице в Apache Superset

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров6.3K

Эта статья посвящена особенностям доработок в Apache Superset, и в ней я расскажу, как его можно использовать для визуализации больших объемов данных в рамках сводных таблиц.

Хочу читать дальше
Всего голосов 14: ↑14 и ↓0+14
Комментарии2

Обеспечение безопасности в Apache Kafka

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров12K

В предыдущих статьях мы рассмотрели архитектуру решения Apache Kafka, развернули продукт и разобрались с отправкой и получением сообщений. Можно было бы, конечно, дальше погрузиться в тему использования данного решения, но в Интернете есть множество различных публикаций с примерами использования Kafka для различных задач и различных сред разработки. Поэтому данная статья будет целиком и полностью посвящена такой важной теме, как обеспечение безопасности Apache Kafka.

По своему предназначению Kafka является посредником между различными системами при их обмене сообщениями. Для этого, как мы помним, есть топики и разделы. Но проблема заключается в том, что при стандартной настройке Kafka по умолчанию, любой пользователь или приложение может писать любые сообщения в любой топик, а также считывать данные из любых топиков. Естественно, для сколько-нибудь промышленного применения системы такой подход недопустим. Например, в случае, когда несколько приложений используют один и тот же кластер Kafka, или когда кластер используется в качестве облачного сервиса для сторонних приложений, ну и естественно, когда в Kafka начинает обрабатываться конфиденциальная информация.

В статье мы будем говорить о встроенных в Kafka механизмах защиты и не будем касаться использования каких-либо наложенных средств.

Читать далее
Всего голосов 10: ↑8 и ↓2+6
Комментарии5

Книга «Apache Kafka. Потоковая обработка и анализ данных, 2-е издание»

Время на прочтение13 мин
Количество просмотров6.7K
image Привет, Хаброжители!

При работе любого корпоративного приложения образуются данные: файлы журналов, показатели, информация об активности пользователей, исходящие сообщения и другие. Правильное управление этими данными не менее важно, чем сами данные. Если вы архитектор, разработчик или инженер-технолог, но вы пока не знакомы с Apache Kafka, то из этой обновленной книги вы узнаете, как работать с потоковой платформой Kafka, позволяющей обрабатывать потоки данных в реальном времени. Дополнительные главы посвящены API AdminClient от Kafka, транзакциям, новым функциям безопасности и изменениям в инструментарии.

Инженеры из Confluent и LinkedIn, ответственные за разработку Kafka, объясняют, как с помощью этой платформы развертывать производственные кластеры Kafka, писать надежные управляемые событиями микросервисы и создавать масштабируемые приложения для потоковой обработки данных. На подробных примерах вы изучите принципы проектирования Kafka, гарантии надежности, ключевые API и детали архитектуры.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии0

Как объяснить детям, что такое DNS, Kafka, Kubernetes, облака

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров8.1K

Мы в #CloudMTS разделяем мнение, что важно объяснять своим детям устройство различных цифровых технологий. Но пытались ли вы когда-нибудь рассказать ребенку о, например, Apache Kafka as a Service? Ответ на вопрос, «чем занимается папа/мама?» может оказаться гораздо сложнее, чем хрестоматийное «почему небо голубое, солнце желтое, а трава зеленая?».

Поэтому не удивительно, что однажды мы решили собрать вместе несколько ресурсов, которые помогут нашим (и вашим) детям узнать больше об ИТ.  Кроме того, умение объяснить доступным языком, как работает та или иная технология, помогает лучше разобраться в вопросе. Такой навык пригодится, если приходится часто взаимодействовать с не техническим персоналом — например, бухгалтерами или маркетологами.

Читать далее
Всего голосов 12: ↑10 и ↓2+8
Комментарии4

Разворачиваем Apache Kafka

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров5.3K

В предыдущей статье мы достаточно подробно рассмотрели архитектуру Apache Kafka, из каких компонентов состоит данное решение, что для чего предназначено. И в этой статье мы рассмотрим процесс развертывания данного решения.

Для запуска Kafka можно использовать решения для управления кластером, такие как ZooKeeper или KRaft. В статье мы рассмотрим работу с ZooKeeper. Zookeper это распределенное приложение для управления кластером, состоящим из большого количества узлов.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии0

Стриминговая аналитика с применением Apache Pulsar и структурированные потоки Spark

Уровень сложностиСложный
Время на прочтение17 мин
Количество просмотров1.6K
image

Эта статья написана в соавторстве Даниэлем и Джианнисом Полизосом, который ещё в 2017 году был одним из первых студентов Rock the JVM. Сейчас Джианнис – старший разработчик и контрибьютор Apache Pulsar, многообещающего нового инструментария для передачи распределённых сообщений и потоковых данных. В этой статье сочетаются два наших любимых технических инструмента: Apache Pulsar и Apache Spark.

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

Примеров такого рода сколько угодно: представьте себе онлайн-сервис, предоставляющий пользователю рекомендации на основе того, какие действия пользователь совершает на веб-странице. Ещё можно представить IoT-компанию, желающую отслеживать показания сенсоров и своевременно реагировать на потенциальные сбои. К этой же категории относятся системы компьютерного зрения, которые должны в режиме реального времени анализировать видеозаписи или обнаруживать случаи мошенничества в банковских системах; этот список можно продолжать и продолжать.

Как правило, в конвейерах для потоковой обработки данных требуется уровень хранения потоков, например, Apache Pulsar или Apache Kafka. Далее для выполнения более тонких задач по обработке потоков нам потребуется движок потоковых вычислений, например, Apache Flink или Spark Structured Streaming.

Когда требуется обеспечить унифицированную пакетную обработку и работу с потоками в системах, развёрнутых в облаке, Apache Pulsar отлично подходит для полной технической поддержки таких вычислительных движков. Apache Pulsar предназначен для работы с облачной (cloud-native) инфраструктурой, а также сделан в расчёте на стратегии унифицированной пакетной обработки данных и работу с потоками.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии0

Приложения в Kubernetes: быстрый запуск Kafka с KRaft

Время на прочтение6 мин
Количество просмотров4.8K

Сегодня у нас будет возможность установить Kafka с одной из самых простых конфигураций. Эта установка не оптимизирована для производственных сред, но идеально подходит для быстрой и локальной разработки.

Apache Kafka — это фреймворк, реализующий программную шину, использующую потоковую обработку. Это программная платформа с открытым исходным кодом, разработанная Apache Software Foundation и написанная на Scala и Java. Проект направлен на предоставление унифицированной платформы с высокой пропускной способностью и малой задержкой для обработки потоков данных в реальном времени.
Иными же словами распределенная система обмена сообщениями между серверными приложениями в режиме реального времени.

Эта установка Kafka использует проект ранней версии под названием Apache Kafka Raft (KRaft). Это проект, в котором устранена зависимость от ZooKeeper.

Читать далее
Всего голосов 9: ↑7 и ↓2+5
Комментарии2

Оптимизируем NiFi Flow. Настройка Load Balancing, подходы к Scheduling и выбор метода merge

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров3.2K

Если вы используете в своей работе NiFi, то наверняка не раз задумывались об оптимизации, а может быть и делали ее. В этом посте я поделюсь своими наработками в области настроек NiFi, благодаря которым мы получили позитивные результаты и улучшили работу наших собственных сервисов. А если конкретно, речь пойдет про выбор стратегии балансировки нагрузки между нодами кластера (load balancing), настройке работы процессоров NiFi в рамках одной ноды (Concurrent tasks, Run Duration), а также о том, что делать с косяками Merge Record. Если интересно, ныряйте под кат и давайте обсудим, что еще хорошего можно сделать с NiFi. 

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии1

Когда НЕ нужно использовать Apache Kafka?

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров9.5K
image

Apache Kafka де-факто превратился в стандарт потоковой передачи событий для обработки данных на лету. По мере его широкого распространения в отрасли появляются вопросы: «А когда НЕ нужно использовать Apache Kafka? Какие ограничения у этой платформы? В каких ситуациях он не предлагает необходимые возможности? Как понять, что Kafka — неподходящий инструмент для какой-то задачи?»


В статье, перевод которой мы подготовили, автор Kai Waehner постарается ответить на эти вопросы. В отдельных главах приводится объяснение, когда стоит использовать Kafka, когда — нет, а когда — возможно.

Читать дальше →
Всего голосов 23: ↑19 и ↓4+15
Комментарии0

Знакомимся с архитектурой Apache Kafka

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров16K

- Вы работали с Кафкой?
- Нет, только читали.

За несколько десятилетий развития ИТ систем разработчики накопили огромный опыт хранения и обработки данных. Различные СУБД позволяют с помощью запросов извлекать нужные данные за определенный период и обрабатывать их так как необходимо. Однако, со временем увеличились вычислительные мощности серверов, пропускная способность каналов связи, и соответственно, возникла необходимость обрабатывать бОльшие объемы данных за единицу времени. И тут выяснилось, что при всем многообразии различных решений для хранения данных, отсутствуют решения для обработки непрерывных потоков больших объемов данных. Для решения этой проблемы стали появляться различные системы, такие как системы обмена сообщениями и агрегирования журналов. Но они не могли в полной мере обеспечить нужную производительность на больших, непрерывных потоках данных.

Для решения этой проблемы в LinkedIn решили создать нужное решение что называется с нуля. Разработчики решили отказаться от хранения больших объемов данных, как в реляционных базах данных, хранилищ пар «ключ/значение», поисковых индексов или кэшей, а рассматривать данные как непрерывно развивающийся и постоянно растущий поток и проектировать информационные системы и архитектуру данных — на этой основе. Так появилось решение Apache Kafka, которое изначально использовалось для обеспечения функционирования работающих в реальном масштабе времени приложений и потоков данных социальной сети. Но сейчас это решение используется во многих крупных компаниях. Посмотрим подробнее как оно устроено.

Читать далее
Всего голосов 15: ↑14 и ↓1+13
Комментарии11

Ближайшие события

Apache NlpCraft 1.0.0. Упрощение использования и расширение возможностей

Время на прочтение7 мин
Количество просмотров979

Apache NlpCraft - библиотека с открытым исходным кодом, предназначенная для интеграции языкового интерфейса с пользовательскими приложениями. Новая версия 1.0.0 привнесла в проект наиболее существенные изменения за все время его существования. 

Основные идеи развития библиотеки были изложены в данной заметке, вкратце напомню их суть:

1. Предельное упрощение, отказ от всех вспомогательных enterprise возможностей, предельно точная фокусировка продукта.

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

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Управляем пользователями и топиками Apache Kafka с помощью оператора Kubernetes

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров7.4K
Всем привет!

Меня зовут Иван Гулаков, я техлид DevOps-команды, отвечающей за инфраструктуру, где работают облачные сервисы #CloudMTS.

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

image
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии7

Как мы распараллелили CatBoost на Spark

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров2.9K

Привет, Хабр! Я занимаюсь инженерией данных в Х5 Tech. В этой статье я решил поделиться проблемами, с которыми столкнулись при распараллеливании CatBoost на Spark, и как мы нашли решение. Возможно, это не rocket science, но если бы со мной поделились такими ответами заранее, я бы сэкономил себе пару вечеров свободного времени.

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии1

Специфика DataOPS в Учи.ру

Время на прочтение8 мин
Количество просмотров1.8K

Привет, Хабр! Меня зовут Сергей Поляков и я DataOps‑инженер в Учи.ру. Наша платформа объединяет почти 19 млн пользователей, которые совершают сотни миллионов действий. При этом нам важно хранить эти данные, чтобы совершенствовать продукт. Главная задача Data‑инженеров — поддерживать стабильную инфраструктуру и внедрять инструменты для централизованной работы с данными. Я расскажу, какие решения по автоматизации и DevOps‑практики мы используем для этого.

Инфраструктура и источники данных

Наша инфраструктура располагается на проекте Data Warehouse. Примерный объем хранилища данных — около 100 ТБ и ежедневная дельта — в районе 10 ТБ. Все данные мы размещаем в облачном хранилище от Selectel.

Основными источниками данных являются:

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии1

Взлетаем с управляемым кластером Kafka в #CloudMTS. Несколько советов для старта

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.8K
image

Привет, Хабр!

Меня зовут Дмитрий Быстриков, я Technical Product Owner в команде Managed Service for Apache Kafka в #CloudMTS. Сегодня я расскажу, что умеет наша Kafka и чему научится в ближайшее время. Для тех, кто дочитает до конца, я приготовил несколько советов от наших инженеров по настройке кластера. Если интересно, прошу под кат.

Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии0

Создайте конвейер потоковой обработки событий в реальном времени с помощью Kafka, BigQuery & Looker Studio

Время на прочтение10 мин
Количество просмотров2.6K

Создание простого проекта потоковой обработки событий – не самая простая задача. В сегодняшней статье мы расскажем, как можно достаточно просто сделать это при помощи Kafka, BigQuery & Looker Studio.

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

Читать далее
Всего голосов 10: ↑9 и ↓1+8
Комментарии1

Выбираем формат хранения данных в экосистеме Hadoop

Время на прочтение5 мин
Количество просмотров5.3K

Привет, %username%! Меня зовут Кирилл Фурзанов, я Data Scientist в Сбере, участник профессионального сообщества NTA. При формировании витрин данных и датасетов в экосистеме Hadoop одним из важных вопросов является выбор оптимального способа хранения данных в hdfs. Рассмотрим один из важных вопросов при создании витрины – выбор соответствующего формата файла для хранения.

Читать далее
Всего голосов 6: ↑3 и ↓30
Комментарии11