Azure Container Services - modern, efficient and indispensable
Faster, leaner, more efficient – container technology is transforming the way businesses develop and deploy software. Learn more about how Microsoft Azure serves as a leading platform for hosting containers and how it can significantly enhance the agility and scalability of your applications.
In today’s fast-paced world, businesses constantly face new challenges that require swift and flexible solutions. A key technology that meets these demands is containers. They enable efficient software development and deployment processes, keeping pace with the rapid tempo of digital transformation.
Containers, the building blocks of modern CI/CD workflows, offer a minimalist and efficient runtime environment that includes only the essential components needed to run an application. By separating additional components provided by the host system, containers significantly reduce startup and update times.
The question now arises: how can this potential be best utilized and managed?
Container Solutions on Azure
Microsoft Azure offers a wide range of options for running containers, from fully managed solutions where Microsoft handles most of the infrastructure configuration, to lightly managed solutions where you maintain control over the host system management.
Here is a list of container hosting options on Azure from light to fully managed:
- Azure Kubernetes Services (AKS)
- Azure Container Instances (ACI)
- Azure WebApp for Containers
- Azure Container Apps (ACA)
Each service offers its own benefits depending on the intended use case.
Azure Container Registry (ACR) allows for the central storage of containers within your own Azure environment, providing an integrated solution to use ACR as the source for the container images you deploy.
Spotlight: Azure Container Apps
Azure Container Apps (ACA) represent Microsoft’s latest container hosting option. Unlike AKS, Microsoft completely manages the underlying Kubernetes, including updates, upgrades, and scaling.
ACA is based on an Azure Container App Environment, where Microsoft provides fully managed Kubernetes resources that applications can utilize. Different workload profiles offer various combinations of CPU/RAM and the option to use GPU systems.
The main advantage of this solution is that you can focus solely on your application and its specific configuration, without having to manage the cluster.
ACA offers versatile ways to easily connect applications with other Azure services. For example, FileShares from an Azure Storage Account can be integrated into your containers to secure persistent data between restarts or application version changes.
Another feature of ACA is A/B or Green/Blue testing, where two versions of an application are run simultaneously. Incoming traffic is split between the running instances, enabling quick insights into the current development stage and allowing immediate bug fixes.
Practical Example: GitHub Runner on Azure Container Apps
A practical example: CI/CD workflows require an environment in which they can be executed. GitHub, as well as Azure DevOps and other providers, offer public agents where workflows can run. These runners are managed by GitHub and communicate through public endpoints. However, if you need access to internal resources or prefer not to work on public systems, these runners can also be operated in your own network.
Traditionally, 24/7 running virtual machines were used for this purpose. Azure Container Apps offer a cost-efficient and scalable alternative. Using KEDA (Kubernetes Event Driven Autoscaler), a connection to your own GitHub environment is established. ACA monitors whether a workflow has started, launches a container to execute the workflow, and then removes it afterwards. If no workflow is running, no container is started, keeping costs low.
The scalability of the solution is another advantage, as each workflow creates a separate container instance. Compared to a virtual machine, where usually only a single agent serves a workflow, this offers a flexible and efficient alternative.
Summary
Containers provide an excellent opportunity to modernize your own development and deployment of applications. Microsoft Azure, with its comprehensive portfolio of services, offers the right solution, whether you want to manage it yourself or fully focus on your application.