Многие люди знают, что Google использует один репозиторий, Monorepo для хранения всего внутреннего исходного кода. Google MonoRepo был Блог о , говорил о конференциях и написано в Связь ACM Отказ
Большинство из этого было сосредоточено на том, как монорепом влияет на производительность Google Developer и возможность иметь программное обеспечение, написанное одной командой и используемой многими другими командами. Но я не видел так много написано о том, как он также влияет на то, как команда в Google потребляют и используют открытый источник.
Преимущества Google MonoRepo
Как и внутренний код, сторонний код открытого исходного кода также импортируется в Monorepo Под префиксом/третьей_Party Отказ Есть ряд преимуществ для этого подхода:
- Одной версии Отказ Многое нравится с внутренне разработанными библиотеками в Google, импортируя код открытого исходного кода в MONOREPO гарантирует, что такая же версия библиотеки используется во всех приложениях, а не имеющих спагетти версий для понимания и поддержки во многих приложениях в Google.
- Простота обновлений Отказ С одной версией кода в одном месте, обновление библиотеки с открытым исходным кодом либо для нормального обслуживания, либо из-за критической проблемы безопасности намного проще. Вам просто нужно обновить копию проекта в/третья_party И каждое приложение в Google MonoRepo теперь построен с этой новой версией. Тем не менее, вы должны убедиться, что вы не нарушили сборку чего-либо еще в MonoRepo.
- Ясность зависимости Отказ Имея одно местоположение, где хранятся каждая зависимость, инженеры Google могут легко увидеть, какие вещи в MonoRepo зависят от заданной библиотеки с открытым исходным кодом. Таким образом, при выполнении обновления для уязвимости безопасности разработчики, которые владеют отдельными приложениями, могут быть легко уведомлены, что им нужно развертывать новые двоичные файлы с фиксированной зависимостью.
- Упрощенный лицензирующий обзор Отказ Лицензионные обзоры могут быть сделаны в одном месте, а не требуют нового обзора в любое время, когда приложение хочет зависеть от New-IT-библиотеки. Как вы можете себе представить, при масштабе Google огромное количество проектов с открытым исходным кодом уже провела свои лицензии и одобренные для использования внутри Google.
Оказывается, что эти же преимущества, которые Google получается от MonoRepo, также может быть ценным для большинства других инженерных организаций, использующих открытый источник — даже не работает в масштабе Google. Но большинство инженерных организаций не имеют возможности человека или финансовых ресурсов, чтобы обеспечить их самостоятельно.
В конце концов, одним из основных преимуществ использования открытого источника для начала является иметь доступ к большому количеству общих компонентов инфраструктуры без необходимости писать их с нуля.
Но большинство команд разработки все еще должны иметь высокую степень уверенности, что программное обеспечение, которое они используют, правильно поддерживается. Им нужно подтверждение, что он лицензирован таким образом, который приемлемо для организации, и они должны знать, что он является безопасным или уведомлением, когда есть уязвимости.
На базовом уровне большинство разработчиков будут хотеть иметь доступ к «известным хорошим» компонентам, таким как разработчики Google, получают притягивание из MonoRepo, а не в зависимости от рулетки зависимости ввода новых компонентов с открытым исходным кодом без каких-либо чеков.
Как управлять открытым источником как Google
Каждая организация может воспользоваться управлением открытым источником, как Google делает. К счастью, подписка Tidelift позволяет вам легко Создание индивидуальных каталогов компонентов с открытым исходным кодом, которые обеспечивают многие преимущества подхода Google, без необходимости поддерживать собственную вилку или инвестировать в создание и поддержание собственного монорепо.
С подпиской Tidelift вы сможете увидеть каталог пакетов с открытым исходным кодом и выпуски вы используете все ваши приложения. Вы можете утвердить новые пакеты, поскольку разработчики нуждаются в них с рабочими процессами автоматизации-разработчиков запроса пакетов, а также для проверки и одобрения менеджеров или архитекторов.
Вы можете запретить определенные пакеты или выпуски пакетов на основе известных уязвимостей безопасности или проблемы лицензирования. Или вы можете отстаивать, что уязвимость, которая в значительной степени теоретической характерной природой может быть проигнорирована не только один раз, но и каждой командой разработки, не требуя от каждого кропотливого состоимости, рассмотрела уязвимость и оценить его самостоятельно, чтобы пройти некоторое тест сканера для предварительного развертывания.
Партнерства с сопровождающими открытого источника
Мы даже делаем его шаг дальше, сотрудничая с сопровождающими многими пакетами с открытым исходным кодом, чтобы обеспечить, чтобы они были ухожены, имеют четкое лицензирование, и получите своевременные исправления безопасности, так как обнаружены уязвимости. Это беспроигрышная, потому что чем больше абонентов, которые используют проект, тем больше его сопровождающие платят, что означает, что у них еще больше времени и стимулирует сохранить свои проекты хорошо поддерживаться и актуальны.
В качестве абонента Tidelift вы можете установить собственную политику для того, как вы хотели бы использовать проекты с открытым исходным кодом в вашей организации, или вы можете просто выбрать принять наше руководство целиком.
Настройка ваших каталогов
Каталог управляемого открытого источника в Tidelift может потребоваться во многих отношениях.
- Ваши разработчики могут гарантировать, что они используют соответствующие пакеты и версии с помощью нашей инструментальной строки командной строки и запросите новые, поскольку они обнаруживают необходимость.
- Вы можете добавить чек в рамках вашего постоянного конвейера интеграции, чтобы убедиться, что ничего не построено, что использует компоненты, которые не были измерены.
- Вы можете подключить к центральному менеджеру Artifact (например, jfrog Artifactory ), чтобы разрешить только для загрузки утвержденных компонентов.
Каждый вариант может использоваться индивидуально или, для наиболее эффективного развертывания, используйте все три!
Если вы заинтересованы в том, чтобы узнать больше о передовых методах управления зависимостями с открытым исходным кодом, мы можем помочь. Поговорите с одним из наших экспертов Или узнайте больше о Подход Tidelift к управляемому открытому источнику здесь Отказ
фото Джозеф Барриентс на Бессмысленно
Оригинал: «https://dev.to/tidelift/how-google-manages-open-source-hpm»