다음을 통해 공유


클라우드 디자인 패턴

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

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

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

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

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

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

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

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

패턴 카탈로그

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

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

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

-안전

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

-안전

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

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

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

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

-안전

- 비용 최적화

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

- 비용 최적화

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

- 운영 우수성

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

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

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

-안전

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

-안전

- 운영 우수성

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

-안전

- 비용 최적화

- 운영 우수성

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

- 운영 우수성

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

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

- 운영 우수성

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

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

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

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

-안전

- 비용 최적화

- 운영 우수성

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

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

- 비용 최적화

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

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

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

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

- 비용 최적화

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

-안전

- 비용 최적화

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

- 비용 최적화

- 성능 효율성

AI 에이전트 오케스트레이션 패턴

이전 클라우드 디자인 패턴은 분산 시스템의 일반적인 문제를 해결하지만, 여러 자율 에이전트를 사용하는 AI 워크로드에는 특수한 조정 방법이 필요합니다. Scheduler 에이전트 감독자 또는 안무와 같은 기존 패턴은 기본 개념을 제공합니다. 그러나 AI 에이전트는 비결정적 출력, 동적 추론 기능 및 특수 구성 요소 간의 지능형 핸드오프 필요성과 같은 고유한 과제를 소개합니다.

여러 자율 에이전트를 포함하는 AI 워크로드의 경우 AI 에이전트 오케스트레이션 패턴을 참조하세요. 이러한 패턴은 복잡한 결과를 달성하기 위해 함께 작동하는 지능형 자율 구성 요소의 특정 조정 요구 사항을 해결하여 이 카탈로그의 클라우드 디자인 패턴을 보완합니다.

다음 단계

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

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