디자인 단계 권장 사항
디자인 단계의 주요 결과물은 시스템 기능과 성능의 유효성을 확인할 수 있는 시스템 및 테스트 사례 모두에 대한 디자인 사양입니다. 테스트와 기능의 실행 가능성에 대한 조사는 초기 개발과 유효성 확인 디자인 시의 몇 가지 개념 검증 구현에 대한 초기 테스트가 포함된, 디자인 프로세스의 중요한 부분입니다. 아래 섹션에서 이에 대한 내용을 다룹니다.
상세한 처리량 및 대기 시간 프로필 얻기
디자인 단계에서는 이전 프로젝트 단계의 성능 릴리스 기준으로부터 설정한 초기 부하 프로필에 기반하여 상세한 처리량 및 대기 시간 프로필을 설정합니다. 가능한 경우에는 프로덕션 시스템의 성능 데이터를 수집합니다. 프로덕션 데이터를 사용하면 이 단계에서 테스트 사례를 디자인할 때 기준으로 사용할 수 있는 현실적인 성능 프로필을 얻을 수 있습니다. 프로덕션 데이터를 사용할 수 없는 경우에는 예상 부하량을 바탕으로 현실적인 프로필을 추정해야 합니다.
디자인 단계에서 만드는 성능 테스트 사례에 시스템이 프로덕션 환경을 지원할 때 예상되는 상황을 근접하게 에뮬레이트하는 성능 프로필을 포함하는 것이 중요합니다. 현실적이고 지속 가능한 성능 프로필을 만드는 방법에 대한 자세한 내용은 지속 가능한 성능이란?을 참조하세요.
성능 위험 완화 수단 조사
요구 사항 단계에서는 원하는 성능 목표를 달성하고자 할 때 예상되는 위험을 확인하고 가능한 완화 수단을 준비해야 합니다. 필요한 경우 디자인을 변경할 수 있는 시간을 확보할 수 있도록 가능하면 디자인 단계의 초기에 이러한 위험과 완화 수단을 조사해야 합니다. 식별된 각 위험이 실제 문제인지 POC(개념 검증) 테스트를 통해 확인한 후 완화 수단을 테스트하여 효율성을 평가해야 합니다.
예를 들어 FTP를 사용하여 다른 시스템과 통신하는 레거시 시스템이 있다고 가정해 보겠습니다. 레거시 FTP 서버와 BizTalk Server FTP 어댑터를 함께 사용하여 얻을 수 있는 처리량의 수준을 조사했지만 요구 사항 단계에서 릴리스 기준으로 설정한 처리량을 달성할 수 없다는 것이 명백합니다. 프로젝트의 위험을 완화하려면 요구 사항 단계에서 다음과 같은 대체 수단을 확인해야 합니다.
FTP 서버를 확장하고 특정 메시지 유형 전용으로 여러 개의 논리적 FTP 주소를 만들어 부하를 분산시킵니다.
단일 파일에서 일괄 처리로 많은 메시지를 전송하도록 레거시 시스템을 수정하여 메시지당 전송 오버헤드를 줄입니다.
MSMQ와 같이 FTP보다 빠른 대체 프로토콜을 사용하도록 레거시 시스템을 수정합니다.
이 예제에서 가장 먼저 조사해야 하는 부분은 현재 FTP 시스템의 성능을 테스트하여 위험이 실재한다는 것을 입증하는 것입니다. FTP 서버에서 메시지를 수신하기만 하는 간단한 개념 검증 솔루션을 구성하고 배포한 후 FTP 경로에서 예상되는 프로덕션 부하 프로필을 해당 솔루션에 적용합니다. 서버가 원하는 부하를 감당할 수 있는 경우 위험이 실재하지 않는 것이며 추가적인 조사가 필요하지 않습니다. 하지만 원하는 부하를 감당하지 못한다면 개념 검증 조사를 통해 최소한의 비용으로 문제를 해결할 수 있는 대안을 조사해야 합니다.
구체적인 시스템 규모 예상
디자인 단계에서 수행된 조사는 시스템의 성능과 관련된 귀중한 경험 정보를 제공합니다.
FTP 성능이 너무 낮은 것으로 확인된 위의 사례를 계속 살펴보겠습니다. 사용자 환경에 메시징 전송용으로 MSMQ를 사용하는 시스템이 이미 있으므로 레거시 시스템에서 MSMQ도 사용하도록 수정하는 것으로 결정되었습니다. 하지만 MSMQ를 채택한 새로운 POC(개념 검증) 성능 테스트에서 MessageBox 데이터베이스가 있는 SQL Server의 CPU 사용률이 지속적으로 100%에 달해 MSMQ 경로로는 예상된 처리량을 얻을 수 없다는 것이 확인되었습니다.
SQL Server 구성이 응용 프로그램에 최적화되어 있다고 가정하면 SQL Server 하드웨어의 용량이 부족하여 원하는 처리량을 얻지 못하는 것이 분명하므로 시스템 규모를 다시 정의해야 합니다. 이 경우에는 SQL Server 하드웨어의 CPU 추가나 더 빠른 CPU로 교체, 또는 두 가지 방안 모두가 필요합니다.
참고 항목
단계별 프로젝트 계획 권장 사항
요구 사항 단계 권장 사항
구현 단계 권장 사항
확인 단계 권장 사항
출시 단계 권장 사항