Dodging the data bottleneck — data mesh at Starship | by Taavi Pungas | Starship Technologies | May, 2021

Таави Пунгас

Гигабайты данных для продуктового пакета. Это то, что вы получаете, делая роботизированную доставку. Это много данных — особенно если вы повторяете их более миллиона раз, как мы.

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

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

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

Что такое сеть передачи данных?

Структура сети передачи данных была описан впервые пользователя Жамак Дехгани. Парадигма основана на следующем Основные понятия: продукты данных, домены данных, платформа данных и управление данными.

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

Сеть передачи данных на звездолете

Работайте с данными рядом с людьми, которые производят или потребляют информацию

Чтобы управлять гиперлокальными сайтами роботизированной доставки по всему миру, нам необходимо превратить широкий спектр данных в ценные продукты. Данные поступают от роботов (например, телеметрия, решения о маршрутизации, ETA), продавцов и клиентов (с их приложениями, заказами, предложениями и т. Д.) И от всех операционных аспектов бизнеса (от коротких удаленных задач оператора до глобальной логистики запасных частей и роботов) .

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

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

Информационные продукты

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

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

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

В любом случае мы работаем не с нашим хранилищем данных (фактически с Lake Databricks) как с единым продуктом, а с платформой, поддерживающей ряд взаимосвязанных продуктов. Такие гранулированные продукты обычно принадлежат специалистам по данным / инженерам, которые создают и поддерживают их, а не специализированным менеджерам по продуктам.

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

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

Домены данных

Сгруппируйте свои информационные продукты в домены, которые отражают организационную структуру компании.

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

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

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

Создание структуры наших продуктов данных и интерфейсов также помогло нам лучше понять мир данных. Например, в ситуации, когда доменов больше, чем членов группы данных (в настоящее время 19 против 7), мы теперь лучше работаем над тем, чтобы каждый из нас работал над взаимосвязанным набором тем. И теперь мы понимаем, что для облегчения растущей боли мы должны минимизировать количество интерфейсов, которые используются через границы домена.

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

Также есть несколько открытых вопросов. В то время как одни домены, естественно, склонны в основном раскрывать исходные данные, другие — потреблять и преобразовывать их, есть и те, и другие имеют достаточный объем. Должны ли мы разделить их, когда они слишком большие? Или нужно иметь поддомены в более крупных? Эти решения нам придется принимать автомобильным транспортом.

Платформа данных

Позвольте людям, которые создают ваши информационные продукты, стандартизировать без централизации

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

Означает ли это, что вам нужна полноценная команда разработчиков платформы данных для доступа к вашей сети передачи данных? Не совсем. Наша команда платформы данных состоит из одного инженера платформы данных, который половину своего времени проводит параллельно с доменом. Основная причина, по которой мы можем быть настолько бережливыми в проектировании платформ данных, — это выбор Spark + Databricks в качестве ядра нашей платформы данных. Наша предыдущая, более традиционная архитектура хранилищ данных принесла нам значительные накладные расходы на проектирование данных из-за разнообразия наших доменов данных.

Мы сочли полезным четко различать в стеке данных компоненты, являющиеся частью платформы, и все остальные. Вот несколько примеров того, что мы предоставляем командам доменов как часть нашей платформы данных:

  • Databricks + Spark как рабочая среда и универсальная вычислительная платформа;

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

Управление данными

Сильная личная собственность, поддерживаемая петлями обратной связи

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

Наш ответ: через культуру сопричастности, обсуждения и обратной связи в команде. Мы широко заимствовали из философии менеджмента в Netflix и культивировали:

  • персональная ответственность за результат (собственные продукты и домены);

Мы также достигли некоторых конкретных соглашений о том, как мы подходим к качеству, записали наши передовые методы (включая соглашения об именах) и т. Д. Однако мы считаем, что хорошие циклы обратной связи являются ключевым элементом для выполнения инструкций.

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

И последняя мысль об управлении — мы продолжим итерацию наших методов работы. Никогда не будет единственного «лучшего» способа что-то делать, и мы знаем, что со временем нам придется адаптироваться.

Заключительные слова

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

Если хочешь приступить к работе, взгляни наша страница карьеры для списка открытых позиций. Или взгляните наш канал на YouTube Узнайте больше о нашей ведущей в мире службе доставки роботов.

Свяжитесь со мной, если у вас есть какие-либо вопросы или мысли, и давайте учиться друг у друга!

Add a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *