제품 그룹의 호환성 관리
제품 그룹(Product group)은 한 업무로 함께 설치할 제품과 외부 의존 관계를 모아 선택한 버전들의 설치 호환성을 검사합니다. Beta 기능이므로 개발 중에 기능이 바뀔 수 있습니다. 개별 제품의 패키징, 설치와 업그레이드 방법 자체를 바꾸지는 않습니다.
여러 스토어의 제품 또는 설치본을 최대 100개까지 구성원으로 포함할 수 있습니다. 초안 그룹으로 여러 제품을 게시하는 기능과는 별개입니다.
그룹 생성
- Foundry DevOps에서 스토어를 선택하고 Product groups 탭을 엽니다. 이 탭은 선택 스토어의 제품을 참조하는 그룹을 보여 줍니다.
- New product group을 선택합니다. 현재 스토어의 제품이 먼저 나타나지만 다른 스토어의 제품과 설치본도 추가할 수 있습니다.
- 시작할 제품을 추가하고 노드 위의 Add upstream members로 연결된 상위 제품을 더합니다.
- 나머지 제품이나 설치본을 추가합니다.
- 각 제품의 버전 정책과 각 구성원의 역할을 확인하고 저장합니다.
저장한 그룹은 스토어 탭이나 Compass에서 다시 엽니다.
구성원 유형과 버전
| 유형 | 사용하는 버전 |
|---|---|
| Product | 로컬 스토어의 제품이며 버전 정책으로 선택 |
| Installation | 업무가 구축된 위치의 기존 상위 설치본을 참조하며 그 설치 버전으로 검사 |
버전 정책은 Product 유형에만 있습니다.
| 정책 | 동작 |
|---|---|
| Latest published | 기본값. 가장 최근 게시 버전을 추적하여 개발 중 호환성 문제를 확인 |
| Pinned version | 특정 버전을 고정하여 같은 구성을 다시 재현 |
| Release channels | 선택한 채널에서 받을 수 있는 가장 최근 버전 사용 |
latest나 채널을 추적하면 새 버전이 게시될 때 그룹이 검사하는 버전도 달라질 수 있습니다. Installation은 항상 실제 설치 버전을 사용합니다.
구성원의 역할
유형과 역할은 서로 다른 설정입니다.
- Workflow member는 해당 업무의 일부로 설치하고 관리할 대상입니다.
- External dependency는 업무에 필요하지만 별도로 소유, 릴리스하거나 설치하는 의존 대상입니다.
그룹은 업무 구성원끼리 함께 설치할 수 있는지와 외부 의존 대상과의 호환성을 확인합니다. Marketplace는 외부 의존 대상의 기존 설치본으로 입력을 충족할 수 있습니다.
제품의 기본 역할은 Workflow member, 설치본의 기본 역할은 External dependency입니다. Make external dependency 또는 Include in workflow로 바꿀 수 있으나 적어도 하나의 Workflow member가 남아 있어야 합니다.
같은 공유 온톨로지 제품도 자기 그룹에서는 업무 구성원이고 다른 팀의 그룹에서는 외부 의존 대상일 수 있습니다.
검사 결과 해결
결과에는 설치를 차단하는 항목과 안내 항목이 있습니다. 차단 상태를 해결한 뒤 배포합니다.
| 결과 | 의미와 조치 |
|---|---|
| Dependency cycles | 제품들이 서로 먼저 설치되어야 하는 순환입니다. 의존 관계를 바꾸거나 제거하고 새 버전을 게시합니다. |
| Duplicate outputs | 같은 리소스를 여러 제품이 포함합니다. 담당 제품을 정하고 다른 제품에서 제거하여 게시합니다. |
| Incompatible upstream version | 선택한 연결 제품 버전이 호환되지 않습니다. 하위 제품을 재패키징하거나 지원하는 상위 버전을 선택합니다. |
| Missing inputs | 그룹의 어느 제품도 필요한 입력을 제공하지 않습니다. 해당 제품 또는 별도 공급 제품의 출력에 포함하여 게시합니다. |
| Missing recommendation | 출력을 제공하는 제품은 있으나 연결 추천이 없습니다. 입력을 사용하는 제품을 재패키징합니다. |
| Stale product versions | 선택 버전이 6개월보다 오래되어 새 제품과 호환되지 않을 수 있습니다. 새 버전을 게시하고 선택합니다. |
| Unused external dependencies | 업무 구성원이 연결 제품으로 사용하지 않는 외부 의존 대상입니다. 그룹에서 제거합니다. |
그래프의 제품을 선택하여 관련 리소스와 결과를 조사합니다. 예를 들어 Supply Chain Apps에 필요한 Vendor Contact Information 객체 유형을 어느 제품도 제공하지 않는다면 Supply Chain Ontology의 출력에 넣고 두 제품을 함께 재패키징합니다. 그러면 출력과 입력 매핑 및 연결 추천을 다시 계산합니다.
수정 버전을 게시한 뒤 그룹을 새로 고쳐 검사 결과를 확인합니다. 6개월 기준은 오래된 버전의 발견 조건이며 제품을 자동으로 삭제하는 보존 기간은 아닙니다.
불변 스냅샷
Snapshots > Create snapshot은 그 시점의 구성원, 각 구성원의 정확한 버전과 검사 결과를 보존합니다. 생성한 스냅샷은 바꿀 수 없습니다.
성공한 구성뿐 아니라 실패 결과도 남기므로 마지막으로 함께 설치할 수 있었던 버전과 실패가 시작된 변경을 비교할 수 있습니다. 버전 정책이 이후 새 버전을 고르더라도 이전 스냅샷의 구성은 유지합니다.