다음을 통해 공유


워크로드 소개

이 장에서는 시스템의 주요 구성 요소를 소개하고 아키텍처에 대한 개요를 제공합니다. 이러한 구성 요소는 함께 작동하여 개발 요구 사항에 맞게 강력하고 유연한 플랫폼을 만듭니다. 아키텍처 내에서 이러한 구성 요소와 해당 역할을 살펴보겠습니다.

Fabric 워크로드 아키텍처

다음은 Fabric 워크로드 아키텍처의 몇 가지 주요 측면입니다.

  • 데이터 처리, 스토리지 및 관리를 처리합니다. 처리 전에 Microsoft Entra ID 토큰의 유효성을 검사하고 레이크하우스와 같은 외부 Azure 서비스와 상호 작용합니다.

  • 워크로드 FE(프런트 엔드)는 작업 만들기, 작성, 관리 및 실행을 위한 사용자 인터페이스를 제공합니다.

  • FE를 통한 사용자 상호 작용은 Fabric BE(Fabric 백 엔드)를 통해 직접 또는 간접적으로 BE에 대한 요청을 시작합니다.

다양한 구성 요소의 통신 및 인증을 보여주는 자세한 다이어그램은 백 엔드 인증 및 권한 부여 개요인증 개요 다이어그램을 참조하세요.

FE(프런트 엔드)

프런트 엔드는 Fabric 포털의 iframe 내에서 작동하는 UX(사용자 환경) 및 동작의 기반과 같습니다. Fabric 파트너에 항목 편집기를 비롯한 특정 사용자 인터페이스 환경을 제공합니다. 확장 클라이언트 SDK는 필요한 인터페이스, API 및 부트스트랩 함수를 갖추어 일반 웹 앱을 Fabric 포털 내에서 원활하게 작동하는 마이크로 프런트 엔드 웹 앱으로 변환합니다.

BE(백 엔드)

백 엔드는 데이터 처리 및 메타데이터 스토리지를 지원하는 주요 위치입니다. CRUD 작업을 사용하여 메타데이터와 함께 워크로드 항목을 만들고 관리하며 작업을 실행하여 스토리지의 데이터를 채웁니다. 프런트 엔드와 백 엔드 간 통신 브리지는 공용 API를 통해 설정됩니다.

워크로드는 로컬 및 클라우드와 같은 두 가지 환경에서 실행할 수 있습니다. 로컬(개발 모드)에서 워크로드는 DevGateway 유틸리티에서 관리하는 API 호출을 사용하여 개발자의 컴퓨터에서 실행됩니다. 이 유틸리티는 Fabric을 사용한 워크로드 등록도 처리합니다. 클라우드 모드에서 워크로드는 파트너 서비스에서 실행되며, HTTPS 엔드포인트에 직접 API 호출을 수행합니다.

개발 환경

  • 개발 모드 워크로드 패키지: Visual Studio에서 백 엔드 솔루션을 빌드할 때 디버그 빌드 구성을 사용하여 DevGateway 애플리케이션을 사용하여 패브릭 테넌트에 로드할 수 있는 BE NuGet 패키지를 만듭니다.

개발자 모드 아키텍처의 다이어그램.

  • 클라우드 모드 워크로드 패키지: Visual Studio에서 BE 솔루션을 빌드할 때 릴리스 빌드 구성을 사용하여 독립 실행형 워크로드 패키지(BE 및 FE)를 만듭니다. 이 패키지는 테넌트에 직접 업로드할 수 있습니다.

클라우드 모드 아키텍처 다이어그램.

  • 디버그 및 릴리스 빌드 구성에 대한 자세한 내용은 빌드 구성 변경을 참조 하세요.

워크로드 NuGet 패키지 구조

워크로드는 백 엔드 및 프런트 엔드 구성 요소를 결합하여 NuGet 패키지로 패키지됩니다. 구조는 특정 명명 규칙을 준수하며 업로드 시나리오에서 일관성을 위해 Fabric에 의해 적용됩니다. 워크로드를 나타내도록 디자인된 NuGet 패키지는 백 엔드 및 프런트 엔드 구성 요소를 모두 포함하도록 구성됩니다.

백 엔드 구조

백 엔드 세그먼트는 Fabric 등록에 필수적인 워크로드 및 관련 항목을 정의하는 .xml 파일로 구성됩니다.

핵심 구성 요소
  • WorkloadManifest.xml - Fabric의 확인을 위해 이 정확한 이름을 제공하는 데 필요한 워크로드 구성 파일.
  • Item1.xml, Item2.xml, ... - XML 형식에 따라 유연하게 이름을 지정하는 개별 항목에 대한 매니페스트.

프런트 엔드 구조

프런트 엔드 섹션에는 프런트 엔드의 제품 및 항목을 자세히 설명하는 .json 파일과 아이콘에 대한 'assets' 디렉터리가 포함되어 있습니다.

핵심 구성 요소
  • Product.json - 제품의 프런트 엔드에 대한 기본 매니페스트로, Fabric의 확인을 위해 정확하게 이름을 지정해야 합니다.
  • Item1.json, Item2.json- ... JSON 형식에 따라 유연한 이름을 가진 개별 항목에 대한 매니페스트입니다. 각 json은 백 엔드 매니페스트(예: Item1.xml Item1.json)에 해당합니다.
  • assets폴더 - 프런트 엔드에서 사용하는 모든 아이콘을 저장합니다icon1.jpgicon2.png....

필수 구조 규정 준수

특정 하위 폴더 이름('BE', 'FE', 'assets')을 포함한 구조는 테스트 및 개발 패키지를 비롯한 모든 업로드 시나리오에 대해 필수이며 Fabric에 의해 적용됩니다. 구조는 리포지토리Backend/src/Packages/manifest 디렉터리 아래 .nuspec 파일에 지정됩니다.

제한

다음 제한은 개발 모드와 클라우드 모드 모두에서 모든 유형의 NuGet 패키지에 적용됩니다.

  • BEFE 하위 폴더만 허용됩니다. 이러한 폴더 외부에 있는 다른 하위 폴더 또는 파일에서 업로드 오류가 발생합니다.
  • BE 폴더는 .xml 파일만 허용합니다. 다른 파일 형식에서는 업로드 오류가 발생합니다.
  • 최대 10개의 항목 파일이 허용됩니다. 즉, BE 폴더에 1개의 WorkloadManifest.xml 및 최대 10개의 Item.xml 파일이 포함될 수 있습니다. 폴더에 10개가 넘는 항목 파일이 있으면 업로드 오류가 발생합니다.
  • Assets 하위 폴더는 FE 폴더 아래에 있어야 합니다. 최대 15개의 파일을 포함할 수 있으며 각 파일은 1.5MB 이하입니다.
  • Assets 하위 폴더(.jpeg, .jpg, .png)에는 다음 파일 형식만 허용됩니다.
  • FE 폴더에는 최대 10개의 항목 파일과 1개의 product.json 파일이 포함될 수 있습니다.
  • Assets 폴더 내 각 자산을 항목 파일 내에서 참조해야 합니다. Assets 폴더에 누락된 항목 파일에서 참조되는 자산이 있으면 업로드 오류가 발생합니다.
  • 항목의 파일 이름은 고유해야 합니다. 파일 이름이 중복되면 업로드 오류가 발생합니다.
  • 파일 이름은 영숫자(영어) 또는 하이픈만 포함해야 하며 길이는 32자를 초과할 수 없습니다. 다른 문자를 사용하거나 이 길이를 초과하면 업로드 오류가 발생합니다.
  • 총 패키지 크기는 20MB를 초과하지 않아야 합니다.
  • 매니페스트별 제한 사항은 워크로드 매니페스트를 참조하세요.

로컬 개발 모드(개발 모드)

워크로드 BE(백 엔드)는 개발자의 컴퓨터에서 작동합니다. 워크로드 API 호출은 특수 명령줄 유틸리티인 DevGateway에서 관리하는 Azure Relay 채널의 워크로드 쪽에서 Azure Relay를 통해 전송됩니다. 워크로드 제어 API 호출은 Azure Relay 채널을 우회하여 워크로드에서 Fabric으로 직접 전송됩니다. 또한 DevGateway 유틸리티는 특정 작업 영역의 컨텍스트 내에서 Fabric을 사용하여 워크로드의 로컬 개발 인스턴스 등록을 감독합니다. DevGateway 유틸리티가 종료되면 워크로드 인스턴스 등록이 자동으로 철회됩니다. 자세한 내용은 백 엔드 구현 가이드를 참조하세요.

DevMode BE 스키마

개발 모드 BE 스키마 아키텍처의 다이어그램.

클라우드 개발 모드(클라우드 모드)

워크로드 BE(백 엔드)는 파트너의 서비스 내에서 작동합니다. 워크로드 API 호출은 워크로드 매니페스트에 지정된 대로 HTTPS 엔드포인트에 대해 직접 호출됩니다. 이 시나리오에서는 DevGateway 유틸리티가 필요하지 않습니다. Fabric을 사용하여 워크로드를 등록하려면 워크로드 NuGet 패키지를 Fabric에 업로드한 후 테넌트에 대한 워크로드를 활성화하면 됩니다. 자세한 내용은 Fabric에서 워크로드 관리를 참조하세요.

CloudMode BE 스키마

클라우드 모드 BE 스키마 아키텍처의 다이어그램.