Microsoft Makes Big Azure Containers Push
Microsoft has lately been pushing container development big-time for its Azure cloud.
The company has published much new documentation for using containers in the past week or so across many different properties, including Azure Container Apps, Azure App Service, ASP.NET Core, Visual Studio, Visual Studio Code and many more.
The renewed emphasis on container development is exemplified with an Aug. 25 Announcing built-in container support for the .NET SDK post, which explains how developers can use the updated SDK to build Linux containers.
"Containers have become one of the easiest ways to distribute and run a wide suite of applications and services in the cloud," the post said. "The .NET Runtime was hardened for containers years ago. You can now create containerized versions of your applications with just
dotnet publish. Container images are now a supported output type of the .NET SDK."
The post explains how, for the upcoming .NET 7 release, the dev team added several APIs to the .NET Runtime for handling TAR files and streams, which opened the door to programmatically manipulating container images.
"This approach has been demonstrated very successfully in projects like Jib in the Java ecosystem, Ko for Go, and even in .NET with projects like konet," Microsoft said. "It's obvious that a simple tool-driven approach to generate container images is becoming more popular.
The team said it built the .NET SDK solution with the following goals:
- Provide seamless integration with existing build logic, to prevent the kinds of context gaps mentioned earlier
- Implement in C#, to take advantage of our own tool and benefit from .NET runtime performance improvements
- Integrated into the .NET SDK, so that it is straightforward for the .NET team to improve and service in the existing .NET SDK processes
Shortly after that, a bevy of new container documentation pages came online around Sept. 1, culminating with this post just a few days ago: Go Cloud Native with Azure Container Apps.
Microsoft announced the General Availability of Azure Container Apps at its big Build 2022 developer conference in May.
Azure Container Apps enables organizations to run microservices and containerized apps on serverless platforms, wherein functions -- or chunks of source code -- are typically triggered by user or system events. Azure Container Apps leverages containers purpose-built for serverless computing and is itself built on the foundation of open source technology in the Kubernetes ecosystem, Microsoft said, including Kubernetes Event Driven Autoscaling (KEDA), Distributed Application Runtime (Dapr), and Envoy running on the Azure Kubernetes Service (AKS).
"Azure Container Apps is an app-centric service, empowering developers to focus on the differentiating business logic of their apps rather than on cloud infrastructure management," Microsoft said. "Azure Container Apps executes app code packaged in any Linux-based container without enforcing opinionated runtimes or programming models. Scale all the way down to zero or scale out to meet global demand in response to HTTP requests or events. Alternatively, Azure Container Apps supports running apps as always-on background services."
The container push continued after that. For examples, in the following documentation all published on Sept. 1, deployment was the topic:
More Sept. 1 documentation provides Quickstart: Docker in Visual Studio guidance: "With Visual Studio, you can easily build, debug, and run containerized .NET, ASP.NET, and ASP.NET Core apps and publish them to Azure Container Registry, Docker Hub, Azure App Service, or your own container registry. In this article, we'll publish an ASP.NET Core app to Azure Container Registry."
Those quickstarts were preceded a couple days earlier with Visual Studio Container Tools with ASP.NET Core documentation that explains: "Visual Studio 2017 and later versions support building, debugging, and running containerized ASP.NET Core apps targeting .NET Core. Both Windows and Linux containers are supported."
While some of the above new documentation might be attributed to Microsoft simply updating a bunch of guidance at the same time, there's no doubt containers are a focal point of the company's cloud platform.
The company sums up the reasoning behind this push in it's What is a container? site under the heading of "Why you should care about containers:"
The problem of an application failing to run correctly when moved from one environment to another is as old as software development itself. Such problems typically arise due to differences in configuration underlying library requirements and other dependencies.
Containers address this problem by providing a lightweight, immutable infrastructure for application packaging and deployment. An application or service, its dependencies, and its configuration are packaged together as a container image. The containerized application can be tested as a unit and deployed as a container image instance to the host operating system.
This way, containers enable developers and IT professionals to deploy applications across environments with little or no modification.
David Ramel is an editor and writer for Converge360.