클라우드 호스팅 워크로드용으로 설계된 애플리케이션은 솔루션의 비즈니스 요구 사항을 해결하고 클라우드 네이티브 구성 요소 및 기능을 통합합니다. 잘 설계된 클라우드 애플리케이션은 안정성, 보안, 비용, 운영 및 성능 고려 사항을 해결합니다. 이러한 고려 사항은 비즈니스 요구 사항, 클라우드 호스팅 플랫폼의 특정 특성 및 플랫폼이 제공하는 기능에 부합합니다.
마이크로 서비스와 같은 특정 애플리케이션 스타일을 사용하여 클라우드 워크로드용 애플리케이션을 디자인할 필요가 없습니다. 그러나 클라우드 호스팅은 기본적으로 다양한 애플리케이션 및 데이터 플랫폼 옵션, 크기 조정 기능, 보안 제어 및 메시징 옵션을 제공하지 않는 솔루션을 호스팅하는 것보다 많은 애플리케이션 디자인 패턴을 더 쉽게 만듭니다. 클라우드 워크로드는 설계에 따라 더 작고 분산된 서비스로 분해되는 애플리케이션의 이점을 누릴 수 있습니다. 이러한 서비스는 API를 통해 또는 비동기 메시징 또는 이벤트를 사용하여 통신합니다. 수요가 증가할 때 새 인스턴스를 추가하여 애플리케이션 크기를 수평으로 조정합니다.
클라우드의 애플리케이션 호스팅 플랫폼, 메시징 기능 및 분해된 서비스를 사용하는 애플리케이션은 분산 시스템에 대한 일반적인 문제의 대상이 됩니다. 이러한 시스템에서 애플리케이션 상태가 분산되고 작업이 병렬 및 비동기적으로 수행됩니다. 애플리케이션은 오류가 발생할 때 복원력이 있어야 합니다. 악의적인 행위자가 지속적으로 애플리케이션을 대상으로 합니다. 배포는 자동화되고 예측 가능해야 합니다. 모니터링 및 원격 분석은 시스템에 대한 인사이트를 얻는 데 매우 중요합니다.
다음 열에는 온-프레미스 디자인 및 클라우드 디자인의 몇 가지 일반적인 특성이 나열되어 있습니다.
일반적인 온-프레미스 디자인
- 일체형 및 함께 배치된 기능과 데이터
- 예측 가능한 크기 조정을 위해 설계되었거나 과도하게 프로비전됨
- 관계형 데이터베이스
- 동기화된 처리
- 오류를 방지하고 오류 간 평균 시간을 측정하도록 설계됨(MTBF)
- 리소스는 IT 기능을 통해 프로비전됩니다.
- Snowflake 서버 및 애완 동물 서버
일반적인 클라우드 디자인
- 분해 및 분산된 기능 및 데이터
- 탄력적 확장을 위해 설계됨
- 다양한 스토리지 기술을 사용한 폴리글롯 지속성
- 비동기 처리
- 오작동을 견딜 수 있도록 설계 및 MTBF 측정
- 오류에 대비하고 평균 복구 시간을 측정합니다.
- 리소스는 코드로 인프라를 통해 필요에 따라 프로비전됩니다.
- 변경할 수 없는 대체 가능한 인프라
Azure용 애플리케이션 디자인
클라우드 호스팅에 대한 전문 지식이 있고 전략적 절충 결정을 내릴 수 있는 클라우드 설계자는 클라우드 애플리케이션을 설계해야 합니다. Azure는 설계자가 애플리케이션을 개발하고 개발 팀이 이를 구현하도록 안내하는 데 도움이 되는 리소스를 제공합니다. 좋은 워크로드 및 애플리케이션 디자인을 달성하려면 설계자는 다음을 수행해야 합니다.
- 조직 클라우드 채택 표준에 맞춥니다.
- 디자인이 Azure Well-Architected Framework를 따르는지 확인합니다.
- 일반적인 아키텍처 스타일, 워크로드 및 모범 사례를 이해합니다.
- 디자인 패턴을 사용하여 일반적인 문제를 해결하고 전략적 장단점을 도입합니다.
- 정보에 입각한 기술 선택을 합니다.
- 참조 아키텍처를 평가합니다.
- 서비스별 가이드를 검토합니다.
Azure를 사용하여 클라우드용으로 설계되지 않은 애플리케이션을 호스트하고 다시 호스트할 수 있습니다. 클라우드 기능을 사용하도록 워크로드 애플리케이션을 조정할 수 있지만 고정 리소스 및 규모에 맞게 설계된 애플리케이션을 다시 호스팅하는 것은 클라우드 네이티브 배포로 간주되지 않습니다.
조직 클라우드 채택 표준에 맞게 조정
애플리케이션은 조직의 표준 및 거버넌스를 충족해야 하는 워크로드의 일부입니다. 모든 규모 및 클라우드 완성도의 조직은 Azure용 클라우드 채택 프레임워크 를 사용하여 Azure 전체 채택 전략, 준비 상태, 혁신, 관리, 거버넌스 및 보안 이니셔티브를 공식화할 수 있습니다. 이 방법의 일부는 Azure 랜딩 존 사용과 같은 워크로드 간에 일관된 접근 방식을 표준화하는 것입니다. Azure 랜딩 존은 조직 전체의 거버넌스를 제공하고 워크로드 팀과 설계자에게 지역화된 비즈니스 목표를 달성하기 위해 리소스에 대한 민주화된 액세스를 제공합니다. 애플리케이션을 설계하는 설계자는 매크로 환경과 애플리케이션 랜딩 존과 같은 워크로드 작업에 대한 기대치를 이해하는 것이 중요합니다.
조직의 Azure 채택 전략은 선택한 아키텍처 스타일에 영향을 주지 않아야 하지만 기술 선택 또는 보안 경계를 제한할 수 있습니다.
Well-Architected 프레임워크를 따르세요.
다양한 렌즈를 통해 워크로드의 디자인 및 구현을 평가할 수 있습니다. Well-Architected Framework를 사용하여 다음 5가지 주요 아키텍처 핵심 요소에서 디자인 원칙을 평가하고 결정을 조정합니다.
이러한 원칙을 따르고 이러한 아키텍처 핵심 요소 간의 장단점 평가를 통해 비즈니스 요구 사항을 충족하고 Azure에서 실행하도록 최적화된 내구성, 유지 관리 가능, 보안 및 비용을 충분히 충족하는 디자인을 생성할 수 있습니다. 이러한 결정은 아키텍처 스타일 선택을 알리고 특정 워크로드의 요구 사항과 관련하여 기술 선택 또는 보안 경계를 좁히는 데 도움이 됩니다.
팀 또는 조직에는 워크로드를 평가하는 데 사용할 수 있는 지속 가능성 및 윤리와 같은 다른 디자인 원칙이 있을 수 있습니다.
일반적인 아키텍처 스타일 이해
애플리케이션이 존재하는 조직 환경과 Well-Architected Framework를 기반으로 하는 좋은 아키텍처 디자인의 기초를 이해한 후에는 빌드할 아키텍처 종류를 결정해야 합니다. 마이크로 서비스 아키텍처, 보다 전통적인 N 계층 애플리케이션 또는 빅 데이터 솔루션일 수 있습니다. 이러한 아키텍처 스타일은 고유하며 다양한 결과를 위해 설계되었습니다. 아키텍처 스타일을 평가할 때 상태 관리를 처리하기 위해 데이터 저장소 모델도 선택해야 합니다.
다양한 아키텍처 스타일 및 데이터 저장소 모델을 평가하여 각 옵션에서 제공하는 이점과 과제를 이해합니다.
Well-Architected Framework의 워크로드
프레임워크 워크로드에Well-Architected 문서에서는 다양한 워크로드 분류 또는 유형에 대해 설명합니다. 중요 업무용 워크로드, AI 및 기계 학습 워크로드 또는 서비스로서의 소프트웨어 워크로드에 대한 문서를 찾을 수 있습니다. 이러한 워크로드 관련 문서는 Well-Architected Framework의 5가지 핵심 핵심 요소를 특정 도메인에 적용합니다. 애플리케이션이 이러한 문서화된 패턴 중 하나에 부합하는 워크로드의 일부인 경우 애플리케이션 플랫폼, 데이터 플랫폼 및 네트워킹과 같은 일반적인 디자인 영역에서 워크로드별 디자인 원칙 및 권장 사항 집합에 따라 디자인에 접근하는 데 도움이 되는 각 지침을 검토합니다. 일부 워크로드 유형은 특정 아키텍처 스타일 또는 데이터 저장소 모델을 선택하면 도움이 될 수 있습니다.
모범 사례
API 디자인, 자동 크기 조정, 데이터 분할 및 캐싱을 비롯한 다양한 디자인 고려 사항에 대한 자세한 내용은 클라우드 애플리케이션의 모범 사례를 참조하세요. 이러한 고려 사항을 검토하고 애플리케이션에 적합한 모범 사례를 적용합니다.
디자인 패턴을 사용하여 일반적인 문제를 해결하고 전략적 장단점 도입
애플리케이션에는 특정 비즈니스 요구 사항, 목표 및 성공 측정값이 있습니다. 이러한 기능 및 비기능적 요구 사항을 함께 작동하는 개별 활동으로 분해하여 사용자와 고객의 기대를 충족하는 솔루션을 달성해야 합니다. 이러한 활동은 일반적으로 소프트웨어 산업이 설정한 패턴을 따릅니다. 소프트웨어 디자인 패턴은 처리 또는 데이터 스토리지에 적용할 수 있는 명명되고 반복 가능한 접근 방식입니다. 이러한 패턴은 알려진 절충과 관련된 특정 문제를 해결하는 것으로 입증되었습니다.
Azure의 클라우드 디자인 패턴 카탈로그는 분산 시스템의 특정 문제를 해결합니다.
정보에 입각한 기술 선택
빌드하려는 아키텍처 유형과 사용하려는 디자인 패턴을 확인한 후 아키텍처의 주요 기술 구성 요소를 선택할 수 있습니다. 다음 기술 선택은 필수입니다.
컴퓨팅 은 애플리케이션이 실행되는 컴퓨팅 리소스 또는 애플리케이션 플랫폼에 대한 호스팅 모델을 나타냅니다. 자세한 내용은 컴퓨팅 서비스 선택을 참조하세요. 특정 애플리케이션 플랫폼 에 대한 Azure 컨테이너 서비스 및 Azure 하이브리드 옵션 선택과 같은 특수한 지침을 참조하세요.
데이터 저장소 에는 파일, 캐시, 로그 및 애플리케이션이 스토리지에 유지할 수 있는 기타 모든 항목에 대한 데이터베이스 및 스토리지가 포함됩니다. 자세한 내용은 데이터 저장소 분류 및 스토리지 옵션 검토를 참조하세요.
메시징 기술을 사용하면 시스템 구성 요소 간에 비동기 메시징을 수행할 수 있습니다. 자세한 내용은 비동기 메시징 옵션을 참조하세요.
AI 기술은 기존 애플리케이션 코드에서 구현하기 위해 계산적으로 복잡한 문제를 해결합니다. 자세한 내용은 Azure AI 서비스 기술 선택을 참조하세요.
그 과정에서 다른 기술을 선택할 수도 있지만 컴퓨팅, 데이터, 메시징 및 AI는 대부분의 클라우드 애플리케이션의 핵심이며 디자인의 여러 측면을 결정합니다.
참조 아키텍처 평가
Azure 아키텍처 센터에는 솔루션 아이디어, 예제 워크로드 및 참조 아키텍처에 대한 문서가 있습니다. 이러한 문서에서는 일반적으로 Well-Architected Framework와 일치하는 일반적인 구성 요소 및 고려 사항을 나열합니다. 이러한 문서 중 일부는 GitHub에서 호스트되는 배포 가능한 솔루션을 포함합니다. 이러한 시나리오 중 어떤 시나리오도 빌드 중인 시나리오일 가능성은 낮지만 좋은 출발점입니다. 지침을 특정 요구 사항에 맞게 조정할 수 있습니다.
Azure 아키텍처 센터에서 아키텍처 카탈로그 를 찾아봅니다.
서비스별 가이드 검토
핵심 기술을 선택하고 참조 아키텍처를 참조한 후 아키텍처의 서비스와 관련된 설명서 및 지침을 검토합니다. 서비스별 지침에 다음 리소스를 사용합니다.
Well-Architected Framework 서비스 가이드: Well-Architected Framework는 많은 Azure 서비스에 대한 문서를 제공합니다. 문서는 각 서비스에 아키텍처의 다섯 가지 핵심 요소를 적용합니다.
Azure 안정성 가이드: Azure 안정성 허브에는 많은 Azure 서비스의 안정성 특성을 구체적으로 다루는 심층 문서가 있습니다. 이 문서에서는 가용성 영역 지원 및 다양한 유형의 중단 시 예상되는 동작과 같은 가장 중요한 안정성 항목 중 일부를 설명합니다.
다른 클라우드에서 오시나요?
다른 클라우드 공급자에서 애플리케이션을 디자인하는 방법을 잘 알고 있는 경우 동일한 기본 사항이 많이 적용됩니다. 예를 들어 아키텍처 스타일과 클라우드 디자인 패턴은 개념적으로 클라우드에 구애받지 않습니다. 자세한 내용은 다음 서비스 매핑 및 아키텍처 가이드 문서를 참조하세요.