소스 제어 통합을 통해 개발 팀은 Azure DevOps Git 리포지토리를 사용하여 하나 이상의 Microsoft Dataverse 환경에서 솔루션 및 솔루션 개체를 동기화할 수 있습니다. 소스 제어 통합 기능은 솔루션 환경 내에서 기본적으로 사용할 수 있으므로 시민 개발자, 코드 우선 개발자 및 관리자가 버전 제어, 변경 내용 추적 및 다양한 도구 및 환경에서 원활한 팀 공동 작업의 이점을 누릴 수 있습니다. Git 통합은 개발 환경에서 사용하도록 의도된 것이며, 빌드를 사용하여 솔루션 아티팩트와 파이프라인을 만들어 배포할 수 있는 테스트나 프로덕션 환경에서는 사용할 수 없습니다. Power Platform
이 문서에서는 Dataverse 환경 및 솔루션에서 Git 지원 소스 제어를 사용하기 위한 몇 가지 주요 개념과 이점을 찾습니다. Azure DevOps의 Git에 대한 자세한 내용은 Azure DevOps Git 리포지토리를 참조하세요.
Power Platform 및 Dataverse의 ALM
Power Platform은 조직에서 솔루션에 대한 ALM(애플리케이션 수명 주기 관리)을 관리할 수 있도록 하는 다양한 기본 기능을 제공합니다. 플랫폼의 다양한 유형의 객체를 위한 컨테이너로 솔루션을 패키징하고, 애플리케이션 수명 주기에 관련된 환경을 관리하고, 파이프라인을 사용하여 솔루션을 배포하는 기능이 포함됩니다. Power Platform 개발자 도구를 사용하여 Git 리포지토리를 Power Platform과 통합하는 방법에는 여러 가지가 있습니다. Dataverse에 Git이 기본적으로 통합됨에 따라 제작자가 익숙한 방식으로 솔루션을 사용하고 Power Apps(make.powerapps.com)의 간소화된 인터페이스를 통해 소스 제어와 상호 작용할 수 있도록 프로세스가 간소화되고 간소화됩니다.
혜택
- 신뢰할 수 있는 소스로서의 소스 제어: 일부 조직 내에서 Dataverse의 배포에 대한 신뢰할 수 있는 소스는 솔루션이 구축되는 제작자 환경입니다. 이 동작의 주요 동인은 네이티브가 아닌 Git 통합이 고급 기술과 도구를 사용한다는 것이며, 시작하려면 전문 IT 전문 지식이 필요합니다. Dataverse에 Git이 기본적으로 통합됨에 따라 몇 단계만 거치면 소스 제어를 활성화할 수 있으며 제작자가 솔루션으로 작업할 수 있는 친숙한 인터페이스를 제공합니다.
- SDLC 모범 사례를 사용한 안전, 감사 및 규정 준수: 소프트웨어 개발 수명 주기(SDLC) 모범 사례는 소프트웨어 개발 프로젝트를 효과적으로 관리하는 데 도움이 되는 일련의 지침 및 프로세스입니다. Dataverse에 Git 통합을 사용하면 버전 제어, 코드 검토 및 정적 소스 코드 분석과 같은 SDLC 관행을 따라 솔루션의 품질, 안정성 및 보안을 보장할 수 있습니다. Dataverse에 Git 통합은 솔루션의 변경 사항을 추적하고 다른 팀 구성원과 효과적으로 협업하는 데 도움이 되는 감사, 규정 준수 및 추적 가능성과 같은 기능도 제공합니다.
- 수명이 짧은 개발 환경: 환경의 사용자 지정 및 구성 복사본을 소스 제어에 저장하면 Dataverse에서 소스 제어에서 개발 환경을 빠르고 쉽게 리하이드레이션할 수 있습니다. 이를 통해 개발 및 테스트 목적으로 수명이 짧은 환경을 만들 수 있습니다. 수명이 짧은 환경을 사용하면 영구적인 환경에 의존하지 않고도 스토리지를 확보하고, 새로운 기능을 실험하고, 솔루션을 테스트하고, 반복할 수 있습니다.
- 퓨전 개발 팀: 퓨전 개발 팀은 솔루션을 구축하기 위해 협력하는 개발자와 제작자로 구성된 팀입니다. Dataverse에 Git 통합은 이러한 사용자는 별도의 환경에서 독립적으로 빌드하고 공통 소스 제어 리포지토리와 동기화하여 다른 사용자와 협업할 수 있습니다. 소스 제어 통합을 통해 개발자와 제작자 모두의 기술과 전문 지식을 사용하여 조직의 요구 사항을 충족하는 고품질 솔루션을 구축할 수 있습니다.
- 보호: 소스 제어를 솔루션에 대한 신뢰할 수 있는 소스로 사용하면 솔루션의 의도하지 않은 변경으로부터 빠르고 쉽게 복구할 수 있습니다. 솔루션을 소스 제어에 저장하면 이전 상태 또는 버전으로 복원할 수 있습니다.
주요 개념
관리형 솔루션 및 비관리형 솔루션
Dataverse와 Git 통합을 사용하는 경우 소스 제어에 저장된 솔루션은 제작자 환경의 비관리형 솔루션에서 가져옵니다. 관리되지 않는 솔루션을 사용하면 제작자가 변경 사항을 커밋하고 푸시할 때 소스 제어와 동기화된 객체를 추가, 제거 및 업데이트할 수 있습니다. 관리형 솔루션은 소스 제어에서 구축되어 테스트 또는 프로덕션과 같은 다운스트림 환경에 배포되며 이러한 환경에서는 편집할 수 없습니다. 관리형 솔루션은 솔루션에 대한 신뢰할 수 있는 소스가 항상 소스 제어이고 변경 사항이 소스 제어에 추가되고 다른 곳에 배포되기 전에 제작자의 환경에서만 이루어지도록 하는 데 사용됩니다.
솔루션 객체에 대한 파일 형식
Dataverse에 Git 통합이 도입되면서 솔루션과 솔루션 객체가 소스 제어에 표현되는 방식이 변경되었습니다. 변경 사항을 소스 제어에 커밋하고 푸시하면 솔루션 개체는 Git과 호환되는 특정 형식으로 저장됩니다. 이 형식은 솔루션 객체를 읽고 이해하기 쉬운 방식으로 표현하는 데 사용되며, 시간 경과에 따른 솔루션 객체의 변경 사항을 추적하는 데 사용할 수 있습니다. 솔루션 객체의 파일 형식은 사람이 읽을 수 있도록 설계되었으며 소스 제어에서 솔루션 객체의 변경 사항을 보는 데 사용할 수 있습니다. 또한, 여러 솔루션을 동일한 저장소와 폴더에 저장할 수 있도록 소스 제어의 솔루션 개체가 더 이상 각 솔루션마다 복제되지 않습니다. 대신 솔루션 객체는 단일 위치에 저장되며 동일한 저장소 및 폴더에 있는 여러 솔루션에서 공유될 수 있습니다.
Git을 사용한 코드 우선 개발
Power Platform의 코드 우선 개발은 Power Platform CLI, Visual Studio 및 Visual Studio Code 확장과 같은 개발 도구를 사용하여 사용할 수 있습니다. 소스 제어 통합 없이는 코드 우선 개발자를 솔루션 개발 프로세스에 참여시키는 것이 어렵습니다. Power Apps 구성 요소 프레임워크 컨트롤 및 Dataverse 플러그인과 같은 객체는 소스 코드에서 빌드된 패키지 자산으로 솔루션에 배포되고 직접 편집할 수 없기 때문입니다(make.powerapps.com). Power Apps 로우코드와 코드 우선 객체 모두의 개발 프로세스에 소스 제어가 포함되지 않으면 솔루션의 변경 사항을 관리하고 변경 사항을 추적하여 통제된 방식으로 배포하는 것이 어렵습니다.
Dataverse에 Git 통합을 활성화하면 작업하는 코드 우선 개발자를 만나고 로우코드 개발자와 코드 우선 개발자 모두에게 원활한 경험을 제공할 수 있습니다. 하지만 로우코드 환경에서 코드 우선 객체를 관리할 때 염두에 두어야 할 몇 가지 고려 사항이 있습니다.
Dataverse Git 통합을 통한 융합 개발
Power Platform은 로우코드 및 코드 우선 개발을 위한 기능을 제공합니다. 이 문서에서는 코드 우선 개발 프로세스와 Git 통합에 대해 논의하고, 단일 환경에서 코드 우선 및 로코드 객체를 관리하는 방법에 대한 지침을 제공합니다. Dataverse Power Apps 구성 요소 프레임워크 컨트롤, Dataverse 플러그인, 사용자 지정 워크플로 활동과 같은 개체는 소스 제어에서 관리할 수 있는 코드 우선 개체의 예입니다.
단일 환경에서 코드 우선 및 로코드 객체
코드 우선 객체는 관리형 또는 비관리형 솔루션을 생성하는 빌드 프로세스를 통해 솔루션에 포함될 수 있으며, 이 솔루션은 환경으로 가져올 수 있습니다. Dataverse 그러나 코드 우선 객체는 솔루션 빌드 프로세스를 사용하지 않고도 빌드된 후 메이커 환경에서 관리되지 않는 솔루션에 직접 배포될 수도 있습니다. 이러한 유연성을 감안할 때 고려해야 할 빌드 프로세스가 있습니다.
메이커 환경에서 관리되지 않는 솔루션에 코드 우선 객체를 직접 배포하는 경우 해당 객체가 소스 제어에 커밋되면 컴파일된(빌드된) 버전만 소스 제어에 저장됩니다. 예를 들어 플러그 인인 경우 이진 DLL 또는 Power Apps component framework 컨트롤에 대한 트랜스파일 및 최적화된 번들 JavaScript입니다. 결과적으로 소스 제어에서 객체의 사본 두 개가 생기는데, 하나는 빌드된 버전으로 표현되고 다른 하나는 소스 코드로 표현됩니다. 소스 코드와 빌드된 버전이 동기화되지 않으면 저장소에 바이너리를 저장하면 혼란과 잠재적 충돌이 발생할 수 있습니다. 소스 코드가 객체의 유일한 진실 소스가 되어야 하며, 단일 사본만 저장해야 하므로 이러한 방식은 권장되지 않습니다.
권장되는 접근 방식은 솔루션 빌드 프로세스의 일부로 코드 우선 객체를 빌드하고 생성된 비관리 솔루션을 메이커 환경으로 가져오는 것입니다. 이러한 접근 방식은 소스 코드와 빌드된 버전이 동기화되도록 보장하고, 소스 코드가 객체에 대한 유일한 진실의 원천이 되도록 보장합니다. 그러나 이 방법을 사용하려면 가져오기 프로세스 및 배포 프로세스에서 사용할 관리형 또는 비관리형 솔루션을 생성하기 위한 빌드 프로세스가 있어야 합니다. 예를 들어 Power Platform의 파이프라인에 대한 아티팩트를 만들고 Git 동기화 프로세스에서 사용할 아티팩트를 만드는 Azure Pipelines 또는 GitHub 워크플로를 만들 수 있습니다.