-
Hi there, Our organization has been using Azure Devops for all things VCS and CI/CD in the past, but a year ago we started transitioning to Github, and our goal is to get rid of Azure Devops entirely. The only project we now have left on Devops is related to D365 Finance and Operations. In the past we have been told by various people, that finance and operations only supports DevOps, but I was wondering if that is actually so. Is it viable to only use Github and Github actions for version controlling, building and deploying code etc for managing our d365 environments? I have the following questions:
|
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
Hi, welcome to the repo and good questions. TLDRSo, the TLDR answer to your question is: Yes, it is viable to use Git and GitHub for version control and CI/CD for D365 Finance and Operations projects. I've done it partially myself and see no blocking issues to do it fully. The long answerThere is a lot to consider, so this answer will be a bit longer. Grab a drink of your choice and let's dive in. First, let me address the questions: Git for D365 Finance and OperationsThe reason teams are still using TFVC is probably due to historic reasons and lack of knowledge and skills in Git to make the switch. For a long time, Microsoft has been (and still is) supporting TFVC directly for D365FO implementations. However, it has always been possible to use Git as well and there are several blogs and videos out there on how to do it. Microsoft themselves have been using Git internally for a long time for D365FO development. More recently, they also started recommending Git and providing documentation for it. One such documentation is the Git walkthrough in their business applications playbook. Replacing Dynamics 365 Finance and Operations Tools with d365fo.toolsThe Dynamics 365 Finance and Operations Tools DevOps extension consists of several pipeline tasks to support the deployable package creation and deployment process. To that end, it also adds a new service connection type to facilitate the authorization with LCS. LCS Service ConnectionThe LCS service connection for DevOps provides the authentication with LCS for the Dynamics 365 Finance and Operations Tools. d365fo.tools has Set-D365LcsApiConfig and Get-D365LcsApiToken to facilitate the authentication with LCS. Still, you need a place to store the credentials securely. Without the service connection, you can use GitHub secrets or an Azure Key Vault to store the credentials. This is a bit more work than just setting up a service connection, but it is doable. Create Deployable PackageProbably the most important part of the extension and unfortunately, d365fo.tools does not cover it.
Add Licenses to Deployable PackageIf you don't have ISV solutions with licenses, you can ignore this part. Task to update model versionNot covered by d365fo.tools. Pretty easy to reverse engineer, because it's just a change of the version number in the descriptor file of a D365FO module. If a self-hosted build server is used, there is also a Task to upload assets to the LCS asset libraryCovered by Invoke-D365LcsUpload. Task to download assets from the LCS asset libraryCovered by Get-D365LcsAssetFile. Task for LCS asset deploymentCovered by Invoke-D365LcsDeployment. Linux and other considerationsThe build process for D365FO depends on some dlls and executables by Microsoft. As far as I know, those only work on a Windows operating system with Visual Studio. So you cannot use Linux. d365fo.tools also depends on Windows, because it has some dependencies and loads some assemblies that are Windows only. See below for other considerations. Switching off Azure DevOpsPersonally, I would answer that yes, it is viable to switch off Azure DevOps completely. It will take some doing and introduce some risk and maintenance effort you would otherwise not have. On the other hand, there are a lot of advantages by moving to Git and having everything on one platform. Thoughts on the futureMy answer so far has been about the current state of things. However, Microsoft is currently in the process of transitioning from LCS to the Power Platform as hosting platform for D365FO. This comes with a lot of changes, including the build and deploy process. So if you transition now to GitHub, chances are you will have to change a lot of stuff once LCS is no longer available (which currently seems to be in a 1-2 year timeframe). So you might want to consider that in your decision. If you want to learn more about that, I recommend the One Dynamics One Platform series of TechTalks, especially the latest three. Note that the latest one about ALM places a heavy focus on using Git. My recommendation would be: Switch to Git as soon as possible. Apart from lack of knowledge and skills, there is no reason to stick with TFVC and Git comes with a lot of benefits over TFVC. Continue to use Azure DevOps for now. A hybrid model might make sense where parts (e.g. the repository) are already moved to GitHub, but the CI/CD is still done in DevOps. Keep an eye on the One Dynamics One Platform story and once it seems stable enough, make the switch to it and as part of it, switch to GitHub fully as well. DisclaimerYou can probably tell I'm a fan of Git. I'm also a contributor to d365fo.tools and FSC-PS. So take my answers with a grain of salt and listen to the concerns of your D365FO team. Happy to discuss further if you have more questions. I've been doing D365FO projects with Git since 2019 and our company never had a reason to regret the move from TFVC to Git. We also started using GitHub for some things, but have not done a D365FO project on it. My experience with that is mainly with FSC-PS and the open source projects that use it. |
Beta Was this translation helpful? Give feedback.
Hi, welcome to the repo and good questions.
TLDR
So, the TLDR answer to your question is: Yes, it is viable to use Git and GitHub for version control and CI/CD for D365 Finance and Operations projects. I've done it partially myself and see no blocking issues to do it fully.
The long answer
There is a lot to consider, so this answer will be a bit longer. Grab a drink of your choice and let's dive in.
First, let me address the questions:
Git for D365 Finance and Operations
The reason teams are still using TFVC is probably due to historic reasons and lack of knowledge and skills in Git to make the switch. For a long time, Microsoft has been (and still is) supporting TFVC directly for D365FO …