Azure Container Instances

  • Author: Ronald Fung

  • Creation Date: 1 June 2023

  • Next Modified Date: 1 June 2024


A. Introduction

Containers are becoming the preferred way to package, deploy, and manage cloud applications. Azure Container Instances offers the fastest and simplest way to run a container in Azure, without having to manage any virtual machines and without having to adopt a higher-level service.

Azure Container Instances is a great solution for any scenario that can operate in isolated containers, including simple applications, task automation, and build jobs. For scenarios where you need full container orchestration, including service discovery across multiple containers, automatic scaling, and coordinated application upgrades, we recommend Azure Kubernetes Service (AKS). We recommend reading through the considerations and limitations and the FAQs to understand the best practices when deploying container instances.

Fast startup times

Containers offer significant startup benefits over virtual machines (VMs). Azure Container Instances can start containers in Azure in seconds, without the need to provision and manage VMs.

Bring Linux or Windows container images from Docker Hub, a private Azure container registry, or another cloud-based docker registry. Visit the FAQ to learn which registries are supported by ACI. Azure Container Instances caches several common base OS images, helping speed deployment of your custom application images.

Container access Azure Container Instances enables exposing your container groups directly to the internet with an IP address and a fully qualified domain name (FQDN). When you create a container instance, you can specify a custom DNS name label so your application is reachable at customlabel.azureregion.azurecontainer.io.

Azure Container Instances also supports executing a command in a running container by providing an interactive shell to help with application development and troubleshooting. Access takes places over HTTPS, using TLS to secure client connections.

Important

Starting January 13, 2020, Azure Container Instances will require all secure connections from servers and applications to use TLS 1.2. Support for TLS 1.0 and 1.1 will be retired.


B. How is it used at Seagen

As a biopharma research company using Microsoft Azure, you can use Azure Container Instances to deploy and manage containerized applications and microservices. Here are some ways you can use Azure Container Instances:

  1. Rapid prototyping and testing: You can use Azure Container Instances to rapidly prototype and test new applications and microservices, without the need for complex infrastructure setup or management.

  2. DevOps and CI/CD pipelines: You can use Azure Container Instances to build DevOps and CI/CD pipelines that automatically deploy and manage containerized applications and microservices, improving efficiency and reducing deployment time.

  3. Scalable microservices: You can use Azure Container Instances to deploy and manage microservices that can be scaled up or down as needed, improving performance and reducing costs.

  4. High-performance computing: You can use Azure Container Instances to deploy and manage high-performance computing workloads, such as machine learning and data analytics, improving performance and reducing costs.

  5. Hybrid cloud: You can use Azure Container Instances to deploy and manage containerized applications and microservices in a hybrid cloud environment, enabling seamless integration with on-premises infrastructure and applications.

  6. Integration with other Azure services: Azure Container Instances can be integrated with other Azure services, such as Azure Kubernetes Service, Azure Functions, and Azure App Service, providing a comprehensive suite of tools for deploying and managing applications and microservices.

Overall, Azure Container Instances provides a powerful and flexible tool for deploying and managing containerized applications and microservices. By leveraging the scalability, flexibility, and performance of the service, you can build applications and microservices that are customized to meet the unique needs of your research or business, and that provide efficient and effective management of your infrastructure and applications.


C. Features

Azure Container Instances is a container orchestration service that allows you to run Docker containers in Azure without having to manage the underlying infrastructure. Here are some key features of Azure Container Instances:

  1. Rapid deployment: Azure Container Instances enables you to quickly deploy and run containers without the need for manual infrastructure setup or management.

  2. Scalability: Azure Container Instances allows you to scale up or down container instances as needed, based on traffic or other workloads.

  3. Cost-effectiveness: Azure Container Instances offers a cost-effective way to run containers in the cloud, as you only pay for what you use.

  4. Container networking: Azure Container Instances provides built-in container networking, allowing containers to communicate with each other and with other services in your environment.

  5. Integration with other Azure services: Azure Container Instances can be integrated with other Azure services, such as Azure Kubernetes Service, Azure Functions, and Azure App Service, providing a comprehensive suite of tools for deploying and managing applications and microservices.

  6. Support for popular container formats: Azure Container Instances supports popular container formats like Docker, enabling you to run containerized applications and microservices that you already have.

  7. Support for multiple operating systems: Azure Container Instances supports multiple operating systems, including Linux and Windows, giving you the flexibility to run containers on the platform of your choice.

  8. High availability: Azure Container Instances provides built-in high availability, ensuring that your containers are always available and that your applications are highly resilient.

Overall, Azure Container Instances provides a powerful and flexible tool for deploying and managing containerized applications and microservices. By leveraging the scalability, flexibility, and performance of the service, you can build applications and microservices that are customized to meet the unique needs of your research or business, and that provide efficient and effective management of your infrastructure and applications.


D. Where Implemented

LeanIX


E. How it is tested

Testing Azure Container Instances involves verifying that the containers are properly deployed and functioning as expected. Here are some steps you can take to test Azure Container Instances:

  1. Verify configuration: Verify that Azure Container Instances is properly configured and integrated with your Azure account and resources.

  2. Test container deployment: Test Azure Container Instances by deploying a simple container image and verifying that the container is deployed and running as expected.

  3. Test container networking: Test container networking by deploying multiple containers and verifying that they can communicate with each other and with other services in your environment.

  4. Test scalability: Test the scalability of Azure Container Instances by increasing the number of container instances and verifying that the service can scale up or down as needed based on traffic or other workloads.

  5. Test cost-effectiveness: Test the cost-effectiveness of Azure Container Instances by monitoring the cost of running containers over time and ensuring that it aligns with your budget.

  6. Test integration: Test the integration capabilities of Azure Container Instances by integrating it with other Azure services, such as Azure Kubernetes Service, Azure Functions, and Azure App Service, and verifying that the service works seamlessly with these services.

  7. Test security: Test the security capabilities of Azure Container Instances by ensuring that your containers are properly secured and that they meet any regulatory compliance requirements.

Overall, testing Azure Container Instances involves verifying that the containers are properly deployed and functioning as expected, testing container networking, scalability, cost-effectiveness, integration, and security. By testing Azure Container Instances, you can ensure that you are effectively using the service to deploy and manage containers, and that you are benefiting from the scalability, flexibility, and performance it provides.


F. 2023 Roadmap

????


G. 2024 Roadmap

????


H. Known Issues

As with any software or service, there may be known issues or limitations that users should be aware of when using Azure Container Instances. Here are some of the known issues for Azure Container Instances:

  1. Limited customization: Azure Container Instances has limited customization options, which can limit the ability of users to configure the service to their specific needs.

  2. Limited durability: Azure Container Instances does not provide persistent storage options, which can limit the ability of users to store and manage data across multiple container instances.

  3. Limited integration: Azure Container Instances has limited integration with third-party tools and services, which can limit the ability of users to incorporate it into their existing workflows.

  4. Limited monitoring and logging: Azure Container Instances has limited monitoring and logging capabilities, which can limit the ability of users to monitor and troubleshoot their container instances.

  5. Limited portability: Azure Container Instances is designed for running containerized applications in the cloud and may not be suitable for running containers in other environments.

  6. Cost: Azure Container Instances can be expensive for users with limited budgets, particularly if they use it frequently or for large volumes of data.

  7. Security and compliance concerns: Users must ensure that they are properly securing and protecting their containers when using Azure Container Instances, particularly when running containers with sensitive data or data subject to regulatory compliance requirements.

Overall, while Azure Container Instances offers a powerful and flexible tool for deploying and managing containerized applications and microservices, users must be aware of these known issues and take steps to mitigate their impact. This may include carefully configuring the service to meet the specific needs of their data, carefully monitoring the performance and cost of the service to ensure that it is a good fit for their data requirements, and carefully integrating the service into their existing workflows to ensure that it is effectively utilized. By taking these steps, users can ensure that they are effectively using Azure Container Instances to deploy and manage containers, and that they are benefiting from the scalability, flexibility, and performance it provides.


[x] Reviewed by Enterprise Architecture

[x] Reviewed by Application Development

[x] Reviewed by Data Architecture