Azure Container Apps have skyrocketed into popularity since their launch at the 2021 Microsoft Ignite Conference. In this article we’ll be covering a few topics integral to understanding the Azure Container Apps service, starting off with what container apps are and what this service entails. We’ll look at the prominent features of Azure Container Apps as well as both the benefits and limitations. Finally, we’ll examine how the Microsoft container apps compare to similar container options on the market. As Azure Container Apps is still in public preview, we look forward to new updates and features. For more details and products that were introduced at the 2021 Microsoft Ignite Conference, check out our full article here.
What Is a Container?
Imagine that you’re moving houses. It’s an exhausting process organizing everything and moving it from one location to the next. You have to pack all your belongings into boxes. Generally, you’d pack similar things from one room into the same box, for example, you may have a “kitchen” box with all your dinnerware, utensils, and pots. Everything that you would need for the kitchen would be contained in that single package. Containers function in the same way. They are packages of software that bundle an application’s code with everything else that it would need, for example files, libraries, and other dependencies.
What Are Azure Container Apps?
The Azure Container Apps service allows you to run containerized applications and microservices on a serverless platform, without managing complex infrastructure. In doing so, it boasts a range of features, expanded on in the following section, such as autoscaling, splitting traffic, and support for a variety of application types.
Relevant Features and Benefits
The following are a few features and benefits of Azure Container Apps:
- Autoscaling: As mentioned above, Azure Container Apps has powerful auto-scaling capabilities based on event triggers or HTTP traffic. As the container app scales out, new instances of the container app, named instances, are created as required. This service supports many scale triggers.
- Splitting Traffic: Azure Container Apps has the capability to activate multiple container revisions with different proportions of requests directed to each one for testing scenarios. This feature is very beneficial when you want to make your container app accessible through HTTP.
- Allowing for Application Flexibility: The containers within Azure Container Apps are incredibly versatile and are able to use any programming language, runtime, or development stack. The flexibility that this provides users in implementing the product and users can define multiple containers within a single container app for use of shared disk space, scale rules, and more.
There are a few things to take note of before using Azure Container Apps. One limitation of the product is that it cannot run privileged containers. If you try to run a program that requires root access, there will be a runtime error that occurs within the app. The other thing to note is that in order to run this product, Linux-based container images are required.
Azure Container Apps as Compared to Other Contenders
It’s important to analyze whether Azure Container Apps is the best fit for your organization and its needs. The following options are other services that would be better suited for specific use cases.
- Azure Kubernetes Service: If it’s necessary for you to have access to Kubernetes APIs and control plane, it may be better to use this product rather than Azure Container Apps, which doesn’t allow for direct access to the aforementioned Kubernetes APIs.
- Azure Container Instances: This service is often referred to as the simpler, building block version of Azure Container Apps, and is ideal if your needs do not match up with the Azure Container Apps scenarios.
- Azure Functions: When building Functions-as-a-Service (FaaS) style functions, Azure Functions is the best way to go as it’s more optimized for functions distributed as containers or code. As well as this, it possesses a base container image, which allows for the reuse of code even as the environment changes.
After understanding the multitude of features that the Azure Container Apps service contains and the optimal use cases, you probably have a better sense of whether it’s something that your organization would benefit from. Flexible, scalable, and easily integrated, it’s a service that covers a range of needs for deploying microservices using serverless containers. If you’re interested in finding other Azure services in addition to Azure Container Apps, click here.