Поделиться через


Использование инвентаризаций для управления ресурсами и предотвращения дублирования

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

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

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

У нас есть тонна контейнеров или экземпляров [виртуальной машины]. Можно ли удалить старые виртуальные машины? Никто не знает. Нам нужно придумать способ очистить старые вещи и использовать правильные теги, чтобы мы знали, кто владелец или команда, которые могут сообщить нам о том, что мы можем сделать и что такое жизненный цикл.... Мы не знаем, можно ли закрыть определенную виртуальную машину, так как мы не уверены, что произойдет. - Мартин, инженер DevOps, крупная логистическая компания

Отслеживание ресурсов

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

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

Доступные средства отслеживания включают:

  • Среды развертывания Azure позволяют отслеживать сложную инфраструктуру, созданную с помощью инфраструктуры в виде кода (IaC) в качестве абстрактной среды.
  • Центр API Azure предоставляет разработчикам способ обнаружения и использования API.
  • Реестры пакетов, такие как пакеты GitHub или артефакты Azure (или другие инвентаризации утвержденных пакетов и пакетов SDK), повышают безопасность цепочки поставок.

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

Повышение возможности обнаружения, управления и повторного использования

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

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

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

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

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