Dynamics 365 OnPremise + VPN = CI/CD process within AzureDevOps - azure-devops

welcome community.
currently, our customer has Dynamics 365 On-premise infrastructure, additionally more connected applications to CRM. All is available thru VPN.
Case is to implement CI/CD process. i would like to use AzureDevOps Cloud.
Code management solutions = bitbucket.
Of course its not a problem to implement full ci/cd process within OnPremise Dynamics but the question is HOW we manage to bypass VPN?
i have found some tips in MS documentation with Agents and more but i am not sure if this will work.
any suggestion? thank you

If you are using Dynamics 365 On-premise. You will need to configure self-hosted agents on your local machine. See here for detailed steps.
Since D365 is behind a proxy. You will need to configure your self-hosted agent to run behind a web proxy. See detailed steps here.
There is no need to install Azure devops server. You just need to configure your azure pipeline to run on your self-hosted agent created in above steps. So that your azure pipeline can access to the on-premise resources.
When you configure your pipeline(see below for more information about configure pipeline), Choose the Agent pool(Default for below example) where the self-hosted agent resides to run your pipeline on your self-hosted agent.
You need to create azure pipeline for CI/CD process within azure devops.
Below are the examples in detailed steps to configure a classic pipeline in azure devops to implement CI/CD for Dynamics 365.
1, CI/CD for Dynamics 365 CE using Azure DevOps
2, Build Azure DevOps Pipelines for Dynamics 365 CRM/Power Platform
If you are to configure release pipeline for CD process. You probably will need to create deployment groups to deploy to on-premise D365. See here to provision agents to deployment groups.
3, Check D365 forum for more threads about integration D365 with azure devops.
You will much likely encounter some problems while configuring azure pipeline. Please raise new threads about each specific problem your encountered in configuring azure pipeline.

Related

Can I reuse my Azure DevOps agents with Azure Automation?

My VMs all have Azure DevOps agents installed on them to automate deployments. We have a need to automate runbook tasks on these agents as well, and are investigating Azure Automation as a solution.
However, I would prefer not to have to install two agents on every VM. Is there a way to have Azure Devops and Azure Automate share an agent on a single VM?
I suppose that you could test to create a combination with Azure DevOps and Azure Automation.
And the key to for the integration is creating a service connection from Azure DevOps to Azure Resource Manager.
And you could try to finish your Azure Automation Deployment with Azure Powershell task in a release pipeline.
And you could refer to this blog for more detailed instructions. USING AZURE DEVOPS PIPELINES WITH AZURE AUTOMATION

Publishing remote test results to my Azure DevOps pipeline

I have a nodejs web application that I build in Azure Pipelines. I am planning to deploy the generated artifacts on a Azure VM (probably a dev test labs), as part of one of the pipeline steps.
I want to now run browser tests by pointing the browser to the hosted URL in the Azure VM. I want to use the Azure windows and linux VMs in a build pipeline to run the tests on this remote Azure VM and publish the results to the pipeline. These would be karma tests essentially running on the nodejs server.
In my current design, the test results are going to be available on the Azure VM hosting the nodejs application.
What I don't understand is how can I get these test results back to
the Azure Pipeline for publishing the same?
Is there a way I can architect this solution without having to setup my Azure VM as a
pipeline agent in Azure DevOps?
Is there a standard pattern to design such continuous test infrastructure using Azure DevOps?
Thanks
According to your description, you just want to use Microsoft host agent to access an url on your self-host agent (ignore it's Azure VM or your own physical machine, same to host agent).
It depends if that url are accessible through public internet.
The simplest solution here is deploy your build agent on that Azure VM directly. Then run build and test. You can do this through the following script and tasks:
run ng test or any command to raise your tests
publish test results with PublishTestResults task
publish code coverage results with PublishCodeCoverageResults task
Microsoft-hosted agent pool will not work for you with every scenarios. For many teams this is the simplest way to run your jobs. You can try it first and see if it works for your build or deployment. If not, you can use a self-hosted agent. Self-hosted agents give you more control for your builds, tests and deployments.
In your scenario, setup your Azure VM as a pipeline agent and run build/test on it should be the simplest and convenient solution.

How to integrate OnPrem Azure DevOps Server with the cloud one?

My firm has the Azure DevOps online version where we have all our projects and repo's. We were not able to configure CI/CD for the repo's because our internal server network doesn't have access to the internet.
To overcome this issue, we built a new server that has access to the internet and also to the internal network. On the new server, we installed and configured Azure DevOps Server 2019. We don't want to migrate our repo's from the cloud version to the online version.
I am trying to link the OnPrem repo to the cloud repo but it was not working. I issued a PAT on the cloud version and added it as a service connection under Pipelines in the OnPrem version but still, I am not able to see and link the cloud repo's.
I can clone the repo from the cloud to the OnPrem server but that will not get the latest code as the code is being checked in the cloud repo's
Can anyone please guide me on how to link both of them, please.
Thanks!!!
I don't think there's a meaningful way to integrate Azure DevOps Services and Azure DevOps Server, as they are essentially the same product. I assume (but don't know) that you're looking to integrate Azure DevOps Services to on-premise builds and deployments, as you state that you want to keep the repos in Azure DevOps Services. So, in essence, you want to run build and deployment group agents in on-premise environment.
Take a look at the agent-documentation and especially the communication subsection:
https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/agents?view=azure-devops
Or this old blog post, from which the communication section originates:
https://devblogs.microsoft.com/devops/deploying-to-on-premises-environments-with-visual-studio-team-services-or-team-foundation-server/
The ideal solution would probably be that you run self-hosted build agents in your server that's open to internet, and configure an agent pool for them in Azure DevOps Services. For deployments, you'll want to use Deployment Groups and install deployment group agents to target servers, where they'll just need outbound 443 access for communicating with Azure DevOps Services.
If that's not possible, you'd have to install deployment agents to the build machine, which then sees your other on-premise servers, but this is rather unsatisfactory solution since you'd either have to rely on WinRm capabilities for deployments, or expose too much network between your build server and other on-premise servers.

Azure Devops configuration with Jenkins

Background info:
Both Jenkins and Azure DevOps are located in Azure. Jenkins is not accessible from internet and is behind organization firewall where as Azure DevOps is not, need an ability to use Jenkins Service hook with mentioned background
Also can below be possible :
possibility to configure Azure DevOps in local Azure VNET
If we can identify or get Azure DevOps host server IP to white-list it for incoming traffic in Jenkins.
The way to link Azure DevOps to your private Azure VNETs, is through Express Route.
Connectivity to Microsoft online services like Azure Storage, Azure SQL, Dynamics 365 and now Azure DevOps is through the Microsoft peering configuration of ExpressRoute circuits.
Route filters are a way to consume a subset of supported services through Microsoft peering. Using route filters, you can enable services you want to consume through your circuit’s Microsoft peering. Azure DevOps is included in the new Azure Global Services route filter with a BGP community value of 12076:5050.
ExpressRoute is available for all Azure DevOps services, including:
Organizations using the new https://dev.azure.com/ URL,
Organizations using the legacy https://{organization}.visualstudio.com/ URL,
Self-hosted Azure Pipelines agents,
Self-hosted Cloud Load Test agents,
Visual Studio Marketplace (https://marketplace.visualstudio.com/),
Visual Studio Subscriber Portal (https://my.visualstudio.com), and
Visual Studio Subscriptions Administration Portal (https://manage.visualstudio.com).
ExpressRoute is not available for Azure DevOps static content that is delivered via Azure Content Delivery Network (CDN), which includes:
Scripts, images, fonts and stylesheets, from the cdn.vsassets.io URL, and
Web extensions from the {publishername}.gallerycdn.vsassets.io URL.
ExpressRoute is available for use with Azure Artifacts. However, you will need to configure route filters for the Microsoft Azure region that your organization is located in.
See also:
https://devblogs.microsoft.com/devops/expressroute-for-azure-devops/https://devblogs.microsoft.com/devops/expressroute-for-azure-devops/
https://learn.microsoft.com/azure/expressroute/how-to-routefilter-portal

How to Azure DevOps CI/CD Pipeline for PowerBuilder 2017 R3 project, is it even possible?

Summary
Recently migrated PB126 apps to PB2017 and changed source control to Azure DevOps Git.
Now, I'd like to integrate Azure DevOps CI/CD Build Pipeline to the app dev life-cycle.
jenkins
I know it's feasible to configure jenkins CI server so it builds PB2017 projects.
Continuous Integration with PowerBuilder 2017, Bonobo Git and Jenkins
My problem here's I can't get it to work on a local Docker container and make it accessible to the outside world (Internet) so Azure DevOps can trigger its build action. Supposedly, it's a Docker for Windows thing which Docker handles differently from the Linux-based Docker.
Azure DevOps Pipeline
As per this link, Azure Pipelines is the CI/CD solution for any language, any platform, any cloud, it says any language, which makes me believe it's feasible to build PB2017 projects using Azure DevOps Pipelines.
The fact is that I'm totally new to CI/CD in terms of implementing it myself. I've experienced it in many projects where I wasn't responsible to implement it. Now I am. I've been on it since a few days now, and I do want it to work.
Any help appreciated.
The Appeon offical user forum: https://community.appeon.com/index.php/qna/q-a