In November at Microsoft Ignite 2021, Microsoft announced a new Azure service called Azure Container Apps. Thus far, Azure Container Apps has been getting a ton of great feedback, reviews, and everyone seems to really enjoy it. It's a service that not only makes application deployment and management easier, but it's a big paradigm shift in the way engineers think about Kubernetes today.
In this blog post, you're going to learn what Azure Container Apps are and how you can get started with them.
To follow along with this blog post, you'll need:
- A base understanding of Kubernetes and containers
- An Azure account. If you don't have one, you can sign up for a free 30-day trial here
When you think about Kubernetes today, you probably think about it from a developer standpoint and an infrastructure standpoint. From a developer's point of view, it's a way to run a containerized application and orchestrate (scale) it. From an infrastructure pros view, it's exactly what a developer thinks, plus the systems needed to run it.
The systems that are needed, depending on what type of Kubernetes environment you're running, are:
- The master node(s); where the API runs
- The worker node(s); where the containers are running and scaled
When using Kubernetes services, like Azure Kubernetes Service (AKS), you don't have to worry about managing the master node. The Azure service does that for you. The only thing you have to worry about is managing the worker nodes, which are, in the case of Azure, virtual machines.
Here's the thing; no one wants to manage the worker nodes anymore. They want to use Kubernetes for what it is, which is an API to interact with that helps orchestrate containers applications.
That's where Azure Container Apps come into play.
Azure Container Apps is a serverless way to manage and orchestrate containerized applications. There's no more thinking about managing the worker nodes, the master nodes, or anything systems/infrastructure-related. Instead, you can think about just running the application.
Yes, AWS and GCP both have this type of service.
In AWS, you can use Elastic Kubernetes Service (EKS) with a Fargate profile, which turns EKS into serverless because there are no worker nodes to manage.
In GCP, you can use Google Kubernetes Engine (GKE) AutoPilot, which is a serverless Kubernetes service to run Kubernetes without worker nodes.
Now that you know what Azure Container Apps are, let's dive in!
First things first, sign in to the Azure portal and go to the Container Apps service.
Next, click the blue Create container app button.
When creating a container app, the next step ensures that you:
- Choose a proper resource group for the container app to exist in.
- A container app name (the name of the app running).
- A container app environment, which is used to store logs for the container app.
Fill in this information and click Next: app settings on the bottom of the page.
The screen after the Create Container App screen is where you start defining what container app you'll use and how it'll look. First, click off of Use quickstart image
Next, give your container app:
- A name.
- Choose the Docker Hub image source.
- Choose the Public image type.
- For the image and tag, type
nginx:latestto use the Nginx image from Docker Hub.
- Finally, ensure that Ingress is set to enabled. Since Nginx is a frontend web server/app, you'll need Ingress configured.
Scrolling down on the page, you'll see an option to choose the Ingress visibility and the target port. Since the Nginx web app will be public, you can choose external visibility and a target port of 8080.
Once complete, click the blue Review + create button.
You should now see the container app in the resource group you chose.