Legacy - 프로덕션 배포 팁
플랫폼에서 ServiceNow® 애플리케이션에 대한 커스터마이제이션을 개발할 때는 애플리케이션 리포지토리를 통해 프로덕션 인스턴스에 배포합니다. 이 항목에서는 애플리케이션 리포지토리에서 애플리케이션을 설치하는 것과 소스 통제를 사용하는 Git 리포지토리 간의 장단점을 살펴보고 주의 사항을 제공합니다.
대신 현재 버전의 ServiceNow 스튜디오 앱에서 앱을 빌드하고 편집해 보십시오. 자세한 내용은 ServiceNow 스튜디오 문서를 참조하십시오.
개요 또는 프로덕션에 배포
기술적으로는 소스 통제를 사용하여 Git 리포지토리에서 프로덕션 인스턴스로 애플리케이션을 "배포"할 수 있습니다. 이는 의도하지 않은 결과를 초래할 수 있습니다.
용어집
| 용어 | 정의 |
|---|---|
| 메타데이터 또는 애플리케이션 파일 | 애플리케이션에서 ServiceNow 구성을 정의하고 애플리케이션에 패키징된 sys_metadata 기록입니다. 이러한 기록은 인스턴스의 동작을 변경하지만 인시던트 또는 CMDB 기록과 같은 데이터는 포함하지 않습니다. (아래 참고 참조) |
| 범위가 지정된 애플리케이션 | 범위 경계 내의 업데이트 및 작업만 허용하도록 제한하는 ServiceNow 애플리케이션입니다. 이 메커니즘은 대부분의 새로운 개발에 사용됩니다. |
| 전역 애플리케이션 | 전역 애플리케이션은 레거시 전역 범위에서 개발됩니다. ITSM(IT Service Management)과 같은 기존 ServiceNow 애플리케이션을 사용자 지정하기 위해 이 범위에서 주로 작업이 수행됩니다. |
| 애플리케이션 리포지토리 | 애플리케이션은 일반적으로 프로덕션 인스턴스에 배포하기 위해 여기에 게시됩니다. 애플리케이션 리포지토리에는 별도의 권리 규칙이 있지만 ServiceNow Store와 유사하게 작동합니다. |
| ServiceNow Store | ServiceNow에서 게시한 애플리케이션 뿐만 아니라 외부 공급업체(벤더) 애플리케이션에 대한 리포지토리입니다. 대부분의 고객은 스토어에 게시하지 않지만 스토어에서 애플리케이션을 설치하는 경우가 많습니다. |
| 업데이트 세트 | 각 연속 인스턴스에 배포하기 위한 사용자 지정 패키지의 표준 방법입니다. 여기에는 삽입, 업데이트 및 삭제의 증분 컬렉션이 포함됩니다. |
| Legacy - 델타 로드 | 이전 제거/재설치 방법이 아닌 소스 통제에서만 변경되기 때문에 가장 효율적인 로드 방법입니다. |
| 스키마 | 테이블과 테이블의 열에 대한 정의입니다. |
| 롤백 | 관리자는 선택한 애플리케이션의 마지막 설치를 롤백할 수 있습니다. 롤백은 초기 설치에서 모든 코드, 테이블 및 파일 업데이트를 제거합니다. |
설치 위치
소스 통제를 설치하면 사용자 지정 애플리케이션의 지속적인 개발이 쉬워집니다. 따라서 애플리케이션은 스토어 애플리케이션 [sys_app] 테이블의 "설치됨" 애플리케이션이 아닌 사용자 지정 애플리케이션 [sys_store_app] 테이블에서 "개발 중" 애플리케이션으로 관리됩니다. 두 테이블은 sys_scope의 확장이므로 범위와 동일한 보호 및 제한을 제공합니다. 따라서 소스 통제가 배포된 애플리케이션의 설치를 검색할 때 시스템 애플리케이션 [sys_app] 테이블과 애플리케이션 관리자 페이지의 개발 중 섹션을 참조하십시오.ServiceNow 스토어 또는 애플리케이션 리포지토리에서 동일한 애플리케이션을 배포하는 동안에는 인스턴스에 sys_app 기록을 가질 수 없습니다. 두 배포 모델은 상호 배타적입니다. 배포 모델이 변경되는 경우 sys_app 기록을 먼저 sys_store_app 기록으로 변환해야 합니다. ServiceNow 지원에 문의하여 해당 작업을 수행하는 데 도움을 받을 수 있습니다.
델타 로드 중
Paris 릴리스 이전 ServiceNow 에는 소스 통제에서 애플리케이션 설치를 수행하면 원격 변경 내용 적용 기능을 포함하여 트리거될 때 항상 전체 애플리케이션을 제거하고 다시 설치했습니다. 을 사용하면 Legacy - 델타 로드이제 변경 사항만 업데이트되어 프로세스가 상당히 단순화됩니다.
| 애플리케이션 유형 | 설치 소스 | 패키지에 있는 스키마 | 스키마에 데이터가 포함되어 있음 | 다른 앱에서 클레임(전역) | 데이터 및 스키마에 대한 예상 결과 |
|---|---|---|---|---|---|
| 범위가 지정됨 | 애플리케이션 리포지토리 또는 스토어 | 예 | 예/아니요 | 해당 사항 없음 | 보존됨 |
| 범위가 지정됨 | 애플리케이션 리포지토리 또는 스토어 | 아니요 | 예/아니요 | 해당 사항 없음 | 보존됨 |
| 범위가 지정됨 | 소스 통제 | 예 | 예/아니요 | 해당 사항 없음 | 보존됨 |
| 범위가 지정됨 | 소스 통제 | 아니요 | 예/아니요 | 해당 사항 없음 | 제거됨 |
| 전역 | 소스 통제, 애플리케이션 리포지토리 또는 스토어 | 예 | 예/아니요 | 예/아니요 | 보존됨 |
| 아니요 | 예 | 아니요 | 보존 (1) | ||
| 아니요 | 아니요 | 예 | 보존 (2) | ||
| 소스 통제 | 아니요 | 아니요 | 아니요 | 제거됨 (3) | |
| 애플리케이션 리포지토리 | 아니요 | 아니요 | 아니요 | 보존됨 |
- 데이터베이스 스키마와 데이터는 보존되지만 기본 전역 애플리케이션으로 이동됩니다.
- 데이터베이스 스키마와 데이터는 보존되지만 설치된 경우 이전에 이러한 파일에 대한 클레임을 보유했던 전역 애플리케이션으로 이동됩니다. 그렇지 않으면 기본 전역 애플리케이션으로 이동합니다.
- u_ 프리픽스가 있는 사용자 지정 열에만 적용할 수 있습니다. ServiceNow 플랫폼에서 작성한 열은 삭제되지 않습니다.
범위가 지정된 애플리케이션에 대한 소스 통제에서 분기를 전환할 때는 프로덕션 환경에서 각별한 주의를 기울여야 합니다. 대상 분기에 현재 분기에 있는 스키마 요소가 없는 경우 관련 스키마가 삭제되어 포함된 모든 데이터가 삭제됩니다. (전역 애플리케이션은 데이터가 있는 경우 스키마를 삭제하지 않습니다.)
업데이트 세트와 마찬가지로 델타 로드에는 증분 변경의 하위 세트만 적용하면 됩니다. 업데이트 세트와 달리 애플리케이션 패키지는 전체 애플리케이션을 나타냅니다. 새 패키지에 없는 파일은 삭제됩니다. 이로 인해 기능이 변경되고 데이터가 삭제될 수 있습니다. 애플리케이션 리포지토리 또는 ServiceNow 스토어에서 업그레이드한 업데이트 세트와 애플리케이션에는 파일을 제거하거나 스키마를 삭제하려면 명시적 DELETE 페이로드가 있어야 합니다.
특히 파일을 제거하기 위해 리포지토리를 직접 편집하면 데이터 손실 및 연속 삭제를 포함하여 심각한 영향을 미칠 수 있습니다. 이 작업은 주의해서 수행하십시오.