Gitlab - Using one self-hosted instance to deploy on several cloud providers? - azure

Is it a 'good idea' to use one self-hosted instance of Gitlab (let's say on Azure) and use it to deploy on multiple clouds (e.g AWS, Azure, GCP) ?
What is first coming to my mind is that it needs a private network link between the cloud providers so that the private self-hosted agents can communicate with the self-hosted Gitlab instance.
I don't find architecture examples introducing this kind of solution.

There is not necessarily any reason why you cannot deploy solutions on multiple clouds, irrespective of where your GitLab runners happen to be hosted. Your runners don't have to be hosted in the cloud to which you are deploying. You can even deploy to all clouds from GitLab.com hosted runners, for example.

Related

How many different ways are there to deploy a website under azure portal?

Good day dear community,
i have a smaller project where i need to search for different possibilities to deploy a website under azure portal.
Personally i found 4 different ways how to do it.
App services
App functions Serverless (which i dont understand how to deploy there a website)
Install a VM and then deploy a website
Use docker to deploy your code
Question:
Are there any more ways to deploy a website under azure and can somebody explain the deployment of websites with serverless as i dont understand how to publish a website there. i just managed to get the httptriggers and i am confused with that.
Thanks in advance
sorry for any spelling mistakes.
You can deploy to a website to a VM. But first you will have to setup the VM to be a web server. There are many different pre-configured images with either Linux or Windows OS. This will require you manage the OS of the VM.
An Azure App Service will abstract the OS and VM away from you. The OS will be managed for you and you can configure many settings through the Azure Portal. There are different plans that allow you to use more compute and/or memory. You can also setup Authentication through the portal. You can also elect to deploy you website inside a container to an App Service.
There are also Azure Function Apps which can be used. Azure Function Apps are not intended to serve as the backend to a website, but it can be. These are meant to serve only one purpose, not many like the backend of a whole website ( for example, you might use a different function app to serve content each page of a website instead of just one app service having multiple endpoints serving all pages of a website). With Azure function apps, you can deploy in a container or not in a container.
I am not sure what you mean by number 4, Container over docker. You can deploy a docker container an App Service or a Function App. You can deploy the container to docker hub or azure container registry (to name a couple), but that will not deploy your website so that it is accessible.

Ocelot API Gateway inside Azure

I'm trying to create working solution with Ocelot API Gateway. I managed to create working solution locally on my pc. Now I want to move to the next step which is to deploy this solution to Azure.
As far as I know in order to do that I need one of those things :
-Docker host, in your local dev PC, on-premises or in the cloud
-Kubernetes cluster, on-premises or in managed cloud such as Azure Kubernetes Service (AKS)
-Service Fabric cluster, on-premises or in the cloud
-Service Fabric mesh, as PaaS/Serverless in Azure
I don't have much experience in any of those but I think the best one will be to use Docker App Service within Azure.
I'm working on deploying my projects but I believe I will need to create some Virtual Networks so those docker images will be able to communicate with each other. Maybe there is some tutorial online ? Or anybody has done something similar ? I would appreciate some help.

How to deploy using Azure build agent to internal server?

I am using ( Agent pool : Azure pipeline ; Agent specification : windows-2019 )
for CI/CD build, I also want same agent to deploy war to Azure VM which is bound to specific domain.
Although, I am able to deploy war using self hosted agent, but for this I have to allocate one VM for CI/CD builds.
I want to eliminate this and use the same agent to build and deploy war to server.
You don't. Microsoft-provided hosted agents don't have connectivity to your on-prem environment. If you need to deploy to a server that is not internet-addressable, then you need to create a private agent within your network.
According to this document:
If your on-premises environments do not have connectivity to a Microsoft-hosted agent pool (which is typically the case due to intermediate firewalls), you'll need to manually configure a self-hosted agent on on-premises computer(s).
If in your case, it's the internal firewalls that block the hosted agent, I think you do have the need to use self-agent for deployment. Otherwise, you can try port forwarding like 4c74356b41 suggests.

azure VM staging to production

I am currently trying to figure out the best architecture for my Azure VMs.
I have a production website that is hosted in IIS in 2 VMs with a load-balancer over them, this is called Prod1 and for now is the live site.
I also have the exact same setup as my "staging" (called Prod2) environment, obviously this is not live .
I wish to deploy to Prod2, test and when happy switch it to live. Thereby making Prod1 not live.
Now i can simply drop the TTL and re-point the A record on the sites Domain name to the public IP of Prod2s load balancer.
But is there a better way of doing this to enable faster switching between these?
Azure Traffic Manager would be my suggestion for a seamless blue-green deployment.
For your workloads that are running in Azure, the recommendation is to setup the Blue environment, which has the old code, and Green environment, which has the new code, in separate Azure Resource Groups.
If the endpoint is external, you can use any continuous integration and deployment tool to manage and deploy the two environments.
Once you have the environments ready you can create a Traffic Manager profile using the Azure portal, PowerShell, or CLI, with weighted round-robin as the routing method and add the endpoints corresponding to these environments.
See Dilip's full post here.

Azure Linux VM and BitBucket

I have an Azure Linux VM, and a BitBucket repository.
I would like to setup continuous development between the two, however all the tutorials I could find are for Azure Web Apps, and not for Linux VM.
There is no built-in SCM integration with Virtual Machines; it's only built-in for Web Apps.
You'll need to set up / configure your own deployment scheme, to pull your deployments from BitBucket into your VM. How you do that is quite a broad and opinion-soliciting topic / discussion, and out of scope for StackOverflow.

Resources