애플리케이션 배포에 대한 모범 사례
이 항목에서는 BizTalk 애플리케이션 배포에 따라야 하는 모범 사례를 나열합니다.
BizTalk 애플리케이션 배포
애플리케이션 배포 절차 문서화
애플리케이션 배포에 사용된 모든 프로시저가 자세히 문서화되어 있는지 확인하여 배포가 수행된 방식에 대한 기록을 가지고 있으며 추가 배포 또는 배포 취소 방법을 알 수 있습니다. 스크립팅되지 않은 모든 항목은 자세한 단계로 문서화해야 합니다. 여기에는 외부 시스템에 대한 변경 내용 문서화 및 타사 구성 요소 배포가 포함되어야 합니다.
애플리케이션 배포 스크립트
가능한 한 많은 애플리케이션 배포 단계를 스크립팅합니다. 스크립팅은 배포 프로세스 중에 발생하는 인적 오류의 위험을 줄입니다.
BizTalk 애플리케이션 만들기
BizTalk 애플리케이션 및 .msi 파일 만들기 스크립트
- BtsTask.exe 사용하여 BizTalk 애플리케이션 만들기를 스크립팅할 수 있습니다. 애플리케이션 만들기가 스크립팅된 경우 빌드 서버의 자동화된 프로세스를 사용하여 패키지를 자동으로 빌드할 수 있습니다. 애플리케이션 만들기를 스크립팅하는 방법에 대한 자세한 내용은 BizTalk 애플리케이션 배포 및 관리를 참조하세요.
BizTalk 어셈블리 배포
프로덕션 컴퓨터에는 Visual Studio의 어셈블리를 배포하지 않음
개발 프로세스 중에 개발자는 Visual Studio에서 어셈블리를 다시 배포해야 하는 경우가 많습니다. 어셈블리를 다시 배포하기 위해 Visual Studio에서는 어셈블리에 포함된 아티팩트를 배포 취소, 바인딩 해제, 중지 및 등록 취소할 수 있습니다. 이는 개발 환경에서 반드시 필요하고 적합한 작업이지만 프로덕션 환경에서는 예기치 못하거나 원치 않는 결과를 가져올 수 있습니다. 이러한 이유로 프로덕션 컴퓨터의 Visual Studio에서 어셈블리를 배포하지 못하도록 방지할 뿐만 아니라 프로덕션 컴퓨터에 Visual Studio를 설치하지 않는 것이 좋습니다.
또한 Visual Studio를 실행 중인 컴퓨터에서는 프로덕션 데이터베이스를 참조해서는 안 됩니다.
BizTalk 애플리케이션에 아티팩트 추가
단일 응용 프로그램의 관련 아티팩트 그룹화
가능한 많은 수의 관련 아티팩트를 동일한 BizTalk 응용 프로그램에 두십시오. 이렇게 하면 아티팩트를 단일 엔터티로 관리 및 배포하게 되므로 아티팩트를 보다 쉽게 관리할 수 있습니다. 동일한 비즈니스 프로세스를 지원하는 아티팩트나 유사한 기능을 수행하는 아티팩트를 단일 응용 프로그램으로 그룹화할 수 있습니다.
개별 응용 프로그램에 공유 아티팩트 배포
두 개 이상의 응용 프로그램에서 아티팩트를 공유할 경우 공유되는 해당 아티팩트를 개별 응용 프로그램에 배포합니다. 예를 들어 두 응용 프로그램이 스키마를 공유할 경우 스키마를 개별 응용 프로그램에 두어야 합니다. BizTalk 그룹의 아티팩트 하나에만 LUID(로컬 고유 식별자)가 하나만 있을 수 있으므로 이를 권장합니다. LUID는 아티팩트 이름과 필요에 따라 다른 특성으로 구성됩니다. 한 애플리케이션에 아티팩트를 포함하고 다른 애플리케이션에서 아티팩트를 참조하는 경우 아티팩트가 포함된 애플리케이션을 중지할 때 참조 애플리케이션이 제대로 작동하지 않을 수 있습니다.
이 방법은 추가 정보 파일 및 스크립트와 같은 파일을 제외하고 아티팩트 파일 유형으로 응용 프로그램에 추가되는 모든 아티팩트 유형에 적용됩니다. 이름이 같은 둘 이상의 파일 아티팩트가 BizTalk 그룹에 배포될 수 있기 때문입니다. 따라서 동일한 이름의 파일을 두 개 이상의 응용 프로그램에서 사용할 수 있습니다. 이 경우 한 애플리케이션을 중지해도 다른 애플리케이션에는 영향을 주지 않습니다. 파일 아티팩트를 추가하는 방법에 대한 자세한 내용은 애플리케이션에 파일을 추가하는 방법을 참조하세요.
개별 응용 프로그램에 공유 웹 사이트 배포
두 개 이상의 비즈니스 솔루션에서 웹 사이트를 공유할 경우 해당 웹 사이트를 개별 응용 프로그램에 배포합니다. 이는 BizTalk 응용 프로그램을 제거할 경우 웹 사이트가 실행 중이더라도 응용 프로그램의 일부인 웹 사이트의 가상 디렉터리가 제거되기 때문입니다. 따라서 웹 사이트가 다른 비즈니스 솔루션과 공유될 경우 나머지 비즈니스 솔루션은 더 이상 올바르게 작동하지 않습니다.
개별 응용 프로그램에 공유 정책 배포
하나의 정책이 두 개 이상의 응용 프로그램에서 사용되는 경우 한 응용 프로그램에서 다른 응용 프로그램에 대한 참조를 만들지 말고 개별 응용 프로그램에 정책을 배포해야 합니다. 이는 응용 프로그램을 중지할 때 응용 프로그램 정책의 배포가 취소되기 때문입니다. 다른 응용 프로그램에서 사용하는 정책이 포함된 응용 프로그램을 중지할 경우 정책은 어떤 응용 프로그램에서도 더 이상 작동하지 않습니다.
개별 응용 프로그램에 공유 인증서 배포
인증서가 두 개 이상의 응용 프로그램의 송신 포트 또는 수신 위치에서 사용되는 경우 인증서를 개별 응용 프로그램에 배포한 후 해당 인증서를 사용해야 하는 응용 프로그램에서 이 응용 프로그램을 참조해야 합니다. BizTalk 그룹의 아티팩트 하나만 단일 LUID를 가질 수 있으므로 두 개의 다른 애플리케이션에서 동일한 인증서를 가져올 수 없기 때문입니다. 각각 동일한 인증서를 사용하는 두 응용 프로그램을 가져오려고 하면 첫 번째 가져오기는 성공하지만 두 번째 가져오기는 실패합니다. 이 경우 덮어쓸 기존 인증서가 다른 응용 프로그램에도 포함되어 있으므로 가져올 때 덮어쓰기 옵션을 사용해도 문제를 해결할 수 없습니다.
BizTalk 애플리케이션 내보내기 및 가져오기
큰 .msi 파일을 배포할 때 BizTalk Server 애플리케이션을 배포하는 데 사용하는 COM+ 구성 요소의 기본 트랜잭션 시간 제한을 늘려야 할 수 있습니다.
매우 큰(100MB 이상) .msi 파일을 배포하려고 하면 애플리케이션 배포 중 BizTalk Server 사용하는 COM+ 구성 요소의 기본 트랜잭션 제한 시간 내에 애플리케이션이 배포되지 않을 수 있습니다. 이러한 COM+ 구성 요소와 연결된 트랜잭션이 배포가 완료되기 전에 시간이 초과되면 배포가 실패합니다. 매우 큰 .msi 파일을 배포하는 경우 다음 방법 중 하나를 사용하여 이 문제를 완화하는 것이 좋습니다.
하나의 큰 .msi 파일 대신 몇 개의 작은 .msi 파일을 배포합니다.
- Component Services 관리 인터페이스에서 Microsoft.BizTalk.ApplicationDeployment.Group 및 Microsoft.BizTalk.Deployment.DeployerComponent 구성 요소와 연결된 기본 트랜잭션 시간 제한을 3,000초로 늘립니다. 이러한 구성 요소는 각각 Microsoft.BizTalk.ApplicationDeployment.Engine 및 Microsoft.Biztalk.Deployment COM+ 애플리케이션에 속합니다. 자세한 내용은 트랜잭션 제한 시간 설정을 참조하세요.
바인딩을 덮어쓰지 않도록 방지
내보내는 응용 프로그램의 바인딩이 .msi 파일을 가져오는 응용 프로그램의 바인딩을 덮어쓰지 않도록 하려면 바인딩 파일을 내보내기 작업 중 내보낼 리소스로 선택하지 마십시오.
.msi 파일이 안전한지 확인합니다.
.msi 파일에는 중요한 데이터가 포함될 수 있습니다. 파일이 안전한지 확인하는 데 도움이 되는 단계를 수행해야 합니다. .msi 파일 보안에 대한 자세한 내용은 보안 및 Windows Installer를 참조하세요.
바인딩 파일이 안전한지 확인
바인딩 파일에는 중요한 데이터가 포함될 수 있습니다. 파일이 안전한지 확인하는 데 도움이 되는 단계를 수행해야 합니다.
아무도 아티팩트를 변경하지 않을 때 내보내기 예약
사용자가 아티팩트 변경을 수행할 가능성이 없는 시간 동안 내보내기 작업을 예약합니다. 내보내기 작업이 진행되는 동안 사용자가 데이터베이스 기반 아티팩트, 가상 디렉터리, 인증서 또는 정책을 수정하는 경우 변경 내용이 내보낸 .msi 파일에 반영되지 않기 때문에 중요할 수 있습니다.
BizTalk 애플리케이션 가져오기
.msi 파일 가져오기 스크립팅
BtsTask.exe 사용하여 기존 BizTalk .msi 파일 가져오기를 스크립팅할 수 있습니다. 파일 가져오기를 .msi 스크립팅에 대한 자세한 내용은 BizTalk 애플리케이션 배포 및 관리를 참조하세요.
참고
백서는 BizTalk Server 적용됩니다.
사전 처리 또는 사후 처리 스크립트로 실행할 스크립트를 추가할 수 있습니다. 그러나 스크립트가 실행 중인 컨텍스트(가져오기, 설치 또는 제거)를 확인하고 그에 따라 처리하기 위해 환경 변수를 검사 위해 스크립트에 논리를 포함해야 합니다. 사전 및 사후 처리 스크립트를 사용하는 방법에 대한 자세한 내용은 사전 및 사후 처리 스크립트를 사용하여 애플리케이션 배포 사용자 지정을 참조하세요.
참조된 아티팩트가 있는지 확인합니다.
가져오는 애플리케이션에 다른 애플리케이션에 대한 참조가 있는 경우 BizTalk Server 참조된 애플리케이션이 있는지 확인합니다. 그러나 애플리케이션에 종속성이 있는 아티팩트가 참조된 애플리케이션에 포함되어 있는지는 확인하지 않습니다. 다른 애플리케이션의 아티팩트로 종속성이 있는 애플리케이션을 가져올 때 참조된 애플리케이션에 필요한 아티팩트 또는 아티팩트가 포함되어 있는지 확인하는 것이 좋습니다.
.msi 파일에서 가져오면 변경된 어셈블리를 전역 어셈블리 캐시에 저장할 수 없습니다.
애플리케이션에서 아티팩트를 업데이트하려면 변경되거나 업데이트된 아티팩트를 .msi 파일에서 애플리케이션으로 가져옵니다. .msi 파일을 사용하여 아티팩트를 가져오지 않는 경우 변경된 어셈블리를 전역 어셈블리 캐시에 저장하여 그룹의 모든 서버를 업데이트해야 합니다.
총 서버의 하위 집합을 업데이트하는 호스트 처리 그룹
애플리케이션에서 아티팩트를 업데이트하는 경우 일반적으로 BizTalk 그룹의 모든 서버를 업데이트해야 합니다. 그러나 호스트 처리 그룹을 사용하는 경우 그룹의 총 서버 하위 집합만 업데이트하면 됩니다.
가져오기 작업이 시간 초과되면 애플리케이션을 추가 .msi 파일로 분할합니다.
가져오기 작업이 3,600초를 초과하는 경우 시간이 초과됩니다. .msi 파일을 가져오고 작업 시간이 초과되는 경우 애플리케이션을 다시 내보내고 내보낼 아티팩트 하위 집합을 선택하여 애플리케이션의 내용을 둘 이상의 .msi 파일로 나누어야 합니다. 애플리케이션을 .msi 파일로 내보내는 방법에 대한 자세한 내용은 BizTalk 애플리케이션 내보내기 를 참조하세요.