Skip to content

Commit

Permalink
Merge pull request #6337 from MicrosoftDocs/EdPrice-MSFT-patch-455-2
Browse files Browse the repository at this point in the history
Update microservices-with-container-apps-content.md
  • Loading branch information
ttorble committed May 29, 2022
2 parents 9035aa4 + 2327333 commit f49a283
Showing 1 changed file with 43 additions and 37 deletions.
Original file line number Diff line number Diff line change
@@ -1,38 +1,7 @@
Your business can simplify the deployment and management of microservice containers by using Azure Container Apps Preview. Container Apps provides a fully managed serverless environment for building and deploying modern applications.

This example scenario demonstrates how to deploy microservice containers without needing to manage complex infrastructure and container orchestration.

Fabrikam, Inc. (a fictional company) has implemented a drone delivery service where users can request a drone to pick up goods for delivery. When a customer schedules a pickup, a backend system assigns a drone and notifies the user with an estimated delivery time. While the delivery is in progress, the customer can track the location of the drone, with a continuously updated ETA. The application is composed of containerized microservices and was originally deployed to Azure Kubernetes Service.

With Azure Container Apps, Fabrikam can run their containerized applications on a flexible, serverless platform purpose-built to support microservices. Azure Container Apps runs on Azure Kubernetes Service, and includes several open-source projects: Kubernetes Event Driven Autoscaling (KEDA), Distributed Application Runtime (Dapr), and Envoy. This open-source foundation enables teams to build and run portable applications powered by Kubernetes and open standards. By using built-in platform capabilities, teams can avoid the management complexity of working with the Kubernetes platform and APIs directly.

Because the Fabrikam team wasn't making use of many of advanced AKS configuration settings, they were able to migrate their application to Azure Container Apps without much overhead. By porting their solution to Azure Container Apps, Fabrikam took advantage of:

1. Migrating the application as-is: No code changes were required when moving their application from AKS to Azure Container Apps.
1. Deploying with Bicep templates: No Kubernetes YAML manifests were needed to deploy their application containers.
1. Exposing apps through managed ingress: Built-in support for external, https-based ingress to expose the Ingestion Service removed the need for configuring their own ingress.
1. Pulling container images from ACR: Azure Container Apps doesn't require a specific base image or registry.
1. Managing application lifecycle: The revision feature supports running multiple revisions of a particular container app and traffic-splitting across them for A/B testing or Blue/Green deployment scenarios.
This example scenario demonstrates how to deploy microservice containers, without needing to manage complex infrastructure and container orchestration.

You can find a code sample in the [Container Apps Example Scenario](https://github.com/mspnp/container-apps-fabrikam-dronedelivery) repository.

## Potential use cases

In this example solution, the use cases are:

- Deploy a brownfield microservice-based application into a platform as a service (PaaS) offering to avoid the operational complexity of managing a container orchestrator.
- Optimize operations and management by migrating containerized services to a platform that supports native scale-to-zero.
- Execute a long-running background process, such as the workflow service in single revision mode.

Other common uses of Container Apps include:

- Running containerized workloads on a serverless, consumption-based platform.
- Autoscaling applications based on HTTP/HTTPS traffic and/or Event-driven triggers supported by KEDA
- Minimizing maintenance overhead for containerized applications
- Deploying API endpoints
- Hosting background processing applications
- Handling event-driven processing

## Architecture

![Diagram showing microservices deployed with Azure Container Apps.](./media/microservices-with-container-apps-deployment.png)
Expand Down Expand Up @@ -101,6 +70,43 @@ Many of the complexities of the previous AKS architecture are replaced by these

An alternative scenario of this example is the Fabrikam Drone Delivery application using Kubernetes, which is available on GitHub in the [Azure Kubernetes Service (AKS) Fabrikam Drone Delivery](https://github.com/mspnp/aks-fabrikam-dronedelivery) repository.

## Scenario details

Your business can simplify the deployment and management of microservice containers by using Azure Container Apps Preview. Container Apps provides a fully managed serverless environment for building and deploying modern applications.

This example scenario demonstrates how to deploy microservice containers without needing to manage complex infrastructure and container orchestration.

Fabrikam, Inc. (a fictional company) has implemented a drone delivery service where users can request a drone to pick up goods for delivery. When a customer schedules a pickup, a backend system assigns a drone and notifies the user with an estimated delivery time. While the delivery is in progress, the customer can track the location of the drone, with a continuously updated ETA. The application is composed of containerized microservices and was originally deployed to Azure Kubernetes Service.

With Azure Container Apps, Fabrikam can run their containerized applications on a flexible, serverless platform purpose-built to support microservices. Azure Container Apps runs on Azure Kubernetes Service, and includes several open-source projects: Kubernetes Event Driven Autoscaling (KEDA), Distributed Application Runtime (Dapr), and Envoy. This open-source foundation enables teams to build and run portable applications powered by Kubernetes and open standards. By using built-in platform capabilities, teams can avoid the management complexity of working with the Kubernetes platform and APIs directly.

Because the Fabrikam team wasn't making use of many of advanced AKS configuration settings, they were able to migrate their application to Azure Container Apps without much overhead. By porting their solution to Azure Container Apps, Fabrikam took advantage of:

1. Migrating the application as-is: No code changes were required when moving their application from AKS to Azure Container Apps.
1. Deploying with Bicep templates: No Kubernetes YAML manifests were needed to deploy their application containers.
1. Exposing apps through managed ingress: Built-in support for external, https-based ingress to expose the Ingestion Service removed the need for configuring their own ingress.
1. Pulling container images from ACR: Azure Container Apps doesn't require a specific base image or registry.
1. Managing application lifecycle: The revision feature supports running multiple revisions of a particular container app and traffic-splitting across them for A/B testing or Blue/Green deployment scenarios.

You can find a code sample in the [Container Apps Example Scenario](https://github.com/mspnp/container-apps-fabrikam-dronedelivery) repository.

### Potential use cases

This drone delivery solution applies to the aerospace, aircraft, and robotics industries. In this example solution, the use cases are:

- Deploy a brownfield microservice-based application into a platform as a service (PaaS) offering to avoid the operational complexity of managing a container orchestrator.
- Optimize operations and management by migrating containerized services to a platform that supports native scale-to-zero.
- Execute a long-running background process, such as the workflow service in single revision mode.

Other common uses of Container Apps include:

- Running containerized workloads on a serverless, consumption-based platform.
- Autoscaling applications based on HTTP/HTTPS traffic and/or Event-driven triggers supported by KEDA
- Minimizing maintenance overhead for containerized applications
- Deploying API endpoints
- Hosting background processing applications
- Handling event-driven processing

## Considerations

### Availability
Expand Down Expand Up @@ -151,11 +157,7 @@ Performance monitoring through Log Analytics and Azure Monitor allows you to eva
- Container Apps supports Managed Identities allowing your app to easily authenticate other Azure AD-protected resources such as Azure Key Vault, without managing credentials in your container app. For services that don't support AD authentication, you can store secrets in Azure Key Vault and use the managed identity to access Key Vault to access the secrets.
-->

## Deploy this scenario

Follow the steps in the README.md in the [sample repository](https://github.com/mspnp/container-apps-fabrikam-dronedelivery) to deploy this scenario.

## Pricing
### Cost optimization

- The [Cost section in the Microsoft Azure Well-Architected Framework](/azure/architecture/framework/cost/overview) describes cost considerations. Use the [Azure pricing calculator](https://azure.microsoft.com/pricing/calculator) to estimate costs for your specific scenario.
<!--
Expand All @@ -166,6 +168,10 @@ Follow the steps in the README.md in the [sample repository](https://github.com/
- In this scenario, the Azure Cosmos DB and Azure Cache for Redis services generate most of the costs.
- To avoid accruing charges, don't leave this example running.

## Deploy this scenario

Follow the steps in the README.md in the [sample repository](https://github.com/mspnp/container-apps-fabrikam-dronedelivery) to deploy this scenario.

## Next steps

- [Azure Container Apps Documentation](/azure/container-apps/?branch=release-ignite-container-apps)
Expand Down

0 comments on commit f49a283

Please sign in to comment.