다음을 통해 공유


클라우드 디자인 패턴

설계자는 기능 및 비기능적 요구 사항을 모두 충족하도록 플랫폼 서비스, 기능 및 코드를 통합하여 워크로드를 디자인합니다. 효과적인 워크로드를 디자인하려면 이러한 요구 사항을 이해하고 워크로드 제약 조건의 문제를 해결하는 토폴로지 및 방법론을 선택해야 합니다. 클라우드 디자인 패턴은 많은 일반적인 문제에 대한 솔루션을 제공합니다.

시스템 디자인은 설정된 디자인 패턴에 크게 의존합니다. 이러한 패턴의 조합을 사용하여 인프라, 코드 및 분산 시스템을 디자인할 수 있습니다. 이러한 패턴은 클라우드에서 안정적이고, 매우 안전하고, 비용 최적화되고, 운영 효율적이고, 고성능 애플리케이션을 빌드하는 데 매우 중요합니다.

다음 클라우드 디자인 패턴은 기술에 구애받지 않으므로 분산 시스템에 적합합니다. Azure, 다른 클라우드 플랫폼, 온-프레미스 설정 및 하이브리드 환경에서 이러한 패턴을 적용할 수 있습니다.

클라우드 디자인 패턴이 디자인 프로세스를 향상시키는 방법

클라우드 워크로드는 분산 컴퓨팅의 오류에 취약하며 분산 시스템의 작동 방식에 대한 일반적이지만 잘못된 가정입니다. 이러한 오류의 예는 다음과 같습니다.

  • 네트워크는 신뢰할 수 있습니다.
  • 대기 시간은 0입니다.
  • 대역폭은 무한합니다.
  • 네트워크는 안전합니다.
  • 토폴로지 변경 되지 않습니다.
  • 관리자가 한 명 있습니다.
  • 구성 요소 버전 관리가 간단합니다.
  • 관찰 가능성 구현이 지연될 수 있습니다.

이러한 오해로 인해 워크로드 디자인에 결함이 발생할 수 있습니다. 디자인 패턴은 이러한 오해를 없애는 것이 아니라 인식을 높이고 보상 전략을 제공하며 완화를 제공하는 데 도움이 됩니다. 각 클라우드 디자인 패턴에는 장단점이 있습니다. 구현하는 방법 대신 특정 패턴을 선택해야 하는 이유에 집중합니다.

이러한 업계 표준 디자인 패턴을 잘 설계된 워크로드 디자인의 핵심 구성 요소로 사용하는 방법을 고려합니다. Azure Well-Architected Framework의 각 디자인 패턴은 하나 이상의 핵심 요소를 나타냅니다. 일부 패턴은 다른 기둥의 목표에 영향을 미치는 절충안을 도입할 수 있습니다.

패턴 카탈로그

이 카탈로그의 각 패턴은 해결되는 문제, 패턴 적용에 대한 고려 사항 및 Microsoft Azure 서비스 및 도구를 기반으로 하는 예제를 설명합니다. 일부 패턴에는 Azure에서 패턴을 구현하는 방법을 보여 주는 코드 샘플 또는 코드 조각이 포함됩니다.

패턴 요약 Well-Architected 프레임워크 핵심 요소
특사 소비자 서비스 또는 애플리케이션을 대신하여 네트워크 요청을 전송하는 도우미 서비스를 만듭니다. -신뢰도

-안전
부패 방지 레이어 현대식 애플리케이션과 레거시 시스템 사이에 외관 또는 어댑터 레이어를 구현합니다. - 운영 우수성
비동기 요청-회신 프런트 엔드 호스트에서 백 엔드 처리를 분리합니다. 이 패턴은 백 엔드 처리가 비동기적이어야 하지만 프런트 엔드에 명확하고 시기 적절하게 응답해야 하는 경우에 유용합니다. - 성능 효율성
프런트 엔드에 대한 백 엔드 특정 프런트 엔드 애플리케이션 또는 인터페이스에 대한 별도의 백 엔드 서비스를 만듭니다. -신뢰도

-안전

- 성능 효율성
격벽 애플리케이션의 요소를 풀로 격리하여 실패하는 경우 다른 요소가 계속 작동하도록 합니다. -신뢰도

-안전

- 성능 효율성
캐시-어사이드 요청 시 데이터를 데이터 저장소의 캐시로 로드합니다. -신뢰도

- 성능 효율성
안무 중앙 오케스트레이터에 의존하지 않고 개별 서비스가 비즈니스 작업이 처리되는 시기와 방법을 결정하도록 합니다. - 운영 우수성

- 성능 효율성
회로 차단기 애플리케이션이 원격 서비스 또는 리소스에 연결할 때 수정하는 데 시간이 가변적일 수 있는 오류를 처리합니다. -신뢰도

- 성능 효율성
클레임 검사 큰 메시지를 클레임 검사 및 페이로드로 분할하면 메시지 버스의 과부하를 피할 수 있습니다. -신뢰도

-안전

- 비용 최적화

- 성능 효율성
보정 트랜잭션 최종적으로 일관된 작업을 집합적으로 구성하는 단계 시퀀스로 수행되는 작업을 실행 취소합니다. -신뢰도
경쟁하는 소비자들 여러 동시 소비자가 동일한 메시징 채널에서 수신하는 메시지를 처리할 수 있도록 설정합니다. -신뢰도

- 비용 최적화

- 성능 효율성
컴퓨팅 리소스 통합 여러 작업 또는 작업을 단일 계산 단위로 통합합니다. - 비용 최적화

- 운영 우수성

- 성능 효율성
CQRS 고유 인터페이스를 사용하여 데이터를 업데이트하는 작업과 데이터를 읽는 작업을 구분합니다. - 성능 효율성
배포 스탬프 데이터 저장소를 포함하여 애플리케이션 구성 요소의 여러 독립 복사본을 배치합니다. - 운영 우수성

- 성능 효율성
이벤트 소싱 추가 전용 저장소를 사용하여 도메인의 데이터에 대해 수행된 작업을 설명하는 전체 일련의 이벤트를 기록합니다. -신뢰도

- 성능 효율성
외부 구성 저장소 애플리케이션 배포 패키지에서 중앙 위치로 구성 정보를 이동합니다. - 운영 우수성
페더레이션 ID 외부 ID 공급자에게 인증을 위임합니다. -신뢰도

-안전

- 성능 효율성
게이트웨이 집계 게이트웨이를 사용하여 여러 개별 요청을 단일 요청으로 집계합니다. -신뢰도

-안전

- 운영 우수성

- 성능 효율성
게이트웨이 부하 분산 공유 또는 특수 서비스 기능을 게이트웨이 프록시에 오프로드합니다. -신뢰도

-안전

- 비용 최적화

- 운영 우수성

- 성능 효율성
게이트웨이 라우팅 단일 엔드포인트를 사용하여 요청을 여러 서비스로 라우팅합니다. -신뢰도

- 운영 우수성

- 성능 효율성
지오데 지리적으로 분산된 노드에 백 엔드 서비스를 배포합니다. 각 노드는 모든 지역의 클라이언트 요청을 처리할 수 있습니다. -신뢰도

- 성능 효율성
건강 엔드포인트 모니터링 외부 도구가 노출된 엔드포인트를 통해 주기적으로 액세스할 수 있는 기능 검사를 애플리케이션 내부에 구현합니다. -신뢰도

- 운영 우수성

- 성능 효율성
인덱스 테이블 쿼리가 자주 참조하는 데이터 저장소의 필드에 대한 인덱스를 만듭니다. -신뢰도

- 성능 효율성
리더 선택 하나의 인스턴스를 리더로 선택하여 분산 애플리케이션의 작업을 조정합니다. 리더는 공동 작업 인스턴스의 컬렉션을 관리합니다. -신뢰도
구체화된 뷰 필요한 쿼리 작업에 대해 데이터의 형식이 잘못된 경우 하나 이상의 데이터 저장소에 있는 데이터에 대해 미리 채워진 뷰를 생성합니다. - 성능 효율성
메시징 브리지 그렇지 않으면 호환되지 않는 메시징 시스템 간의 통신을 가능하게 하는 중개자 빌드 - 비용 최적화

- 운영 우수성
파이프 및 필터 복잡한 처리를 수행하는 작업을 재사용 가능한 일련의 별도 요소로 분류합니다. -신뢰도
우선 순위 큐 우선 순위가 높은 요청이 더 빠르게 처리되도록 서비스에 전송되는 요청의 우선 순위를 지정합니다. -신뢰도

- 성능 효율성
게시자/구독자 보낸 사람을 수신기에 결합하지 않고 애플리케이션에서 여러 소비자에게 이벤트를 비동기적으로 알리도록 설정합니다. -신뢰도

-안전

- 비용 최적화

- 운영 우수성

- 성능 효율성
격리 외부 자산이 워크로드를 소비하기 전에 팀에서 합의한 품질 수준을 충족하는지 확인합니다. -안전

- 운영 우수성
큐 기반 부하 평준화 태스크와 서비스 사이에 버퍼를 만드는 큐를 사용하여 간헐적인 부하를 원활하게 처리합니다. -신뢰도

- 비용 최적화

- 성능 효율성
속도 제한 리소스 사용을 제어하여 제한 오류를 방지하거나 최소화합니다. -신뢰도
다시 시도 실패한 작업을 다시 시도하여 애플리케이션에서 예상된 임시 오류를 처리할 수 있도록 설정합니다. -신뢰도
사가 분산 트랜잭션 시나리오에서 마이크로 서비스에서 데이터 일관성을 관리합니다. -신뢰도
스케줄러 에이전트 감독관 분산 서비스 및 리소스에서 작업 집합을 조정합니다. -신뢰도

- 성능 효율성
순차 호송 다른 메시지 그룹을 차단하지 않고 정의된 순서로 관련 메시지 집합을 처리합니다. -신뢰도
분할 데이터 저장소를 수평 파티션 또는 분할 집합으로 나눕니다. -신뢰도

- 비용 최적화
사이드카 격리 및 캡슐화를 제공하기 위해 구성 요소를 별도의 프로세스 또는 컨테이너에 배포합니다. -안전

- 운영 우수성
정적 콘텐츠 호스팅 직접 클라이언트 배달을 위해 클라우드 기반 스토리지 서비스에 정적 콘텐츠를 배포합니다. - 비용 최적화
스트랭글러 그림 기능 부분을 새 애플리케이션 및 서비스로 점진적으로 대체하여 레거시 시스템을 증분 방식으로 마이그레이션합니다. -신뢰도

- 비용 최적화

- 운영 우수성
속도 제한 애플리케이션, 테넌트 또는 서비스의 리소스 사용을 제어합니다. -신뢰도

-안전

- 비용 최적화

- 성능 효율성
주차 대행 키 토큰 또는 키를 사용하여 클라이언트에 특정 리소스 또는 서비스에 대한 제한된 직접 액세스를 제공합니다. -안전

- 비용 최적화

- 성능 효율성

다음 단계

패턴이 최적화하는 것을 목표로 하는 Well-Architected Framework 핵심 요소의 관점에서 디자인 패턴을 검토합니다.

  • 안정성 핵심 요소 지원하는 디자인 패턴
  • 보안 핵심 요소 지원하는 디자인 패턴
  • 비용 최적화 핵심 요소 지원하는 디자인 패턴
  • 운영 우수성 핵심 요소 지원하기 위한 디자인 패턴
  • 성능 효율성 핵심 요소 지원하기 위한 디자인 패턴