Инструменты разработчика все чаще требуют, чтобы каталоги услуг для охвата данных, созданных внутри них, особенно когда этот инструмент относится к каждой части программного обеспечения, который разрабатывает организация.
Из -за этого вы часто получаете несколько каталогов обслуживания для услуг, которые вы принесли. Многочисленные каталоги означают, что ценное время было отвлечено от платформы и программных групп и направлено на заполнение метаданных о вещах, которые они должны строить.
Создание программного каталога занимает время и правильные инструменты. Я инженер -программист и менеджер продуктов, который создает инструменты разработчика и внутренние порталы. Итак, я воочию видел, как часто команды обязаны вручную вводить данные в каталоги, которые просто не были созданы для этой цели, или отслеживать дрейф от каталога до производства, когда инструмент не поддерживает такой мониторинг, и, как правило, Борьба организаций, чтобы поддерживать их различные каталоги синхронизированы.
Вы можете легко сборовать в наличии нескольких каталогов обслуживания в различных местах с множественными уровнями масштабов. Это неэффективно, и каталоги быстро выпадают из синхронизации.
Это боль.
Почему это происходит?
Каталоги программного обеспечения все более распространены в качестве основной концепции в таких инструментах, как:
Данные и наблюдениекак Datadog и New Relic
Управление инцидентамикак инцидент.io, pagerduty и Firehydrant
Опыт разработчикакак DX
Хотя важно, чтобы быть программным каталогом не является целью ни одной из этих услуг, поэтому качество проглатывания каталога, визуализация и манипуляции является неоптимальным.
Некоторая форма каталога, описывающего типы программного обеспечения, созданного организацией, необходима для того, чтобы они эффективно работали для вашей организации, но это не означает, что эта часть программного обеспечения ориентирована на создание фантастического механизма проглатывания для создания каталога.
В настоящее время большинству инструментов нужен программный каталог, поэтому он позволяет создавать один внутри приложения. Однако это редко лучший подход.
Почему вы должны использовать IDP для создания одного каталога?
Чтобы избежать нескольких каталогов, вам нужен один источник истины — один каталог, чтобы управлять ими всеми.
Существует веский случай, когда внутренний портал разработчика (IDP) будет таким каталогом.
ВПЛ, как за кулисами, портом и корой, в их ядро, программные каталоги. У них есть некоторые другие важные функции (оценочные карточки, автоматизационный бегун, чтобы помочь с задачами и т. Д.), Но хлеб с маслом делают каталог услуг легко создавать, настраивать и использовать.
Информация из различных систем поднимается для команд разработчиков для создания одной панели стекла. При создании IDP организации по своей природе создают точку интеграции и обогащения для данных об их программном обеспечении, которые затем можно использовать как часть более широкого и более сложного потока данных.
Думайте с точки зрения потоков данных:
Метаданные о программном обеспечении заходят, либо на автозаголочных, либо вручную добавлены. Богатые объекты создаются для каждой части программного обеспечения. Структурная информация определяется и включена в модель данных каталога, позволяя построить программный график, который показывает, как каждая часть программного обеспечения относится к другим.
Этот каталог является богатым информационным магазином о программном обеспечении, которое вы создали. Это всего лишь один шаг от того, чтобы быть источником истины для этой информации в другие услуги, которые требуют этого.
Введите: за кулисами
Встроенные преимущества Backstage в качестве IDP помогают ему преуспеть в этом варианте использования. Как открытая система, она более расширяется, чем проприетарное программное обеспечение, такое как порт, кора и т. Д.
В качестве доминирующего IDP на рынке, закулисная закуска оказывает большую поддержку от сторонних поставщиков услуг, к которым вам нужно подключиться, а также поставщики информации о каталоге (например, AWS, которые являются особенно активными разработчиками плагинов):
Плагин экосистемаПолем Третьи стороны постоянно создают новые варианты для поддержки этого варианта использования. Эти плагины поддерживают либо визуализацию информации в каталоге, либо, зачастую, что более важно, проглатывание или извлечение данных каталога из за кулисы.
АвтоотащениеПолем За кулисами есть. Например, AWS недавно выпустил плагин, который поддерживает автоматическое предложение ресурсов, таких как ведра S3 и экземпляры RDS, что делает завершение вашего программного каталога гораздо более простым, чем использование другой услуги.
Простота редактированияПолем За кулисами поставляется множество простых вариантов обогащения, сильно опираясь на демократически отредактированные файлы YAML в формате, который
Извлечение данныхПолем API—API и плагин за кулисы и экосистема плагина облегчают получение данных из за кулисы, когда вы готовы подключиться к сторонней системе.
Как использовать каталог за кулисами как источник истины
Давайте посмотрим на некоторые примеры того, как это можно сделать с примерами управления инцидентами, визуализации данных и опыта разработчика:
DataDog Indep.io DX
DataDog
Использование файлов Catalog-info.yaml
Ядро закулисного программного каталога — это серия файлов YAML, хранящихся вместе с кодом в вашем инструменте по управлению исходным кодом (SCM) (Backstage поддерживает их все). Они часто просто называют файлами каталога info.yaml. Это просто метаданные услуги и ссылки на другие услуги.
Datadog поддерживает свой механизм приема, который использует эти файлы Catalog-info.yaml для употребления информации о каталоге. Интеграция постоянно сканирует репозитории в вашем SCM для закулисных файлов YAML с именем Service.datadog.yaml и Catalog-info.yaml, которые вы создаете при добавлении своего сервиса в каталог программного обеспечения за кулисы. В приведенном ниже фрагменте кода показан пример каталога-info.yaml.
Вам нужно будет включить интеграцию GitHub для этого примера
Использование Datadogs API
Вы также можете опубликовать закулисные файлы YAML в API Datadog. Это позволяет программно отправлять определения услуг за кулисами, которые могут не существовать в ваших репозиториях GitHub. API каталога за кулисами может реагировать весь ваш каталог (или просто его подмножество), поэтому синхронизировать их возможна, используя этот маршрут.
Инцидент.io
Инцидент.io поддерживает различные способы подключения своего внутреннего программного каталога к источникам истины.
Использование файлов Catalog-info.yaml
Инцидент .IO работает так же через их каталог-импетер.
Каталог-импетер немного более вовлечен, так что стоит посмотреть.
Импортер может извлекать данные из различных источников, «обслуживая все способы, которыми люди обычно хранят данные своих каталога», как они так восхитительно выражаются.
Одним из вариантов является GitHub. Это работает так же, как и механизм приема данных, изложенные выше.
Использование API каталога
Другой вариант — прочитать информацию о каталоге непосредственно из за кулисы через API за кулисы. По сути, это заставляет заканчивать /сущности призывать к вашему каталогу и непосредственно извлекать информацию. Вы можете отфильтровать, что, как вы считаете нужным, чтобы убедиться, что вы только извлекаете подмножество данных, которые имеют отношение к инциденту .IO.
DX
DX использует другой подход. Они создали полный плагин за кулисы за кулисами для извлечения данных из за кулисами.
Использование плагина за кулисы за кулисами
Плагин backend backend DX устанавливает задания в закулисной за кулисы для синхронизации каталога DX
Эти задания вызывают DX API для отправки информации о каталоге.
Поскольку это может быть много данных (я регулярно вижу за кулисами каталоги с объектами 100-200K), вы, вероятно, должны использовать дополнительные параметры для фильтрации. Вы можете установить их в конфигурации приложения.
# app-config.yaml dx: catalogsyncallowedkinds: [API, Component, User, Group]
123 # app-config.yamldx: catalogsyncallowedkinds: [API, Component, User, Group]
Вы также можете контролировать Sync Pradelenot, чтобы спасти свой каталог. Опять же, это всего лишь немного конфигурации конфигурации.
# app-config.yaml dx: Расписание: Частота: Протокол: 45 12345 # app-config.yamldx: Расписание: Частота: Протокол: 45
Если вам нужен каталог, получите каталог.
Мы сосредоточились в основном на закулисной, но основное послание здесь заключается в том, что единственный каталог предпочтительнее иметь множество каталогов, каждый из которых предлагает другой источник истины. Предположим, вы должны выбрать одну часть программного обеспечения, чтобы стать окончательным каталогом. В этом случае вы должны выбрать кусок программного обеспечения, который, по сути, хорош в том, чтобы быть программным каталогом, а не инструмент, который содержит каталог.
Внутренние порталы разработчиков преуспевают в этом отношении. Будь то за кулисами, портом, корой, полагаться или любой другой IDP, это разумный выбор в мире инструментов разработки, все чаще, основанный на структурированных каталогах программного обеспечения.
Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Сэм — премьер -министр и инженер Fullstack, который работал по всей правительственной технологии в Великобритании, образование и здравоохранение в Великобритании и США. В эти дни он является главой продукта для Roadie, строит внутренние порталы разработчиков на основе за кулисами. Подробнее от Сэма Никсона