Open joelverhagen opened 2 years ago
Additional Workloads could be the use as a dsc push server for Microsoft365DSC as it is currently only supported on windows.
I'm also interested in this for strangling some .Net Framework projects to .Net Core.
I'd also like to share some details why the support of Windows images for Azure Container Apps would help us with regard to different aspects.
Why would Microsoft ask customers why do they need to use windows containers? I thought that story shall be already known to Microsoft since windows containers has been there for last 7 years and Microsoft shall have all the info about how customers use it and why they use and all the pain points etc. I'm surprised that 7 years after introduction Microsoft still clueless enough to ask "why would you want windows containers"
@artisticcheese I don't speak for Microsoft in this regard but, from my own experience planning and prioritizing tasks for NuGet.org, my guess is that this is not a question of "why would Container Apps ever support Windows?" and more "how should we prioritize this work compared to other feature work?"
On my team we use upvotes on GitHub issues as a proxy for the impact of the issue. More upvotes means it should probably happen sooner since more users want it. Of course, there are other considerations like a low upvote issues that's very easy to implement may be done before a high upvote issue that's extremely costly.
If I were to guess, Windows container support is probably a big engineering task and the team wants to make sure they're using their engineering resources well before committing to it. Just my two cents :)
Again, I'm not part of the Container Apps team but I do have some experience triaging and planning issues filed on GitHub.
Yes, that's what I expected as well. Microsoft should have asked to upvote this feature but based on Twitter thread they asked for use case
instead which got me confused since I assumed Microsoft already aware of what use case for windows containers are.
I would like to see this support windows containers too then it gives us an alternative to AKS as we have a range of .net versions in use
Here is straight up from Microsoft press. Forza game apparently running on Windows containers https://customers.microsoft.com/en-us/story/1498781140435260527-forza-horizon-5-crosses-finish-line-fueled-by-azure-kubernetes-service
We are in a similar situation to @patkoch ...
We have a number of Windows DLLs which house niche engineering calculations that are more than 30 years old and would take a huge effort to port across to Linux, so the realistic option for us is also to use Windows containers. We likely don't need the power of a Kubernetes service, so Azure Container Apps looked ideal until I discovered it was Linux-only!
Sadly, even using Azure Container Instances (ACI) is a non-starter due to Windows container limitations (multi-container groups & virtual network deployment) which make it impossible to build an app comprising a sidecar container e.g. for web server and SSL termination.
Thus far, Microsoft haven't been able to suggest a viable alternative: https://docs.microsoft.com/en-us/answers/questions/946492/enable-https-for-aci-windows-container.html
Another big thing ACI on Windows containers is not supporting is volume mapping, which makes it impossible to use for any statefull workload.
One possibility is to run Windows Containers in Azure App Service that’s supports SMB persistent storage https://learn.microsoft.com/en-us/azure/app-service/configure-connect-to-azure-storage?tabs=portal&pivots=container-windows
Here you can follow the QuickStart to run a Windows Container in App Service: https://docs.microsoft.com/en-us/azure/app-service/quickstart-custom-container?tabs=dotnet&pivots=container-windows-azure-portal
Similar to @w5m, we have a number of 3rd party unmanaged windows dlls that are necessary for our application, but the owners of those dlls have no interest in adding support for linux. We are interested in moving to containers but reluctant to climb the steep learning curve or live with some of the downsides of other options. Azure Container Apps looks very promising for our application, but we won't be able to use it without support for windows containers so that we can run those 3rd party windows dlls.
SItecore still needs windows containers. Please make it possible for windows containers te be used
We have Windows self hosted agents for Azure Pipelines which run perfectly on Azure Kubernetes Service but would be great to shift to Container Apps. Mainly due to costs and isolation.
I currently have a workload split into ACI and ACA - due to the lack of support for Windows containers in ACA.
I need Windows containers for some python-based APIs that have dependencies on Windows-only libraries.
We have a quite simple background processing scenario, but also we have a 3rd party SDK that runs only on Windows. Currently we handle this with VMSS.
As I mentioned earlier, you can use Windows Containers in Azure App Service. If you are interested in a background processing scenario, just don't expose ports in your dockerfile or add the appsetting in the portal PORT=0 and we will run your Windows Container in the background.
@jvano ACA supports auto scaling, scaling to zero, and it's extremely cheaper compared to App Service. Besides that, I want to deploy it all as a single platform because it's all part of a single system. In fact, I want the Windows Containers to be reachable only from the CAPP environment.
@jvano Would be great if this feature request can be implemented. We would also have Windows self-hosted Agents for Azure Pipelines running in ACA on a Windows image because with KEDA we can use the auto scaller functionality.
@jvano Would be great if this feature request can be implemented. We would also have Windows self-hosted Agents for Azure Pipelines running in ACA on a Windows image because with KEDA we can use the auto scaller functionality.
Seconded. I am also wanting to run Windows self hosted agents in ACA.
Another upvote for windows support. We have some legacy containers that use Crystal Reports where it's going to take a long time to migrate to another library. Currently running everything in AKS on a mix of Linux/Windows nodes. Would much rather use ACA for everything, vs having to put Windows containers in an App Service, ACI or back to VMs.
I don't know the technical limitations of Microsoft Azure supporting windows containers in ACA. We do have an enterprise windows application to which we plan to containerize, It would be very helpful if ACA support windows containers.
We have an app that is running at several hundred sites. It was in VB6 and is now .net6 / vue. The last piece is Crystal Reports.
We've made an api that returns a PDF stream of the report. This works well in a Windows Container. Since SAP isn't going to make CR .net (their words), having Windows Container support would be a good use case for us.
Any updates on this?
Our team could definitely benefit from this. The bulk of our existing platform and data processing code is a mix of C++ and C# that interops via in-proc COM. The code spans 25+ years, and the cost and risk to port even a usable chunk of that to run on Linux would be prohibitive. That said, we would like to leverage a lot of that code in new web-based services we are developing using ASP.NET Core.
While we could use Azure App Service, as @CamiloTerevinto previously mentioned, ACA has a number of advantages making it a more economical solution, especially for workloads that have spiky traffic or extended periods of low activity. Plus, I find the deployment experience of deploying new revisions to ACA and being able to do things like traffic splitting rules a much nicer experience than deploying container workloads to App Service.
The cost of running App Service for one VERY low power windows container is crazy. It is about 10% of each of the Azure Tenant's cost. This is real money being wasted.
We would like to have this as well. Our WMS service supports ecw and sid image files, and our software uses windows dlls to read them.
+1
+1
+1
+1
+1
In our Team we use overall the Linux machines. But some external tools like EvoToPDF or GroupDocs they need to run in a windows machine. Would be great to have this feature
We have a component (TX Text Control) that can only run on as an Windows container, so this breaks it to currently deploy it to Container App.
I'm very disheartened to find after much investigation, proof of concept work and fanfare around deploying self-hosted CI/CD runners and agents with Azure Container Apps jobs, it must be a Linux container, cutting out the very OS that Microsoft build and support.
This throws a significant spanner in the works and maintenance overheads for one person or a small team to use AKS instead when it isn't needed in the first place if Windows containers were supported. I've learned a valuable lesson, don't make assumptions around support.
Please update the Azure Container Apps documentation to ensure this limitations section in the "Containers in Azure Container Apps" wiki page, is more visible and pronounced in other places using the Note markdown styling or similar warnings. I missed this and got burnt.
What a shame, it would have been the perfect fit for the Azure Pipelines KEDA scaler and a Windows pipeline agent!
EDIT: For others reading this, it appears Microsoft have yet another product cooking in the oven called Managed DevOps pools, given the date of the "first look" blog posts, it seems to be a new service and certain options are not yet generally available (GA?). Unfortunate timing!
+1
+1
+1
+1
+1
Is your feature request related to a problem? Please describe.
Currently, Azure Container Apps only supports Linux x64 container images (source):
It would be great if Windows container images were also supported. For comparison, AKS supports Windows images (source).
Describe the solution you'd like.
Enable Windows container images so that workloads requiring Windows can run on Azure Container Apps.
Describe alternatives you've considered.
Additional context.
My Windows-only workloads are:
The project that I want to deploy is my team's NuGet/Insights.