Welcome to my personal place for love, peace and happiness 🤖

Later Ctrl + ↑

Прогноз от Saxo Bank на 2025 год

Вышел очередной шок-прогноз от Saxo Bank на 2025 год. Аналитики говорят, что такие прогнозы — традиционный декабрьский пиар-ход Saxo Bank. Сам банк говорит, что это список маловероятных, но все же возможных событий в новом году, которые способны повлиять на мир, поэтому прогноз так и называется — «вопиющий». И тем не менее его подробным образом изучают во всех ведущих мировых СМИ.
В прогнозе на 2025 год Saxo Bank выдал восемь сценариев вместо обычных десяти. Первый — о том, что доллар США рухнет из-за того, что Дональд Трамп еще больше повысит торговые пошлины для стран-импортеров. Это ударит по странам Глобального Юга, которые начнут искать альтернативу доллару. Американская валюта потеряет статус мировой резервной.
Во втором пункте прогноз о том, что компания Nvidia, которая продает чипы для процессоров, обгонит Apple по капитализации в два раза. Причина — глобальная гонка искусственных интеллектов.

Согласно третьему прогнозу, Китай вольет в свою экономику 50 трлн юаней — треть своего ВВП, из-за чего китайцы начнут больше покупать, производить, рождаемость там повысится. Мировые цены на сырье вырастут, а китайский юань укрепится. По четвертому пункту сердце человека напечатают на биопринтере, что повлияет на продолжительность жизни.

Еще одно предсказание: на Земле закончится весь бензин из-за гигантского спроса на мировые запасы нефти, а из-за небывалого спроса на электромобили не станет ОПЕК.
Шестой прогноз о дата-центрах для ИИ. Они потребляют все больше электроэнергии, граждане будут больше платить за коммуналку, поэтому власти США введут для дата-центров налог.

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

Ну и британский фунт, упавший из-за Brexit, снова вырастет по отношению к евро, поскольку Великобритания проведет новую фискальную политику.

https://www.bfm.ru/news/563485

 No comments   10 mo   AI   Crypto   Life

Поздравляем детей на новый год – Ёлка желаний

У многих в офисах стали ставить ёлки желаний детей из детских домов. У нас тоже такую поставили.

Попробовал написать поздравление с помощью нейроночки. Получилось лучше всего у Claude Sonet 3.5. А проще всего это сделать можно в Gigachat от Сбера https://t.me/gigachat_bot

Я аж прослезился. 😭 Читайте сами, но я вас предупреждал))

Дорогая Женечка!

С Новым годом, милое дитя! Я получил твоё письмо, которое долетело до меня через метели и звёздные дали. Знаешь, глядя на твою фотографию рядом с книжными полками, я вижу в твоих глазах отражение тех самых звёзд, о которых хочу тебе рассказать.

Представь себе, Женечка, что там, высоко над нами, раскинулся бескрайний космос – такой огромный, что даже я, Дед Мороз, не могу обойти его весь! В нём кружатся миллиарды звёзд, каждая из которых может быть чьей-то мечтой. И знаешь что? Космос похож на твои мечты – он такой же безграничный и полный чудес.

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

Женечка, твоё сердце – словно маленькая Вселенная, в которой живут самые светлые мечты. И знаешь что? Мечты – это не просто фантазии, это маленькие звёздочки, которые освещают путь к будущему. Я, как хранитель новогодних чудес, точно знаю: когда ты искренне веришь в свою мечту, она обязательно сбывается!

Пусть в новом году твои мечты растут выше самых высоких ёлок, пусть они сияют ярче самых ярких звёзд! И помни: даже если путь к мечте кажется длинным, как путешествие через всю галактику, каждый маленький шаг приближает тебя к цели.

Храни свои мечты, моя дорогая, и верь в чудеса! Ведь чудеса случаются с теми, кто в них верит.

С новогодним волшебством,
Твой Дедушка Мороз

P.S. Я оставил тебе под ёлочкой особенный подарок, который напомнит тебе о бескрайнем космосе и о том, что мечты обязательно сбываются! 🌟

А в подарке https://www.ozon.ru/product/proektor-zvezdnogo-neba-shakachu-vega-bt-360-meteor-6-slaydov-muzykalnyy-nochnik-zvezdnoe-1354326542/

Ночник Шакачу – ооочень красивый) тоже такой хотел бы в детстве))

 No comments   10 mo   charity   Life

Пополнение – Asurah

In ‘The Masks we Wear’ series, I wanted to bring together the folkloric fused with a futuristic cyberpunk aesthetic to create something that felt timeless or time agnostic. Ironically, the pandemic has made this series especially timely for our ‘new normal’

Vini Naso
 No comments   10 mo   art   Art nft   NFT

Интеграция данных на базе SeaTunnel: Как 58.com обрабатывает более 500 млрд датасетов ежедневно

Перевод: https://dev.to/seatunnel/seatunnel-powered-data-integration-how-58-group-handles-over-500-billion-data-points-daily-3d1m

Введение

В эпоху цифровизации данные стали одним из самых ценных активов для бизнеса. Как ведущая платформа услуг повседневной жизни в Китае, 58 Group постоянно исследует и внедряет инновации в построении своей платформы интеграции данных. В этой статье будут подробно рассмотрены эволюция архитектуры, стратегии оптимизации и планы будущего развития платформы интеграции данных 58 Group на основе Apache SeaTunnel.

Вызовы платформы интеграции данных

Бизнес-контекст

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

В настоящее время 58 Group обрабатывает более 500 миллиардов сообщений ежедневно, с пиковым объемом обработки сообщений, превышающим 20 миллионов, и количеством задач, превышающим 1600. Обработка такого огромного объема данных представляет значительные вызовы.

Вызовы

В обеспечении свободного перемещения и конвергенции данных между различными источниками и достижении единого управления, циркуляции и обмена данными 58 Group сталкивается с вызовами, включая:

  • Высокая надежность: Обеспечение отсутствия потерь данных при различных условиях сбоя, обеспечение согласованности данных и стабильной работы задач.
  • Высокая пропускная способность: Обработка больших потоков данных для достижения высокой параллельности и массового переноса данных.
  • Низкая задержка: Соответствие бизнес-потребностям в обработке данных в реальном времени и быстром отклике.
  • Простота обслуживания: Упрощение конфигурации и автоматизация мониторинга для снижения нагрузки на обслуживание, упрощения быстрого обнаружения и устранения неисправностей, а также обеспечения долгосрочной доступности системы.

Эволюция архитектуры

Архитектура платформы интеграции данных 58 Group прошла через несколько этапов эволюции, чтобы адаптироваться к меняющимся бизнес-потребностям и технологическим разработкам.

Ранняя архитектура

  • 2017: Использовался Flume для интеграции платформы.
  • 2018: Внедрен Kafka Connect 1.0.
  • 2020: Использовалась версия Kafka Connect 2.4, достигнута инкрементальная балансировка нагрузки и CDC (Change Data Capture).
  • 2023: Внедрен Apache SeaTunnel, интегрированный в платформу реального времени вычислений, и расширены различные Source/Sink.

С 2017 по 2018 год платформа интеграции данных 58 Group использовала архитектуру Kafka Connect, основанную на интеграции данных с Kafka, с горизонтальным масштабированием и распределенной обработкой, поддерживающей работу Workers и Tasks на нескольких узлах; Workers автоматически перераспределяют задачи на другие Workers при сбое, обеспечивая высокую доступность; также поддерживается автоматическое управление смещением и управление задачами и конфигурацией через Rest API.

Однако с расширением объема бизнеса и разнообразием сценариев эта архитектура столкнулась с ограничениями:

Ограничения архитектуры

  • Невозможность достижения полной интеграции данных.
  • Проблемы с Coordinator Bottleneck
    • Heartbeat Timeout: Тайм-ауты сердцебиения Worker-to-coordinator вызывают перебалансировку задач, вызывая временные прерывания задач.
    • Heartbeat Pressure: Workers синхронизируются с координаторами, отслеживая состояния Workers и управляя большим объемом метаданных задач.
    • Coordinator Failure: Простой координатора влияет на распределение и перераспределение задач, вызывая сбои задач и снижение эффективности обработки.
  • Влияние Task Rebalance
    • Task Pause and Resume: Каждая перебалансировка приостанавливает задачи, затем перераспределяет их, что приводит к кратковременным прерываниям задач.
    • Rebalance Storms: Если несколько узлов Workers часто присоединяются или покидают кластер, или если сетевая дрожь вызывает тайм-ауты сердцебиения, частые Rebalance могут значительно повлиять на эффективность обработки задач, вызывая задержки.

Учитывая эти недостатки, 58 Group в 2023 году внедрила Apache SeaTunnel, интегрировав его в платформу реального времени вычислений для свободного расширения различных Source/Sink.

Текущая архитектура

В настоящее время платформа интеграции данных 58 Group, основанная на движке Apache SeaTunnel, интегрирует источники данных (Kafka, Pulsar, WMB, Hive и т.д.), обрабатывает их через встроенные функции Transform SeaTunnel и отправляет их в целевые базы данных (Hive, HDFS, Kafka, Pulsar, WMB, MySQL, SR, Redis, HBASE, Wtable, MongoDB и т.д.), достигая эффективного управления задачами, управления статусом, мониторинга задач, интеллектуальной диагностики и многого другого.

Плавная миграция и настройка производительности

Плавная миграция

При внедрении Apache SeaTunnel 58 Group должна была выполнить плавную миграцию платформы интеграции данных, чтобы минимизировать влияние на пользователей или бизнес и обеспечить согласованность данных, сохраняя согласованность формата, пути и отсутствие потерь данных.

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

Для решения этой проблемы 58 Group предприняла следующие меры:

  • Для источников добавлен RawDeserializationSchema для совместимости с неструктурированными данными.
  • Для целей, таких как использование hdfs sink для hive, для совместимости с загрузкой партиций и путями.
  • Разработка автоматических инструментов миграции:
    • Автоматическое генерирование конфигураций задач, генерирование соответствующих конфигураций задач SeaTunnel на основе конфигураций Kafka Connect.
    • Отключение исходных задач, сброс смещений и запуск новых задач.
    • Проверка и проверка.

Настройка производительности

58 Group также провела несколько оптимизаций производительности на платформе интеграции данных, включая:

  • Добавление Pulsar Sink Connector: Для увеличения пропускной способности.
  • Поддержка Array Data: Улучшение совместимости HbaseSink.
  • Поддержка установки времени истечения срока действия: Оптимизация RedisSink.
  • Увеличение пропускной способности PulsarSource: Оптимизация метода сжатия файловых коннекторов.
  • Исправление проблем с парсингом KafkaSource: Улучшение гибкости конфигурации клиентов Kafka.

Мониторинг и автоматизация операций

Кроме того, 58 Group улучшила стабильность и эффективность платформы интеграции данных через мониторинг и автоматизацию операций:

  • Мониторинг задач: Реальный мониторинг статуса задач для быстрого обнаружения и устранения сбоев.
  • Автоматизация операций: Сокращение ручного вмешательства через автоматизированные инструменты для увеличения операционной эффективности.

Планы будущего развития

58 Group имеет четкие планы на будущее развития платформы интеграции данных:

  • Постоянное улучшение интеллектуальной диагностики: Повышение точности и эффективности диагностики неисправностей через технологии машинного обучения и искусственного интеллекта.
  • Обновление на облачную и контейнеризованную инфраструктуру: Перенос платформы интеграции данных в облачную среду и реализация контейнеризованного развертывания для улучшения использования ресурсов и гибкости.

Заключение

Эволюция и оптимизация архитектуры платформы интеграции данных 58 Group — это непрерывный процесс итерации и инноваций. Через постоянные технологические исследования и практику 58 Group успешно построила эффективную, стабильную и масштабируемую платформу интеграции данных на основе Apache SeaTunnel, обеспечивая сильную поддержку данных для развития бизнеса. В будущем 58 Group продолжит углубляться в область интеграции данных, чтобы предоставлять лучшие услуги для пользователей.

Для справки

Что такое Apache SeaTunnel и для чего он нужен?

Apache SeaTunnel — это открытая платформа для интеграции данных, разработанная на основе Apache Spark и Apache Flink. Она предназначена для обеспечения высокопроизводительной, надежной и масштабируемой обработки потоковых и пакетных данных. SeaTunnel предоставляет удобный интерфейс для разработчиков, позволяющий легко интегрировать различные источники данных (такие как Kafka, Pulsar, Hive и другие) и отправлять их в различные хранилища данных (такие как HDFS, Kafka, MySQL, Redis и т.д.).

Основные функции и преимущества Apache SeaTunnel:

  1. Высокая производительность: SeaTunnel использует мощные движки Apache Spark и Apache Flink для обеспечения высокой скорости обработки данных.
  2. Надежность: Платформа обеспечивает гарантию доставки данных, чтобы избежать потерь данных при сбоях.
  3. Масштабируемость: SeaTunnel может легко масштабироваться для обработки больших объемов данных.
  4. Гибкость: Поддерживает множество источников и приемников данных, что делает его универсальным инструментом для интеграции данных.
  5. Простота использования: Предоставляет удобный интерфейс для разработчиков, упрощая настройку и управление задачами интеграции данных.

Для чего нужен Apache SeaTunnel?

Apache SeaTunnel используется для решения задач интеграции данных в различных сценариях, таких как:

  • Обработка потоковых данных: SeaTunnel может использоваться для обработки данных в реальном времени, например, для анализа данных сенсоров, мониторинга активности пользователей и т.д.
  • Интеграция данных из различных источников: SeaTunnel позволяет объединять данные из разных источников, таких как базы данных, хранилища объектов, системы логгирования и т.д.
  • Перенос данных: SeaTunnel может использоваться для переноса данных между различными хранилищами данных, например, из MySQL в HDFS или из Kafka в Elasticsearch.
  • Агрегация и трансформация данных: SeaTunnel предоставляет мощные инструменты для агрегации и трансформации данных, что позволяет создавать сложные аналитические модели.

Что за компания 58 Group в Китае?

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

Основные направления деятельности 58 Group:

  1. Поиск работы: Платформа предоставляет услуги по поиску работы для соискателей и размещению вакансий для работодателей.
  2. Недвижимость: 58 Group предлагает услуги по аренде и продаже недвижимости, включая жилую и коммерческую недвижимость.
  3. Вторичный рынок товаров: Платформа позволяет пользователям покупать и продавать б/у товары, такие как электроника, мебель, одежда и т.д.
  4. Местные услуги: 58 Group предоставляет широкий спектр местных услуг, включая ремонт, уборку, перевозки и многое другое.
  5. Информационная безопасность: Компания также занимается обеспечением информационной безопасности для своих пользователей.

Значение 58 Group в китайской экономике:

58 Group играет важную роль в китайской экономике, предоставляя удобные и доступные услуги для миллионов пользователей. Благодаря широкому спектру услуг и постоянному внедрению инноваций, 58 Group помогает упростить повседневную жизнь китайцев и стимулировать развитие местного бизнеса.

Проще говоря: 58 Group — это как китайский аналог Craigslist или Avito, но гораздо большего масштаба, предлагающий множество различных услуг в одном месте.

Презентация старая: http://filecache.investorroom.com/mr5ir_58/144/download/58.com%20Presentation-Q2%2719_0919_Management%20update.pdf

Спроси ИИ – Что вы можете мне рассказать обо мне? 🤔

Кстати на тему ИИшек разных не надейтесь, что они на вас не учатся) как минимум помнят контекст. Уже какое то время набирает популярность хайповая тема спросить ии, что он о тебе думает. См. Картинки.

“Из всего нашего общения, что вы можете мне рассказать обо мне, чего я, возможно, не знаю?”

Ну а последняя последняя тема это обложки книг – “Из всего нашего общения, что вы можете мне рассказать обо мне, чего я, возможно, не знаю? и все таки? А лучше нарисуй так как будто это обложка книги.”

как то мрачновато получилось 😨
Может генерил в разные периоды 🤔

Eng: You appear to be a person who is interested in learning and many things. You are curious and enjoy discussing various topics. You have a desire to help other people and share your knowledge. You also have a certain degree of self-awareness and understanding of your strengths and weaknesses. You are willing to learn and grow as a person. You are a good listener and empathetic. However, you also face some challenges, such as a lack of self-confidence or difficulty making decisions. You may sometimes have difficulty expressing your feelings or emotions. But overall, you appear to be a positive and goal-oriented person who is willing to overcome obstacles and achieve your goals.

Or me like a picture:

 No comments   11 mo   AI

Storj купил cunoFS

Getting started with cunoFS#
cunoFS is a scalable, high-performance POSIX compatibility layer that lets you interact with files stored on object storage such as Amazon S3, Azure Blob Storage, Google Cloud Storage, or any S3-compatible object store hosted in the cloud or locally.

Интересно, теперь наверное встроить в себя или новое что то придумает.

 No comments   12 mo   s3   Storj
 No comments   12 mo   Life   Shop

Alchemesh консоль: Основные концепции

Оригинал: https://medium.com/alchemesh/alchemesh-console-the-core-concepts-160511dee3b0
Или тут: alchemesh console the core concepts

Alchemesh core concepts

Объявление о запуске нашего фреймворка для поддержки Data Mesh было сделано, и теперь мы можем начать наше новое приключение вместе!
Идея заключается в том, чтобы делиться с вами нашими размышлениями и техническими решениями по мере их разработки.

Цель состоит в том, чтобы через эти статьи поделиться нашей интерпретацией Data Mesh, представить наш подход к разработке, получить обратную связь по нашим выборам и, самое главное, попытаться вместе подумать о вызовах, связанных с реализацией Data Mesh.
Консоль Alchemesh: Стандартизация интерфейсов для облегчения ассимиляции и понимания
Как мы уже говорили, одна из целей фреймворка, и особенно консоли, — это предоставить поддержку и структуру, чтобы помочь различным стейкхолдерам понять, взаимодействовать и принять Data Mesh.
Наше решение должно быть средством для передачи концепций Data Mesh! Это для нас серьезный вызов, особенно с таким широким подходом, как у Data Mesh.

Множество концепций вступают в игру: data product, data domain, data contract, полисемия, адресация, достоверность, владение, автономия и т.д.
Возникает множество вопросов: какие взаимодействия между различными концепциями? Какой компонент должен нести какую информацию? И так далее.
В такой ситуации сложно гарантировать, что у всех есть общее минимальное понимание, и минимизировать риск чрезмерной интерпретации или несогласованности среди стейкхолдеров. Кроме того, важно определить четкие и хорошо определенные пространства, чтобы команды могли понять концепции и делать сильные предложения через запросы функций.
Для нас было естественным выбором решить эти вопросы через консоль, стандартизируя определение основных концепций Data Mesh и их взаимодействий, все это переведенное в интерфейс.
Alchemesh: Моделирование основных концепций
⚠️ Версия, которую мы представляем здесь, соответствует тому, что мы определили на этапе проектирования MVP; она, естественно, подлежит изменению по мере разработки и реализации новых функций. ⚠️

Консоль Alchemesh: Моделирование основных концепций

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

  • Разработчик data product: Учитывая широкий спектр навыков — от универсальных разработчиков с общими навыками программирования до специализированных инженеров данных.
  • Потребители data product: Охватывает множество ролей, у которых есть одно общее, они нуждаются в доступе и использовании данных для выполнения своей работы (например, дата-сайентисты, дата-аналитики, разработчики приложений).
  • Владелец data product: Отвечает за доставку и продвижение успешных data product для своих конкретных доменов.
  • Разработчик data platform: Отвечает за доставку сервисов платформы как продукта с лучшим пользовательским опытом.
  • Владелец data platform: Создает и управляет data platform, а также использует ее. Разработчики data platform, которые работают над сервисами плоскости опыта data product.
Alchemesh: Пользователи

Data domains

Владение данными домена является основой масштабирования в сложной системе, такой как современные предприятия. Стратегическое проектирование в DDD (Domain Driven Design) принимает моделирование на основе нескольких моделей, каждая из которых контекстуализирована для конкретного домена, называемого
bounded context.

  • Bounded context — это “ограниченная применимость конкретной модели [которая] дает членам команды четкое и общее понимание того, что должно быть согласовано, а что может развиваться независимо”.
    Мы поддерживаем 3 типа data domains:
    Source aligned domain: Аналитические данные, отражающие бизнес-факты, генерируемые операционными системами, ответственными за предоставление правды своих бизнес-доменов как данных source-aligned domain.
  • Aggragated domain: Аналитические данные, являющиеся агрегатом нескольких upstream domains.
  • Consumer aligned domain: Аналитические данные, трансформированные для удовлетворения потребностей одного или нескольких конкретных use cases. Это также называется fit-for-purpose domain data.

Помимо уточнения роли домена в отношении data product, которые он производит, это также позволит федеративному data governance определить вычислительные политики для надлежащего управления сеткой (например, установление правила, что data product из source-aligned domain, не опирающиеся на какую-либо систему источника, теряют ценность) или помочь в определении приоритетов реорганизации доменов.

Вид data domain

Технические команды
В зависимости от размера определенных data domains, организация может решить определить несколько кросс-функциональных команд для управления наборами data product. Чтобы удовлетворить эту потребность, мы решили ввести концепцию технической команды, объединяющей людей, вносящих вклад в один и тот же scope в рамках домена.
Мы различаем несколько видов команд:

  • Data product team: Stream aligned team, отвечает за полноценную доставку сервисов (инжекция, потребление, обнаружение и т.д.), требуемых data product.
  • Platform team: Ее цель — обеспечить возможность stream-aligned доставлять свою работу с существенной автономностью.
  • Governance group: Enabling team, ее ключевая роль — облегчить принятие решений вокруг глобальных политик. Эти политики затем реализуются вычислительно и принимаются командами data product.
Технические команды

Система источника
В случае source-aligned data domains, операционный и аналитический миры объединены в одном домене, и это отражено в кросс-функциональных командах. Важно, чтобы консоль материализовала эту связь.
Намерение явно не в том, чтобы управлять операционными задачами в рамках платформы data mesh, но важно материализовать эту связь, чтобы преодолеть разрыв между двумя мирами, не ограничиваясь организационно.

Data product
С владельцем домена (поддерживаемым технической командой), данные, ориентированные на домен, делятся как продукт напрямую с пользователями данных.
Data as a product вводит новую единицу логической архитектуры, называемую data quantum, контролирующую и инкапсулирующую все структурные компоненты, необходимые для обмена данными как продуктом.
Приняв продуктовый подход, мы будем сообщать о состоянии нашего предложения:

  • Lifecycle state: На каком этапе жизненного цикла находится data product — находится ли он в разработке, в обнаружении, стабилен или находится в процессе вывода из эксплуатации.
  • Maturity level: Продукт, считающийся стабильным, но с небольшим историческим использованием, не имеет такого же уровня зрелости, как стабильный data product, который использовался многими потребителями в течение нескольких лет.

Входные порты
В контексте source-aligned data product, данные будут нуждаться в потреблении из операционной системы, чтобы сделать их доступными как входные данные для внутреннего обработчика data product. Эта интеграция будет выполнена через входной порт (платформенный компонент, предназначенный для этой интеграции, предоставленный платформой или реализованный командами домена).
Чтобы дать конкретный пример, предположим, что операционные данные доступны в топике Kafka и должны быть доступны на проекте GCP. Входной порт может включать предоставление бакета GCS и NiFi dataflow, который потребляет данные из топика Kafka.
Семантическая модель
Описываем семантические модели, которые data product будет предлагать.
Определение модели, читаемое машинами и людьми, которое захватывает модель домена данных: как data product моделирует домен, какие типы сущностей включает данные, свойства сущностей и т.д.
Выходные порты
Эти модели будут представлены как активы через выходной порт. Проще говоря, выходной порт — это пара, состоящая из системы хранения (объектное хранилище, колоночная таблица, топик потоковой передачи и т.д.) и прокси, который позволяет получить доступ через различные протоколы и языки (SQL, REST API, GraphQL и т.д.).
Одно из наших позиций по этому вопросу заключается в том, что выходной порт не обязательно будет представлять все модели, управляемые data product.
Код
Это основная работа разработчика data product, который часто слишком отдален от данных, которые он производит в устаревших инструментах и архитектурах данных. Data mesh ставит код, который создает ценность data product, в центр, и это естественно то, что мы делаем. Эта логика позволяет начать с входных данных для генерации выходных активов.
В data product ответственность за правильное определение data product, потребление и представление данных через стандартные порты, а также поддержание связанных метаданных лежит на разработчиках data product.
В свою очередь, все, что происходит внутри (код), полностью оставлено на усмотрение команды: Dagster Blog job, Airflow DAG, Kestra DAG, простой Python job в Lambda… Выбор и ответственность лежат на владельце (это то, что мы называем автономией).

Инфраструктура
Data product может зависеть от инфраструктуры, которая должна быть предоставлена для выполнения его обработки, такой как объектное хранилище, промежуточный набор данных и т.д., которые не связаны с тем, как выполняется код, данные потребляются или данные представляются. Этот интерфейс позволяет указать платформе, что data product нуждается в этом.
Метаданные

Актив
Мы считаем активом инстанцирование модели data product через выходной порт.
После того как data product развернут и функционирует, код должен поддерживать определенную информацию о состоянии, чтобы информировать своих потребителей о его состоянии:

  • Общее состояние: операционное, в инциденте, выключено
  • Состояние активов: их техническое качество данных (точность, полнота, своевременность, достоверность) и их свежесть.
Data product

Data contract
У нас есть data product в нашем data domain, принадлежащий технической команде, с данными, потребляемыми из операционной системы через входной порт и представляющими ценность data product, сгенерированную кодом, через выходные порты. Отлично!
Но прежде чем потреблять этот data product, я, как потребитель, хочу знать, на что я соглашаюсь, и как производитель, кто соглашается потреблять от меня! Вот где вступают в игру data contracts.
Выходной порт
Data contract применяется к выходному порту data product, а не ко всему data product. Есть несколько причин для этого:

  • Ожидания различаются между потоком потоковой передачи и объектом, хранящимся в data lake (в терминах времени отклика, частоты обновления, точности и т.д.).
  • Не все выходные порты несут одни и те же модели, поэтому обязательство к потреблению не одно и то же.

Тип доступа
В зависимости от природы data product, доступ к нему не будет разрешен одинаково. Мы поддерживаем три типа:

  • Ограниченный доступ: Это означает, что владелец data product должен рассмотреть и одобрить любые запросы на доступ.
  • Внутренний доступ: Это означает, что все запросы из одного и того же домена автоматически одобряются; в противном случае они требуют одобрения владельца.
  • Публичный доступ: Это означает, что все запросы автоматически одобряются без рассмотрения или одобрения владельца.

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

  • Время безотказной работы
  • Частота обновлений
  • Время отклика

Условия
Это также обязательство по тому, как будет потребляться продукт данных с точки зрения:

  • Использования
  • Выставления счетов
  • Период уведомления для адаптации потребления

Тест качества данных

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

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

Состояние
Контракт данных отвечает за проверку своего собственного состояния, чтобы система могла сравнить его с обязательствами. Он поддерживает состояние:

  • SLA
  • Использование
  • Выставление счетов
  • Результаты тестов качества данных
Контракт данных

Запрос на доступ к контракту данных
Контракт данных готов; теперь пришло время запросить доступ, чтобы подписаться на него! Это роль запроса на доступ, который будет включать:

  • Кто хочет потреблять?: Продукт данных, Техническая команда, Одиночный пользователь или Домен данных
  • В чем цель?
Запрос на доступ

Компоненты платформы
Я не буду вдаваться в подробности этой части, не потому что она неинтересна, а потому что, по моему мнению, она заслуживает отдельной статьи.
Важно то, что мы хотим использовать эти ресурсы для предоставления интерфейсов между разработчиками продуктов данных и командами платформы (Data Product Experience Plane и Infrastructure Utils Plane) для поддержки предоставления платформы самообслуживания, обеспечивая автономию разработчиков, предлагая децентрализацию через компоненты платформы, реализованные и предоставленные платформой (наши знаменитые LEGO).

Заключение
Вот и все — мы рассмотрели основные концепции, которые консоль будет поддерживать, чтобы позволить командам реализовать свою data mesh. Давайте не забудем одно: мы все еще на самом начальном этапе разработки, стремясь к MVP с базовыми концепциями, чтобы начать вводить data mesh! Многие концепции, необходимые для масштабирования data mesh и в долгосрочной перспективе, такие как полисемии, петли обратной связи, вычислительные политики и т.д., все еще отсутствуют. Мы доберемся до этого!
Концепции на месте; следующим шагом является северная звезда архитектуры Alchemesh!

Alchemesh: Фреймворк Data Mesh — Происхождение

Alchemesh
Data product view

Оригинал: https://medium.com/alchemesh/alchemesh-data-mesh-framework-the-genesis-aaa9aba2f7bd
Или тут: alchemesh data mesh framework the genesis

Очень ждем эту любопытную балалайку 🔥 и надеемся, что ребята ее выложат в Open Source в скором времени и не сделают её сильно или неудобно платной.

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

Data Mesh — это децентрализованный социально-технический подход к совместному использованию, доступу и управлению аналитическими данными в сложных и крупномасштабных средах — внутри или между организациями, способствующий децентрализованному управлению данными при обеспечении надёжной системы управления и продуктового подхода.

Однако реализация Data Mesh представляет собой множество вызовов и требует поддержки платформы.

Data Mesh: За пределами технологии

Вопреки распространённому мнению, Data Mesh — это не просто о перестройке команд. Это не просто о формировании кросс-функциональных команд, работающих на централизованной и монолитной платформе. Data Mesh представляет собой глубокое преобразование взаимодействий между людьми, технической архитектурой и решениями в организации, основанное на 4 принципах:

  1. Владение доменом: Децентрализация владения аналитическими данными к бизнес-доменам, ближайшим к источнику данных или основным потребителям, и независимое управление жизненным циклом данных на основе этих доменов. Этот подход согласовывает бизнес, технологии и данные, обеспечивая масштабируемость, гибкость, точность и устойчивость за счёт сокращения узких мест и обеспечения локализованного управления изменениями.
  1. Данные как продукт: Доменно-ориентированные данные делятся как продукт напрямую с пользователями данных, придерживаясь таких характеристик, как обнаруживаемость, адресуемость, понятность, достоверность, нативный доступ, взаимодействие, композиционность, внутренняя ценность и безопасность. Каждый автономный продукт данных предоставляет явные, простые в использовании контракты на обмен данными и управляется независимо, вводя концепцию “кванта данных”, которая инкапсулирует все необходимые компоненты для обмена данными, направленную на предотвращение информационных завалов, развитие культуры, ориентированной на данные, и повышение устойчивости к изменениям.
  1. Платформа самообслуживания данных: Обеспечение возможности кросс-функциональным командам делиться данными за счёт управления полным жизненным циклом продуктов данных и создания надёжной сети взаимосвязанных продуктов, упрощая обнаружение, доступ и использование данных. Она направлена на снижение стоимости децентрализованного владения данными, абстрагирование сложности управления данными, привлечение более широкого круга разработчиков и автоматизацию управления для обеспечения безопасности и соответствия.
  1. Федеративное вычислительное управление: Федеративная модель управления с представителями доменов, членами платформы данных и экспертами для балансировки автономии доменов и глобальной совместимости, полагаясь на автоматическое обеспечение политики. Она направлена на извлечение ценности из совместимых продуктов данных, смягчение рисков децентрализации, интеграцию требований управления и сокращение ручного синхронизационного накладных расходов.

Поддержка перехода к Data Mesh

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

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

Множество вызовов

Когда вы начинаете углубляться в реализацию Data Mesh, вы начинаете понимать, что перед вами стоит множество вызовов, таких как:

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

Вызовы автономии

Хотя автономия команд важна, она неизбежно приводит к расхождениям в используемых технологиях и принятых лучших практиках. Некоторые могут быть склонны к рецентрализации решений через единую платформу / технический стек (например, проект DBT с экземпляром Airflow). Однако это может просто перенести проблему на уровень платформы. Важно принимать и поддерживать эту автономию, определяя чёткие интерфейсы для продуктов данных и предоставляя платформу, которая способствует этой динамике.

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

Наша видение: Фреймворк для Data Mesh

Учитывая эти идеи и основываясь на моих предыдущих обсуждениях о переходе от современного стека данных к принципам Data Mesh, я решил разработать фреймворк для управления Data Mesh. Цель не в том, чтобы предложить универсальный продукт, а в том, чтобы предоставить гибкий и модульный инструмент. Фреймворк направлен на:

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

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

Alchemesh: Слои

Фреймворк Alchemesh будет состоять из трёх слоёв:

  1. Alchemesh Console: Отвечает за предоставление интерфейсов (UI, Rest API и т.д.) для управления метаданными Data Mesh:
    • Позволяет пользователям перемещаться по Data Mesh,
    • Позволяет командам платформы переводить всё это в предоставление платформы.
    • Это будет порталом для действий с продуктом данных:
      • Действует как реестр продуктов данных,
      • Интерфейс для разработчиков продуктов данных,
      • Интерфейс для команд платформы для активации платформы самообслуживания данных.
  1. Alchemesh Controller: Это будет плоскость управления Data Mesh, которая будет управлять платформой Data Mesh. Она создаёт связь между метаданными Data Mesh, управляемыми консолью, и компонентами платформы в автоматизированном и самообслуживающемся режиме.
  1. Alchemesh Platform Components: Набор “конструкторских” компонентов платформы для самообслуживания. Компоненты платформы разделены на несколько категорий:
    • Infrastructure Platform Component: Определяет основу платформы для поддержки Data Mesh (например, проект/аккаунт облачного провайдера, VPC, реестры, кластер Kubernetes и т.д.).
    • Output Port Platform Component: Создаёт компоненты хранения на инфраструктуре для предоставления данных, созданных продуктами данных, обеспечивая взаимодействие и управление доступом.
    • Input Port Platform Component: Создаёт компоненты для потребления данных из операционных систем и делает их доступными для инфраструктуры продуктов данных, позволяя связанному коду форматировать их и создавать ценность продукта данных.
    • Code Platform Component: Создаёт бизнес-логику на инфраструктуре, позволяя использовать входящие данные для получения желаемого результата.

Открытый исходный код

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

Модульность

Каждый из этих трёх слоёв может использоваться независимо и частично!

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

  • Часть консоли может использоваться как слой метаданных для Data Mesh, затем потребляемый и контролируемый через интерфейсы (Rest, GraphQL, Events)
    • командами платформы компании для интеграции с их системами автоматизации (CI/CD, контроллер GitOps, контроллер Kubernetes и т.д.)
    • для создания связи между метаданными сетки и платформой.
  • Контроллер должен иметь возможность управлять компонентами платформы, предлагаемыми Alchemesh, а также теми, которые производятся организацией, использующей решение.
  • Компоненты платформы не должны быть специализированы для удовлетворения требований Alchemesh или даже просто Data Mesh.
    • Они могут использоваться вне этого фреймворка, как и любой другой модуль. Например, если у меня есть компонент инфраструктуры, который позволяет мне создать кластер GKE через Terraform, он должен быть пригодным для создания кластера GKE в традиционной среде предприятия Terraform без необходимости использования консоли или контроллера, и то же самое касается выходного порта для управления хранилищем и правами доступа на BigQuery.

Заключение

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

Мы все ещё находимся на ранней стадии разработки этого фреймворка на основе нашего понимания Data Mesh. Реализация продукта также даёт нам рамки для развития нашего размышления, начиная с основных концепций (например, доменов данных, продуктов данных, контрактов данных и т.д.) до обогащения их функциями, продвигаемыми Data Mesh для обеспечения его масштабирования (например, вычислительных политик, контуров обратной связи и т.д.). Эта серия статей позволит нам делиться нашими размышлениями и решениями, которые мы принимали параллельно с разработкой!

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

Чтобы немного заинтриговать наш продукт, вот несколько набросков консоли AlchmeshIo. 😇

Data product’s output port view
Earlier Ctrl + ↓