Is there a way to manage development of Azure Data Factory using GIT Flow? - azure-devops

Is there a way to manage an azure data factory dev environment with azure DevOps Git integration with GitFlow branching model like https://nvie.com/posts/a-successful-git-branching-model/
Especially how to deal with hot fixes??

If you're writing explicitly versioned software or need to support many versions of your product in the field, git-flow is the way to go.
At this point we could see an Azure Repos Git organization can have numerous repositories, but each repository can only relate to one data factory hence, you cannot maintain multiple versions of ADF in single repository or branch.
If your intention is to maintain multiple versions of ADF on single repo/ master branch using GIT flow, then it is not yet possible. Source control - Azure Data Factory | Microsoft Docs

Related

Azure Data Factory development with multiple users

can any one help me how to lock pipeline in ADF, is there any option when one developer is working other should not work, as with multiple developers are working on same pipeline without using Source Control
unfortunately there is no feature in Azure portal for Azure data factory to lock the pipeline changes if 2 or more are working on the same pipeline. You would have to create a clone of existing pipeline and work on those clones else the best way is to use source control like git

Is there any guideline how track changes to an ADF pipeline source code in a Git repository?

I am developing have a few relatively complex ADF pipelines and I like to track my changes.
Traditionally with programming languages I keep my code in a git repository and track changes using branches.
How can I do the same for ADF pipelines? What is the recommended directory structure for ADF code?
Source control of ADF should be what you are looking for. It can track the changes in underlying JSON using git.
It also provides some useful features when you integrate with a Github / Azure DevOps Repo:
"auto" save/commit; every time when you save your work, the change is created as git commit as incremental change and you can easily revert it. In this way, you do not have to publish your changes to persist your changes(In some case like developing a new feature on a feature branch, publishing may not an option)
You can leverage branch protection in Github / Azure DevOps Repo to perform code review, code merge... before publishing the ADF code
But to be honest, from my personal experience, it is not very useful for diff as the JSON does not have any linebreaks and it is hard to find the diff between versions.

Azure datafactory deployment automation from multiple branches

I want to create automated deployment pipeline for azure datafactory.
For one stream of development we can configure it using doc
https://learn.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment
But when it comes to deploying to two diff test datafactories for parrallel features development (in two different branches), it is not working because the adb_publish which gets generated is only specific to the one datafactory.
Currently we are doing deployement using powershell scripts and passing object list which needs to be deployed.
Our repo is in Azure devops.
I tried
linking the repo to multiple df but then it is causing issue, perhaps when finding deltas to publish.
Creating forks of repo instead of branches so that adb_publish can be seperate for the every datafactory - but this approach will not work when there is a conflict, which needs manual merge, so the testing will be required again instead of moving to prod.
Adf_publish get generated whenever you publish. Publishing takes whatever you have in your repo and updates data factory with it.
To develop multiple features in parallel, you need to just use "Save". Save will commit your changes to the branch you are actually working on. Other branches will do the same. Whenever you want to publish, you need to first make a pull request from your branch to master, then publish. Any merge conflict should be solved when merging everything in the master branch. Then just publish and there shouldn't be any conflicts, and adf_publish will get generated after that.
Hope this helped!
Since a GitHub repository can be associated with only one data factory. And you are only allowed to publish to the Data Factory service from your collaboration branch. Check this
It seems there is not a direct and easy way to accomplish this. If forking repo as workaround, you may have to solve the conflicts before merging as #Martin suggested.

Can I point an Azure Pipelines build at TFS?

We're in the process of moving to Git, but currently our main codebase is on TFS.
We have a small project that needs its own build, but also needs to share a bunch of code that our main codebase uses.
Creating a new CloudBuild queue seems too heavy for this project, so we'd like to create its build in Azure Pipelines, but we're unsure if Pipeline builds support going to TFS.
Is this supported, and what's the best way to set it up?
If you want Azure Pipelines take the code from your internal TFS server so no, is not supported. Azure Pipelines can take TFVC code only if the repository exist in Azure Repos.
Azure Pipelines can take external Git repository, so when you will move to Git you can build your code without any problem even is not stored in Azure Repos.

How to configure a microservices project in azure devops?

I am in a microservices project where we are creating around 120 microservices. How do I configure azure devops for this project? Do I have to create a new project for each microservice? I would like to keep the dash for project monitoring
I would recommend that you create an organization and a project.
Then you can use create a git repository for each microservice, 120 microservices in 120 repos.
You can read about how Microsoft uses git here.
TL;DR version quoted below.
Mono Repo or Multi-Repo with Git
It's worth pausing to reflect that this isn't the only way. While
we've elected to have a single monolithic repository (the
"mono-repo"), other products at Microsoft use a multi-repo approach.
Skype, for instance, has hundreds of small repositories that get
stitched together in various combinations to create their many
different clients, services, and tools. Especially for teams embracing
microservices, multi-repo can be the right approach. TFS/Azure DevOps,
like many products at Microsoft, began as a monolith, and its code
organization reflects that