성능 효율성 패턴
성능 효율성은 워크로드가 사용자가 효율적으로 요구하는 사항을 충족하는 기능입니다. 비즈니스 요구 사항을 충족하기 위해 부하 증가를 예상해야 합니다. 성능 효율성을 달성하려면 애플리케이션 크기 조정 방법을 고려하고 기본 제공 크기 조정 작업이 있는 PaaS(Platform as a Service) 제품을 구현하는 것이 중요합니다.
성능 효율성은 성능에 영향을 주지 않고 부하 증가를 처리하거나 사용 가능한 리소스를 쉽게 늘릴 수 있는 시스템의 기능에 따라 달라집니다. 성능 효율성은 컴퓨팅 인스턴스뿐만 아니라 데이터 스토리지, 메시징 인프라 및 애플리케이션 아키텍처와 같은 기타 요소와 관련이 있습니다.
다음 표에서는 성능 효율성과 관련된 아키텍처 디자인 패턴을 요약합니다.
패턴 | 요약 |
---|---|
캐시 배제 | 필요할 때 데이터를 데이터 저장소에서 캐시로 로드합니다. |
연출 | 시스템의 각 구성 요소가 중앙 제어 지점을 사용하는 대신 비즈니스 트랜잭션의 워크플로에 대한 의사 결정 프로세스에 참여하도록 합니다. |
CQRS(명령 쿼리 책임 분리) | 별도의 인터페이스를 사용하여 데이터를 업데이트하는 작업과 데이터를 읽는 작업을 분리합니다. |
이벤트 소싱 | 추가 전용 저장소를 사용하여 도메인의 데이터에 대해 수행된 작업을 설명하는 일련의 이벤트 전체를 기록합니다. |
배포 스탬프 | 데이터 저장소를 포함하여 애플리케이션 구성 요소의 여러 독립 복사본을 배치합니다. |
Geodes | 백 엔드 서비스를 지리적 노드 세트에 배포합니다. 각 노드는 모든 지역의 클라이언트 요청을 처리할 수 있습니다. |
인덱스 테이블 | 쿼리에서 자주 참조하는 데이터 저장소의 필드에 대한 인덱스를 만듭니다. |
구체화된 뷰 | 데이터가 필수 쿼리에 이상적으로 형식이 지정되지 않은 경우 하나 이상의 데이터 저장소에서 데이터에 대해 미리 채워진 뷰를 생성합니다. |
우선 순위 큐 | 우선 순위가 높은 요청이 우선 순위가 낮은 요청보다 더 빠르게 수신 및 처리되도록 서비스로 전송된 요청의 우선 순위를 지정합니다. |
큐 기반 부하 평준화 | 작업 그리고 그 작업이 일시적인 높은 부하를 부드럽게 처리하기 위해 호출하는 서비스 사이에서 버퍼 역할을 하는 큐를 사용합니다. |
분할 | 데이터 저장소를 수평 파티션 또는 분할 집합으로 나눕니다. |
정적 콘텐츠 호스팅 | 클라이언트에 직접 자산을 제공할 수 있는 클라우드 기반 스토리지 서비스에 정적 콘텐츠를 배포합니다. |
제한 | 애플리케이션 인스턴스, 개별 테넌트 또는 서비스 전체의 리소스 사용량을 제어합니다. |