Код для этого пока отсутствует, я просто недостаточно знаком с Angular, чтобы знать, как это сделать. По сути, в моей компании есть еще одна команда, которая имеет приложение Angular 6, в котором размещаются виджеты, и мы будем создавать приложение Angular 6 с несколькими подробными виджетами, которые имеют смысл появляться в продукте другой группы (их пользователи хотели бы видеть наши виджеты без возможности входа в отдельную систему).
Здесь много бюрократии, которая делает это сложной задачей, когда другая команда хочет, чтобы наша команда была как можно более изолированной. У нас есть среда разработки, тестирования и производства OpenShift, и они одинаковы. Наши виджеты достаточно сложны для того, чтобы они не хотели владеть их разработкой.
В идеале, мы могли бы как-то развернуть наш Angular-компонент, и виджеты были бы обновлены в их проекте без их участия или без необходимости доступа к любому из их кода или модулей OpenShift (за исключением одного раза, чтобы поместить основополагающий элемент). инфраструктура на месте). Это похоже на тэг iframe html, но это нарушение протокола безопасности в моей компании.
Некоторые из моих идей заключались в создании пакета NPM нашего проекта Angular, который будет находиться в репозитории NPM нашей компании, в который они будут включать и отображать соответствующие компоненты в своем проекте, однако при развертывании нового кода у нас будет переработать свой модуль OpenShift Angular, чтобы он установил новую версию пакета NPM, и они (разумно) не хотят предоставлять нам доступ к своей среде OpenShift или участвовать в наших выпусках.
Еще одной идеей была ветвь функций их углового проекта, которую мы будем размещать в нашей среде разработки OpenShift, но никогда не продвигать ее в нашу тестовую или производственную среду OpenShift, вместо этого мы слились бы с их веткой разработки, и это повлияло бы на их CI. / CD конвейер, чтобы перейти к их разработке / тестированию OpenShift и затем вручную подтолкнуть к prod. Это потребовало бы большой координации между нашими командами, однако, из-за регулярного слияния нашего кода, и есть страх того, что наш код нарушит их конвейер CI / CD, и они не смогут продолжить продвижение к разработке из-за нашего кода не пройдя тесты и т. д.
Кроме этого, есть ли какие-либо функции Angular или функции OpenShift, в которые мы могли бы внедрить наш компонент (возможно, даже в виде HTML) в их проект Angular? Очевидно, что любое решение потребует координации между нашими командами, но мы бы предпочли, чтобы они:
- Не требуется, чтобы у нас был доступ к средам OpenShift друг друга
- Не требуется больше, чем ежемесячно или около того, координация
- Не участвует в циклах освобождения друг друга
- Не влияет на конвейеры CI / CD других команд
- Начальная настройка инфраструктуры может быть большой