Do I need SSH tunnel to deploy Docker containers from Windows Server 2016 using Full CI/CD pipeline - azure

Thank you very much for your help with the previous questions
Deploying Windows Containers (created with Docker) into Azure Container Service
Windows Container vs Docker Container and Azure Container Services/Kubernetes cluster with Linux OS
I am continuing my research and somewhat at a standstill as I try to follow the instructions of the following article that explains how to create CI/CD pipeline to deploy a multi-container application.
https://learn.microsoft.com/en-us/azure/container-service/dcos-swarm/container-service-docker-swarm-setup-ci-cd
The code sample that is referenced here is built for the Linux application, and I am not able to run it or create Docker container out of it.
Thus, I have following questions (those questions could be all over the place, my apologies for that)
When I create a .Net Core Web API on Windows 2016 server, is there any possibility for me to create an application that I could deploy to a Linux environment? (portable .NET Core Web API application)
When I would like to take advantage of CI/CD pipeline using Visual Studio Team Services, do I really need to create Azure Container Service with Docker Swarm? As far as I understand ACS is a Linux based environment whereas I would create Windows based docker containers on Windows Server 2016
Do I really need to be concerned with ACS and SSH tunnel when dealing with Windows Server 2016 based docker containers if I could easily deploy those containers to a Kubernetes cluster with Windows nodes
Is there an alternative way for me to deploy docker containers created on Windows Server 2016 using Full CI/CD pipeline to Visual Studio Team Services without using the Linux based SSH tunnel/ACS
Thank you very much for your generous input
Mikhail

1.When I create a .Net Core Web API on Windows 2016 server, is there any
possibility for me to create an application that I could deploy to a
Linux environment?
Yes, .Net core is a general purpose development platform maintained by Microsoft and the .NET community on GitHub. It is cross-platform, supporting Windows, macOS and Linux, and can be used in device, cloud, and embedded/IoT scenarios. So we can deploy .net core web api app on Linux environment.
Maybe we can refer to this link.
2.When I would like to take advantage of CI/CD pipeline using Visual
Studio Team Services, do I really need to create Azure Container
Service with Docker Swarm?
No, creating a CI/CD pipeline on Azure Container service with kubernetes and visual studio team services is available. More information about VSTS and ACS k8s, please refer to this link.
3.Do I really need to be concerned with ACS and SSH tunnel when dealing with Windows Server 2016 based docker containers if I could
easily deploy those containers to a Kubernetes cluster with Windows
nodes
If you want to use VSTS to deploy your .net core container, I think we should connect to ACS cluster.
If you want to use ACS k8s, we should add kubernetes connection:
4.Is there an alternative way for me to deploy docker containers created on Windows Server 2016 using Full CI/CD pipeline to Visual
Studio Team Services without using the Linux based SSH tunnel/ACS
Do you mean you want to use ACS, but don't want to connect Linux based SSH tunnel? If I am right, we can deploy a site-to-site VPN between your on-prem network and Azure Vnet, in this way, we can connect k8s like local.

Related

Azure windows self-hosted agent with docker installed

We are trying to develop Azure windows self-hosted to run Azure pipelines.
However, these agents are deployed on kubernetes. And we want these agents to be able to use docker for build/push operations. meaning we need docker inside docker.
Is it possible to install docker on these windows self-hosted agents ?
You need to set up a self-hosted agent in Azure Pipelines to run inside a Windows Server Core (for Windows hosts), or Ubuntu container (for Linux hosts) with Docker. Detailed steps you may refer to the following link:
https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/docker?view=azure-devops

How do I configure Service Fabric Cluster on Windows Server 2016 to be able to run Linux Containers?

In one of our project, we have a technical constraint to use Service Fabric as platform to run applications built with Service Fabric SDK. The Service Fabric Cluster will use Windows Server 2016 for the Operating System.
However, the software also are depending on a 3rd party product that run as Docker Container running on Linux Container OS.
The Product Owner would like to have the Container to be deployed on the same Service Fabric cluster for easier management and monitoring.
It is known that Windows Server 2016 are able to run Linux Docker Container using Hyper-V Isolation Technology. How do I configure Service Fabric running on Windows Server 2016 to be able to utilize that technology and run Linux Containers?
Thank you.
Support for running Linux containers directly on WinSrv2016 is on the way. It's not here yet. Therefore you can't run them on SF yet either.
You can't have a hybrid cluster either. So at this time your options is: run two SF clusters.

Can I deploy a docker container to Azure Webapp

I found a lot of resources online on using docker with Azure virtual machines. But didn't find any on using docker with Azure Webapps. Is this possible?
Things are changing fast in the cloud. Since November 2016, it is now possible on linux web apps to run docker containers. You can read about it here. https://buildazure.com/2016/11/18/deploy-docker-containers-to-azure-web-apps-on-linux
No. Web Apps are a Platform-as-a-Service from Azure which use a bespoke packaging and runtime, you can't just create a Web App, point it to a Docker image and run it as a container.
If you want to run Docker on Azure, you can spin up a VM to use as a single host - you can use an Ubuntu image for Linux containers or a Windows Server 2016 image for Windows containers (currently in preview).
To create a Docker Swarm running on Azure you can use Azure Container Service or Docker for Azure.
No, because a webapp is a PaaS that Azure provides, that allows you to push a website with there settings (to simplify it) with ease.
But, you can push a website onto docker using Azure.
Web Apps, running under App Service, is Webapp-as-a-Service. Nothing to do with Docker. It has its specific methods of code deployment built-in, and does not support Docker images.
That's not to say you cannot have Web Apps and Docker images communicate between each other - you can certainly have, say, your database in a Docker container, being called by your Web App.

Which azure service, i should choose for my node.js app?

I am new to Microsoft windows azure cloud and want to run my node.js app in azure cloud. I read the windows azure Node.js Developer Center site ( https://www.windowsazure.com/en-us/develop/nodejs/ ) and it seems my app can run in azure cloud multiple ways.
Which azure option is good for my node.js app if i want to deploy quick with less azure knowledge?
If you are new to Windows Azure but knowledgeable a Node.js developer, you sure can use Windows Azure to write your Node.js application.
You have following choices:
Windows Azure Websites (Preview) –
FREE only if shared and if RESERVED there is some cost associated with it
Great if you are a Linux or Mac User
Your node.js application will run on Windows Server Farm
You can use git to deploy your Node.js Application
Windows Azure Cloud Services
Ideal for applications that separate logic into multiple tiers using both Web and Worker Roles
It is a PAID service
You can use PowerShell to deploy directly from a Windows Machine
Your Node.js application will runs on Windows Server 2008 OS
You will have capability to RDP your Windows Azure VM.
Windows Azure Virtual Machines (Preview)–
This way you can create run your node.js application on a Microsoft Windows or Linux (Suse, CentOS, Ubuntu) machines or upload your own Linux VM already fully installed with Node.js application
With Windows machine, you can RDP to your machine and install your Node.js application
With Linux machine you can use Putty to connect your Linux Machine on command like and then install your application and other packages
Currently even with Preview mode, there is some price associated with it
As you are new to Windows Azure, I would suggest you to give a try using FREE Windows Azure Websites Shared because this way you really don’t need to learn a lot about Windows Azure and you can start running your application instantly. This could be the easiest method among above 3 options and then you can jump to other by just migrating your application If needed.
IF you decide to use Cloud Service, you can use Cloud9 IDE to publish your Node.js application directly to Windows Azure Cloud Services in your subscription.
You can find a decision tree here: http://msdn.microsoft.com/en-us/magazine/jj991974.aspx
What are the options you're considering? I can think of two: "cloud services" or "web sites." The latter is probably the easier and cheaper option, assuming you're building a web app. The former gives you full-blown VMs backing your app, on which you can run anything (including "workers" that process data in the background or apps that communicate via web sockets or even raw TCP). It's more powerful, but it's also more difficult to use, slower to deploy, and costs more money than a shared "web site."
Sign up for the Windows Azure 90-day free trial https://www.windowsazure.com/en-us/pricing/free-trial/
Login into the Portal at: https://manage.windowsazure.com
Click the Virtual Machines tab then click Create a Virtual Machine to create a Windows VM.
On the slide-out panel, select Quick Create then specify your DNS Name, Image [Windows Server 2008 R2 SP1], Administrator Password, Size [Small (1 core, 1.75GB Memory)], Location (West US). Finish by clicking the Create Virtual Machine button.
Once provisioning is complete, you can connect to your VM via Remote Desktop Protocol by clicking the Connect button on the toolbar at the bottom of the screen.
Be sure to install a modern browser like Firefox to avoid the annoying default security settings of IE then proceed to download and install the node-js msi like you would on your desktop.
Happy hacking!
The fastest way to get started is to use Windows Azure Web Sites. You get a web site that is already configured to run node.js. You merely use ftp or git commands to push your code to the drop folder for your site.
You can use a Mac, PC, or Linux as your development machine. This tutorial (using a mac) shows the fastest way to get started: https://www.windowsazure.com/en-us/develop/nodejs/tutorials/create-a-website-(mac)/
Cheers!

Access Azure Development Server From VM?

We are developing an application that we are deploying to Azure. It needs to work with a specific machine configuraiton. We we have this configured as a VM which developers can run locally.
However to test the VM configuration we need to publish to Azure and access it on a live Azure instance. Is there anyway to allow a local VM to get access to the Azure environment IIS on the developers machine? It doesn't seem to show up in IIS Express so I guess it isn't the same as a normal site?
Also is it possible to configure an Azure environment locally for testing. We want to host test applications for internal use and don't want them run on developers machines. We would like to run them on a server in the office.
Any ideas?
Thanks
I think that the answer to this question will outline the general guidelines you could follow to enable your environment.
Windows Azure Emulator has its own load balancer simulator which bind to socket 127.0.0.1:81 (most of the cases, if port 81 is free). If the Azure project is developed with Azure SDK 1.3 or later with Full IIS enabled, then the Azure Emulator (for versions 1.3 ~ 1.6) will use local IIS to host the sites. IIS Express is not involved in any way with the Azure project. If you happen to run IIS Express, then most probably you have set up your web application project as a StartUp project in the solution. The correct way to locally debug Windows Azure applications is to use the Cloud Project as a startup project.
Please kindly update your question, if there is some doubt or confusion after checking the mentioned related question.

Resources