중요한 흐름의 성능 우선 순위를 지정하기 위한 권장 사항

이 Azure Well-Architected Framework 성능 효율성 검사 목록 권장 사항에 적용됩니다.

PE:09 중요한 흐름의 성능 우선 순위를 지정합니다. 워크로드 리소스 할당 및 성능 최적화 작업은 가장 중요한 비즈니스 프로세스, 사용자 및 운영을 지원하는 흐름의 우선 순위를 지정해야 합니다.

이 가이드에서는 워크로드에서 중요한 흐름의 성능 우선 순위를 지정하기 위한 권장 사항을 설명합니다. 중요한 흐름은 수익을 창출하거나 우선 순위가 높은 운영을 추진하는 중요한 비즈니스 프로세스를 나타냅니다. 중요한 흐름의 성능에 우선 순위를 지정할 때 가장 큰 영향을 미치는 흐름이 우선 순위가 낮은 흐름보다 필요한 리소스를 가져오는지 확인합니다. 이 우선 순위를 지정하지 못하면 워크로드 우선 순위 및 사용자 환경에 불균형적인 부정적인 영향을 미칠 수 있습니다.

정의

용어 정의
흐름 워크로드에서 특정 함수를 수행하는 작업 시퀀스입니다. 흐름에는 데이터의 이동과 워크로드 구성 요소 간의 프로세스 실행이 포함됩니다.
우선 순위 큐 처리 우선 순위가 낮은 작업 전에 우선 순위가 높은 작업을 처리하는 작업입니다.
속도 제한 리소스에 액세스할 수 있는 요청 수를 제한하는 행위입니다.
시스템 흐름 시스템 내 정보 및 프로세스의 흐름입니다. 시스템은 이 흐름을 자동으로 따라 사용자 흐름 또는 워크로드 기능을 사용하도록 설정합니다.
사용자 흐름 사용자가 작업을 수행하기 위해 따르는 시퀀스입니다.

주요 디자인 전략

중요한 흐름은 고객의 주요 사용자 흐름 또는 워크로드 기능에 중요한 작업에 대한 시스템 및 데이터 흐름을 나타냅니다. 이러한 흐름에는 사용자 등록, 로그인, 제품 구매, 페이월 뒤의 페이지 액세스 또는 워크로드 내의 다른 키 경로 또는 프로세스와 같은 작업이 포함될 수 있습니다.

중요한 흐름은 사용자 환경 또는 비즈니스 운영에 크게 영향을 줍니다. 중요 흐름은 중요하지 않은 흐름보다 성능 목표 및 서비스 수준 계약이 더 높습니다. 리소스가 제한된 경우 중요하지 않은 흐름은 중요한 흐름에 대한 리소스 사용량을 산출해야 합니다. 중요한 흐름을 격리하고 최적화하기 전에 모든 흐름을 식별, 모니터링 및 우선 순위를 지정해야 합니다.

모든 흐름 식별

중요한 흐름의 성능 우선 순위를 지정하는 첫 번째 단계는 워크로드 내의 모든 흐름을 식별하는 것입니다. 흐름 식별에는 모든 사용자 경로 및 구성 요소 통신을 체계적으로 매핑하고 이해하는 작업이 포함됩니다. 성능 메트릭과 흐름이 워크로드 성능에 미치는 잠재적 영향을 이해하는 데 중점을 줍니다.

워크로드를 개별 흐름으로 해부하면 성능 병목 상태, 비효율적인 리소스 사용률 및 성능 최적화 기회를 찾을 수 있습니다. 이 지식은 필요한 개선 영역을 노출하며 중요한 흐름을 식별하는 첫 번째 단계입니다. 자세한 내용은 사용자 및 시스템 흐름 식별 및 평가 를 참조하세요.

흐름 성능 메트릭 모니터링

워크로드 내의 모든 흐름을 식별한 후에는 각 흐름에서 성능 메트릭을 수집하고 해당 메트릭을 모니터링해야 합니다. 흐름 메트릭은 응답 시간, 오류율 및 처리량에 대한 인사이트를 제공합니다. 목표는 성능 관련 메트릭을 지속적으로 관찰하고 기록하여 각 흐름이 워크로드 성능에 미치는 영향에 대한 이해를 더욱 구체화하는 것입니다. 흐름 메트릭을 모니터링하려면 다음 도구를 사용하여 데이터를 수집할 수 있습니다.

  • 분석 및 추적 도구: 이러한 도구는 애플리케이션 내에서 사용자 동작 및 상호 작용에 대한 인사이트를 제공합니다. 사용자 데이터를 분석하여 가장 일반적인 흐름, 병목 상태 또는 잠재적인 문제를 식별할 수 있습니다.

  • APM(애플리케이션 성능 모니터링) 도구: APM 도구를 사용하여 애플리케이션의 성능을 모니터링하고 흐름 실행 방법을 추적합니다. 이러한 도구는 응답 시간, 오류 및 기타 성능 메트릭에 대한 가시성을 제공하므로 중요한 흐름을 식별하고 성능을 최적화할 수 있습니다.

  • 로깅 및 디버깅 도구: 애플리케이션이 실행되는 동안 이러한 도구를 사용하여 로그를 캡처 및 분석하고 정보를 디버그합니다. 로그 및 디버깅 정보를 검토하여 흐름이 실행되는 방식을 추적하고 문제 또는 오류를 식별합니다.

중요한 흐름 식별

사용 가능한 성능 데이터를 사용하여 모든 흐름의 순위를 지정하고 중요한 흐름을 식별할 수 있습니다. 중요한 흐름의 식별에는 각 흐름의 성능 영향 및 중요도 평가가 포함됩니다. 효과적인 흐름 우선 순위를 지정하면 가장 중요한 흐름이 덜 중요한 흐름 전에 필요한 리소스를 받을 수 있습니다. 애플리케이션에서 흐름의 우선 순위를 지정하려면 다음 단계를 고려합니다.

  • 비즈니스 영향 식별: 먼저 작업 내에서 각 흐름의 중요성을 평가합니다. 각 흐름이 비즈니스 목표와 어떻게 일치하는지, 사용자에게 미치는 영향 및 성능 저하의 잠재적인 부정적인 영향에 초점을 맞춥니다. instance 경우 무료 서비스 계층은 더 많은 사용자를 유치할 수 있지만 유료 계층은 비즈니스 목표에 더 중요할 수 있습니다.

    또한 하나 이상의 비즈니스 프로세스에서 흐름의 성능 영향을 고려합니다. 여러 흐름이 단일 비즈니스 프로세스를 지원할 수 있지만 한 흐름이 해당 프로세스의 성능에 상당한 영향을 미치는 경우가 많습니다. 성능이 가장 큰 흐름을 식별하려고 합니다. 반대로 단일 흐름은 여러 프로세스를 뒷받침할 수 있습니다. 이러한 경우 이 흐름의 성능은 모든 관련 프로세스의 효율성에 직접적인 영향을 미치며 중요한 흐름일 수 있습니다.

  • 성능 데이터 분석: 각 흐름과 연결된 성능 메트릭을 분석합니다. 흐름의 효율성과 중요성에 대한 인사이트를 제공할 수 있는 패턴, 변칙 또는 뛰어난 메트릭을 찾습니다. 예를 들어 사용량이 많은 시스템 흐름은 중요한 흐름일 수 있습니다.

  • 중요도 등급 할당: 비즈니스 영향 및 성과 지표에 따라 흐름의 우선 순위를 지정해야 합니다. 높음, 보통음의 중요도 등급을 사용합니다. 비즈니스에 상당한 영향을 주거나 성능 수요가 높은 흐름은 "높은" 중요도 등급을 받아야 합니다. 이러한 흐름은 중요한 흐름입니다. 사용자 트래픽이 많은 흐름에 집중하거나 수익 창출에 직접적인 영향을 미칩니다. 다음 표에서는 중요(높음) 및 중요하지 않은 흐름(보통 에서 음)의 특성을 제공합니다.

중요한 흐름 비임계 흐름
높은 사용량 낮은 사용량
중요 비즈니스용 중요 비즈니스용이 아님
비용이 많이 드는 작업 소규모 작업
시간에 민감한 시간에 민감하지 않음
프로덕션 앞서
실시간 처리 일괄 처리
대기 시간 구분 대기 시간을 구분하지 않음
유료 사용자 미지급 사용자
프리미엄 계층 기본 계층
중요한 작업 중요하지 않은 작업
높은 수익 계정 낮은 수익 계정

중요한 흐름 격리

중요한 흐름을 격리하는 프로세스는 중요한 흐름을 지원하는 전용 리소스 또는 용량을 제공하는 것입니다. 최적의 사용자 환경 또는 중요한 비즈니스 결과에 필수적인 흐름에 리소스와 주의를 할당하려고 합니다. 목표는 중요한 흐름이 효율적이고 효과적으로 작동할 수 있는 충분한 컴퓨팅 능력, 네트워크 대역폭 및 리소스를 수신하도록 하는 것입니다. 중요한 흐름을 격리하면 중요한 흐름을 지원하는 리소스를 보다 쉽게 관리할 수 있습니다. 중요한 흐름을 격리하기 위한 권장 사항은 다음과 같습니다.

  • 리소스 구분: 중요한 흐름에 대해 별도의 리소스를 만들어 다른 프로세스의 간섭 없이 독립적으로 작동할 수 있도록 합니다. 예를 들어 전용 네트워크 세그먼트에서 또는 전용 서버를 사용하여 이러한 흐름의 처리 요구 사항을 처리하여 중요한 흐름을 격리할 수 있습니다. 이 방법은 중요하지 않은 흐름이 중요한 흐름에 부정적인 영향을 줄 수 있는 방법을 최소화하는 데 도움이 됩니다.

  • 논리적 구분: Docker 또는 Kubernetes와 같은 가상화 및 컨테이너화 도구를 사용하여 소프트웨어 수준에서 흐름을 격리합니다. 중요한 흐름을 VM(가상 머신)으로 구분할 수 있습니다. 이렇게 하면 격리된 환경을 만들어 종속성과 다른 흐름의 잠재적 간섭을 줄입니다.

  • 용량 할당: 중요한 흐름의 경우 CPU, 메모리 및 디스크 I/O와 같은 고정된 용량 집합을 명시적으로 할당합니다. 이렇게 할당하면 중요한 흐름에 항상 효율적으로 작동할 수 있는 충분한 리소스가 보장됩니다. 오케스트레이션 플랫폼을 사용하여 리소스 할당량 또는 제한을 설정합니다. 리소스를 중요한 흐름에 명시적으로 할당하면 리소스 경합을 방지하고 리소스 실행 방식의 우선 순위를 지정합니다.

절충: 리소스 구분은 비용에 영향을 줍니다. 흐름에 리소스를 바치면 종종 비용이 증가하고 일부 리소스를 활용하지 못하는 경우가 많습니다. 중요한 흐름에 대한 성능 향상을 정당화하려면 비즈니스 영향의 증가가 비용 증가보다 커야 합니다.

용량 할당 최적화

중요한 흐름을 격리할 수 없는 경우 다음으로 가장 좋은 옵션은 사용 가능한 용량에 액세스할 때 중요한 흐름의 우선 순위를 지정하는 것입니다. 용량 할당 최적화는 중요도에 따라 사용 가능한 용량을 다양한 흐름에 전략적으로 분산하는 것입니다. 용량에는 CPU, 메모리, 스토리지 및 네트워크 대역폭이 포함됩니다. 목표는 가장 중요한 흐름(가장 높은 우선 순위)이 효과적으로 작동하는 데 필요한 용량을 받도록 하는 것입니다. 용량을 할당하는 방법을 결정하려면 다음 전략을 고려합니다.

  • 리소스 용량 평가: 흐름에 할당할 수 있는 리소스 용량을 평가합니다. 용량에는 CPU, 메모리, 스토리지 및 네트워크 대역폭과 같은 리소스가 포함될 수 있습니다. 인프라 또는 환경의 제한 사항 및 제약 조건을 이해합니다.

  • 흐름 요구 사항 분석: 각 흐름의 리소스 요구 사항을 분석합니다. 흐름이 효율적으로 작동하는 데 필요한 리소스를 이해합니다. 각 흐름에 대해 CPU 사용률, 메모리 요구 사항 및 네트워크 대역폭과 같은 리소스 요구를 식별합니다.

  • 할당 우선 순위 지정: 사용 가능한 리소스 용량을 흐름의 리소스 요구 사항과 일치합니다. 흐름 우선 순위에 따라 리소스를 할당하여 우선 순위가 높은 흐름이 요구 사항을 충족하는 데 필요한 리소스를 받도록 합니다. 가장 엄격한 제약 조건이 있는 위치를 이해하고 필요한 용량 할당을 최적화합니다. 예를 들어 큐는 분당 일부 메시지만 처리할 수 있지만 일부 스토리지 제한은 도달하기 어렵습니다.

  • 속도 제한 사용: 중요한 흐름이 성능 목표를 충족하는 데 필요한 리소스를 사용할 수 있도록 하려면 비임계 흐름 및 작업에 속도 제한을 적용합니다. 속도 제한은 우선 순위가 낮은 흐름의 요청 수를 제한하며 사용자는 제한된 리소스에 대해 수행할 수 있습니다. 예를 들어 API에 대한 비평가 요청을 속도 제한할 수 있습니다. 자세한 내용은 속도 제한 패턴.NET에서 HTTP 처리기 제한 속도를 참조하세요.

  • 우선 순위 큐 처리 사용: 우선 순위 큐 처리는 특정 요청에 높은 우선 순위를 부여합니다. 큐에는 일반적으로 FIFO(선입선출) 구조가 있지만 애플리케이션을 업데이트하여 큐에 추가하는 메시지에 우선 순위를 할당할 수 있습니다. 이 기능을 사용하여 중요한 흐름 및 사용자의 우선 순위를 지정합니다. 자세한 내용은 우선 순위 큐 패턴을 참조하세요.

위험: 중요한 흐름의 요구와 워크로드의 전반적인 성능의 균형을 맞추는 것이 어려울 수 있습니다. 중요한 흐름의 우선 순위를 지정해야 하지만 중요하지 않은 흐름을 무시해서는 안 됩니다. 워크로드의 전반적인 성능 효율성은 모든 흐름에 따라 달라집니다. 무시된 비임계 흐름은 모든 사용자에게 영향을 주는 문제를 일으킬 수 있습니다. 불필요한 항목에서 너무 많은 소음이 중요한 항목의 주의를 훔칩니다. 그러나 소음이 너무 적어 전체 워크로드에 해를 끼칠 수 있습니다. 데이터 양과 경고 수는 이러한 균형 잡힌 우선 순위를 반영해야 합니다.

Azure 촉진

흐름 식별 및 모니터링: Azure는 워크로드에서 중요한 흐름의 성능을 모니터링하는 데 도움이 되는 다양한 솔루션을 제공합니다. Azure Monitor, Azure Monitor 로그 및 Azure 애플리케이션 Insights는 여러 유형의 애플리케이션 및 워크로드에 대한 포괄적인 모니터링 기능을 제공하는 서비스 중 일부입니다.

용량 할당 최적화: 일부 Azure 서비스는 중요한 흐름에 용량 및 리소스를 할당하는 리소스 구분, 논리 구분 및 용량 할당 기술을 지원합니다. 별도의 리소스를 만들고, 밀도를 높이고, 가상화 및 컨테이너화를 사용하고, 중요한 흐름에 리소스를 명시적으로 할당하는 등의 기술을 통해 중요한 흐름을 격리할 수 있습니다.

Azure API Management 같은 일부 Azure 서비스는 속도 제한에 대한 기본 제공 정책을 제공합니다. Azure는 속도 제한 디자인 패턴의 자세한 지침과 샘플 구현을 제공합니다.

Azure는 우선 순위 큐 처리를 지원합니다. Azure Functions 큐 또는 토픽의 새 메시지를 포함하여 다양한 방법으로 트리거할 수 있는 이벤트 기반 함수를 제공합니다. Azure Functions Azure Queue Storage 또는 Azure Service Bus 결합하여 우선 순위에 따라 메시지를 처리합니다.

성능 효율성 검사 목록

전체 권장 사항 집합을 참조하세요.