클라우드 애플리케이션의 모범 사례
이러한 모범 사례는 클라우드에서 안정적이고 확장 가능하며 안전한 애플리케이션을 빌드하는 데 도움이 될 수 있습니다. 효율적이고 강력한 시스템, 메커니즘 및 접근 방식을 설계하고 구현하기 위한 지침과 팁을 제공합니다. Azure 서비스에서 사용할 수 있는 코드 예제도 많이 포함되어 있습니다. 이 사례는 호스트가 Azure이든 다른 클라우드 플랫폼이든 관계없이 모든 분산 시스템에 적용됩니다.
사례 카탈로그
이 표에는 다양한 모범 사례가 나와 있습니다. 관련 핵심 요소 또는 패턴 열에는 다음 링크가 포함되어 있습니다.
- 사례 및 관련 디자인 패턴이 해결하는 클라우드 개발 과제입니다.
- 실습에서 중시하는 Microsoft Azure Well-Architected Framework의 핵심 요소입니다.
연습 | 요약 | 관련 핵심 요소 또는 패턴 |
---|---|---|
API 디자인 | 표준 프로토콜과 합의된 데이터 형식을 사용하여 플랫폼 독립성을 지원하도록 웹 API를 디자인합니다. 클라이언트가 수정 없이 기능을 검색할 수 있도록 서비스 진화를 촉진합니다. 부분 응답을 지원하고 데이터를 필터링하고 페이지를 매길 수 있는 방법을 제공하여 응답 시간을 개선하고 일시적인 오류를 방지합니다. | 설계 및 구현, 성능 효율성, 운영 우수성 |
API 구현 | 효율적이고, 응답성이 뛰어나고, 확장 가능하고, 사용 가능한 웹 API를 구현합니다. 작업을 idempotent로 만들고, 콘텐츠 협상을 지원하고, HTTP 사양을 따릅니다. 예외를 처리하고 리소스 검색을 지원합니다. 대규모 요청을 처리하고 네트워크 트래픽을 최소화하는 방법을 제공합니다. | 설계 및 구현, 운영 우수성 |
자동 확장 | 성능 요구 사항을 충족하고 비용을 최소화하기 위해 리소스를 동적으로 할당 및 할당 해제하도록 앱을 디자인합니다. Azure Monitor 자동 크기 조정 및 많은 Azure 구성 요소가 제공하는 기본 제공 자동 크기 조정을 활용합니다. | 성능 효율성, 비용 최적화 |
백그라운드 작업 | 일괄 처리 작업, 처리 작업 및 워크플로를 백그라운드 작업으로 구현합니다. Azure 플랫폼 서비스를 사용하여 이러한 작업을 호스트합니다. 이벤트 또는 일정으로 작업을 트리거하고 호출 작업에 결과를 반환합니다. | 설계 및 구현, 운영 우수성 |
캐싱 | 앱에 가까운 빠른 스토리지에 데이터를 복사하여 성능을 향상시킵니다. 자주 읽지만 거의 수정하지 않는 데이터를 캐시합니다. 데이터 만료 및 동시성을 관리합니다. 캐시를 채우고 Azure Cache for Redis 서비스를 사용하는 방법을 확인하세요. | 데이터 관리, 성능 효율성 |
콘텐츠 배달 네트워크 | CDN(콘텐츠 배달 네트워크)을 사용하여 사용자에게 웹 콘텐츠를 효율적으로 제공하고 웹앱의 부하를 줄입니다. 배포, 버전 관리, 보안 및 복원력 문제를 해결합니다. | 데이터 관리, 성능 효율성 |
데이터 분할 | 데이터를 분할하여 확장성, 가용성 및 성능을 개선하고 경합 및 데이터 스토리지 비용을 줄입니다. 효율적인 방법으로 수평, 세로 및 기능 분할을 사용합니다. | 데이터 관리, 성능 효율성, 비용 최적화 |
데이터 분할 전략(서비스별) | Azure Table Storage 및 Azure Blob Storage와 같은 Azure SQL Database와 Azure Storage 서비스의 데이터를 분할합니다. 데이터를 분할하여 부하를 분산하고 대기 시간을 줄이며 수평 크기 조정을 지원합니다. | 데이터 관리, 성능 효율성, 비용 최적화 |
호스트 이름 유지 | 역방향 프록시와 해당 백 엔드 웹 애플리케이션 간에 원래 HTTP 호스트 이름을 유지하는 것이 중요한 이유와 가장 일반적인 Azure 서비스에 대해 이 권장 사항을 구현하는 방법을 알아봅니다. | 디자인 및 구현, 안정성 |
메시지 인코딩 고려 사항 | 비동기 메시지를 사용하여 시스템 구성 요소 간에 정보를 교환합니다. 데이터에 가장 적합한 페이로드 구조, 인코딩 형식 및 serialization 라이브러리를 선택합니다. | 메시징, 보안 |
모니터링 및 진단 | 모니터링 및 진단 파이프라인을 사용하여 시스템 상태, 사용량 및 성능을 추적합니다. 모니터링 데이터를 다양한 상황에서 도움이 되는 경고, 보고서 및 트리거로 전환합니다. 예를 들어 문제 감지 및 수정, 잠재적인 문제 발견, 성능 보장 충족, 감사 요구 사항 충족 등이 있습니다. | 운영 우수성 |
특정 서비스에 대한 재시도 지침 | Azure 서비스 및 클라이언트 SDK에서 제공하는 재시도 메커니즘을 사용, 조정 및 확장합니다. 연결, 작업 및 리소스와 관련된 임시 문제를 관리하기 위한 체계적이고 강력한 접근 방식을 개발합니다. | 디자인 및 구현, 안정성 |
일시적인 오류 처리 | 사용할 수 없는 네트워크 또는 리소스로 인한 일시적인 오류를 처리합니다. 적절한 재시도 전략을 개발할 때 발생하는 과제를 해결합니다. 재시도 코드 및 기타 안티패턴 계층을 복제하지 마세요. | 디자인 및 구현, 안정성 |