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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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