Smartype Hubs: синхронизация разработчиков с вашим тарифным планом

Smartype Hubs: синхронизация разработчиков с вашим тарифным планом

17 февраля 2022 г.


В знаменитой сцене в конце Индианы Джонса и последнего крестового похода главный герой истории Инди (вместе со своими товарищами и несколькими соперниками) отправляется на поиски Святого Грааля, легендарной чаши, которая, как считается, дарует бессмертие. тому, кто из него пьет. Когда он и его товарищи-искатели Грааля, наконец, достигают конца своей одиссеи, они оказываются в комнате, содержащей множество предметов, подобных Граалю, охраняемых рыцарем. Здесь они узнают, что их испытания еще не закончились. «Выбирай мудро, — говорит Рыцарь, — ибо истинный Грааль принесет тебе жизнь, а ложный Грааль заберет ее у тебя». То есть питье из настоящего Святого Грааля действительно будет иметь желаемый эффект, но глоток из любого другого кубка приведет к очень плохому дню .


План данных вашей компании — это Святой Грааль стратегии вашей организации в отношении данных. Хотя разработка этого документа не обязательно является такой же мучительной, как квест Инди, она требует значительной выработки стратегии, сотрудничества и творческого мышления со стороны вовлеченных заинтересованных сторон. «Жизнь», которую дает Grail, сродни преимуществам, которые команды получают от плана данных, — в основном это возможность использовать качественные, полные и точные данные. Реализация этих преимуществ зависит от выбора, то есть разработчики должны использовать самую последнюю версию плана в качестве основы для реализации сбора данных. Наконец, Инди смог узнать настоящий Грааль по его простому, ничем не украшенному внешнему виду, который делал его похожим на «чашу плотника», как он заметил. План данных так же прост, но мощен — прямое решение сложной проблемы.


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


Вот почему мы в mParticle создали Smartype Hubs. Инструмент появился благодаря творчеству Алекса Сапунциса, инженера, который любит облегчать жизнь другим инженерам, особенно тем, кто проводит большую часть своего времени, работая в веб-средах. Помимо Smartype Hubs, Алекс создал ориентированные на разработчиков веб-SDK [SDK для сбора данных, ориентированные на медиа] (https://docs.mparticle.com/developers/sdk/web/media/)Инструменты линтинга и Команда Линейный интерфейс, который можно использовать для связи с различными службами mParticle. Прежде чем мы углубимся в то, что такое концентраторы Smartype, как они работают и как вы можете настроить их в своих проектах, стоит вернуться к инструменту, функциональность которого они помогают расширять и улучшать: Smartype.


Smartype: краткий обзор


Smartype – это инструмент, который автоматически преобразует план данных, представленный в виде схемы JSON, в пригодный для использования код для iOS, Android и веб-платформ, предоставляет эти методы через API, и позволяет разработчикам вызывать события с помощью функции автозаполнения в выбранной ими среде IDE, а не реализовывать их вручную. Используя Smartype, инженерам не нужно ссылаться на детали своей модели данных (такие как имена атрибутов, типы данных и т. д.), чтобы правильно реализовать план данных. Это приносит пользу разработчикам не только за счет оптимизации процесса реализации плана данных, но и за счет избежания трудоемкой отладки, которая также может быть результатом этих ошибок.


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


Расширение аудитории и вариантов использования Smartype с помощью Smartype Hubs


Концентраторы Smartype — это набор скриптов и действий Github, которые позволяют инженерным группам автоматически синхронизировать версии плана данных в рамках их процесса CI/CD. Кроме того, концентраторы Smartype генерируют пользовательские SDK Smartype на основе этой последней версии тарифного плана, которые можно импортировать в проекты Github вашей организации через NPM.


Последнее преимущество особенно полезно для инженеров, работающих над веб-проектами, которые обычно работают со стеками в экосистеме JavaScript/Typescript. Поскольку Smartype построен на Java и Kotlin, наличие инструмента, который устраняет разрыв между Java-основой Smartype и родными веб-языками, с которыми обычно работают разработчики интерфейсов, выгодно.


«По мере развития инженерных проектов, — говорит Сапунцис, — требовать от инженера введения еще одного слоя в их стек становится все более затратным с вычислительной и умственной точки зрения. За последнее десятилетие многие инженеры «Full Stack» заменяют другие «серверные» технологии JavaScript/TypeScript по всему стеку. Я подумал, что было бы здорово позволить им не усложнять свой стек, чтобы получить преимущества Smartype».


Начало работы с Smartype Hubs


Чтобы начать использовать Smartype Hubs, вам необходимо иметь доступ к рабочему пространству mParticle. После этого создайте один или несколько планов данных в этой рабочей области, затем [создайте ключ API и секрет] (https://docs.mparticle.com/developers/credential-management/). Затем создайте фактический концентратор (репозиторий Github), нажав кнопку «Использовать этот шаблон» в верхней части этого примера.


Затем клонируйте свой концентратор локально и отредактируйте файл mp.config.json в корне этого репозитория, указав идентификатор тарифного плана и версии, которые вы хотите синхронизировать с концентратором:


```javascript


"smartypeHubConfig": {


"планы данных": [


"dataPlanId": "example_data_plan",


"версии": [1, 2, 3]


"dataPlanId": "another_example_data_plan",


"версии": [1]


// Это каталог, в котором будут создаваться планы данных


// Каталог должен существовать в вашей файловой системе, прежде чем вы запустите процесс


"dataplanOutputDirectory": "планы данных"


Теперь вам нужно сообщить своему концентратору, какое рабочее пространство/идентификатор клиента mParticle и секрет клиента следует искать при получении вашего тарифного плана, добавив некоторые зашифрованные секреты в ваш концентратор. Для этого нажмите Настройки => Секреты => «Новый секрет репозитория» и добавьте следующее:


```javascript


MP_WORKSPACE_ID: Целочисленный идентификатор рабочей области, содержащей ваши планы данных.


MP_CLIENT_ID: идентификатор клиента с доступом к API планирования данных.


MP_CLIENT_SECRET: соответствующий секрет клиента с доступом к API планирования данных.


Теперь, когда ваш Smartype Hub знает, где найти ваш тарифный план, пришло время для волшебства. Smartype Hubs использует Github Actions для получения указанного плана данных и создания ваших Smartype SDK. На вкладке «Действия» репозитория вашего концентратора нажмите «Создать планы данных», выберите раскрывающийся список «Запустить рабочий процесс», выберите нужную ветку и нажмите кнопку «Запустить рабочий процесс»:


Как только работа будет завершена, ваш Smartype Hub сделает три вещи:


  1. Получена последняя версия указанного вами тарифного плана из рабочей области mParticle.

  1. Созданы Smartype SDK на основе этой версии.

  1. Опубликовали эти SDK как пакеты NPM в реестре пакетов Github вашей организации под именем, основанным на вашей учетной записи владельца Github, имени вашего концентратора и идентификаторе плана данных.

Поскольку пакеты npm, которые генерирует Smartype Hubs, публикуются не в реестре NPM, а в вашем реестре пакетов Github, любой, кто импортирует их в проект, должен быть частью вашей организации.


Импорт пакета Smartype Hub в ваши проекты


Теперь, когда ваши пакеты сгенерированы, вы можете импортировать в свой проект как последнюю версию вашего тарифного плана, так и SDK Smartype на основе этого плана. Для этого сначала создайте файл .npmrc в корневом каталоге вашего проекта, указав владельца учетной записи Github и URL-адрес реестра. Например, если бы ваша компания называлась Higgs, вы бы добавили в файл .npmrc следующее:


@higgs:registry=https://npm.pkg.github.com/


Теперь вы можете запустить npm install из команды:


npm install @<higgs>/<smartype-package-distribution>


Это автоматически обновит ваш package.json и добавит в проект последнюю версию вашего тарифного плана. Обратите внимание: если вы сделали свой Smartype Hub приватным, вам необходимо убедиться, что вы настроили аутентификацию.


Все преимущества Smarttype без переключения среды разработки


И это все! Теперь у вас есть последний тарифный план данных и SDK Smartype в ваших проектах, и вы сделали это с помощью веб-ориентированных языков и инструментов разработки — установка Java не потребовалась. Smartype со всеми его преимуществами по завершению кода, предотвращению ошибок и экономии времени теперь является частью вашего процесса CI/CD, как и процесс синхронизации вашего проекта с последней версией плана данных в рабочей области mParticle. .


Возможно, лучше всех резюмирует Алекс: «Если Smartype может экспортировать ваш тарифный план в код, который работает на вашей платформе, зачем использовать Java, если вы можете просто импортировать свой тарифный план в виде пакета на выбранном вами языке?»


Хотите получать проверенные отзывы о ландшафте инженерии данных? Подпишитесь на [Дайджест разработчиков mPulse] от mParticle (https://www.mparticle.com/resources/mpulse-sign-up). Написано разработчиками для разработчиков, включая такой контент, как технические сообщения в блогах, обновления документации и тщательно подобранные материалы из области инженерии данных.



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE