## 2 Literature Review
### Serverless Cloud Computing Platforms
#### 2.2.3 Microsoft Azure Container Apps  
Azure Container Apps is a fully managed environment that enables one to run microservices and containerized applications on a serverless platform [35]. It is a good choice for applications that need to be deployed quickly and easily and that can scale dynamically based on demand. Container Apps can be used to deploy API endpoints, host background processing applications, handle event-driven processing, and run microservices. Applications built on Azure Container Apps can dynamically scale based on HTTP traffic, event-driven processing, or CPU or memory load.  
_Serverless Hosting_: Container Apps provides a serverless architecture that eliminates the need for managing the underlying infrastructure. This translates to a worry-freeexperience for developers as they do not have to be concerned with server provisioning, capacity management, or application scaling. Instead, they can focus solely on developing their applications with ease.  
_Automatic Scaling_: Container Apps provides a solution to the problem of having to constantly monitor and adjust application capacity. With this technology, the applications can be scaled automatically based on various factors, such as CPU usage, memory usage, and network traffic [35]. This ensures that the applications are always accessible to users without any interruptions. The dynamic scaling feature of Azure Container Apps is a great feature for businesses that need to handle varying levels of demand for their applications. By removing the burden of manual capacity provisioning, companies can focus on other aspects of their operations that are critical to success.  
_Security and Privacy_: Container Apps allows customers to configure sensitive values as secrets that can be used for revisions in container apps [35]. A secret can be used from Azure Key Vault in a container app, enabling managed identity for the app and granting it access to the Ky Vault by creating an access policy with permission [36]. Container Apps also provide robust security features like role-based access control and network isolation to keep your apps secure from unauthorized access. They are an excellent choice for maintaining app security.  
_Load Balancing_: Azure Container Apps environment has a Load Balancer that can distribute network traffic to appropriate servers and applications [37]. The load balancer is accessible through an IP address, which serves as an entry point for all incoming internal and external traffic, regardless of which replica handles requests. Standard Load Balancer is part of a private virtual network and built on the Zero-Trust network security model [37].  
_Simple to use_: Container Apps offers a user-friendly experience, featuring a straightforward interface that simplifies the process of deploying and managing one's applications. This makes it an excellent choice for developers who are just starting with containerization. Through the Azure Container Apps portal, one can easily create and manage one's applications. Additionally, users have the option to manage their applications using Azure CLI or Azure PowerShell [35].  
_Cost-effective_: Deploying and scaling applications is made cost-effective with Azure Container Apps. Users only pay for the resources they utilize, with no upfront costs [35; 38]. The pricing for Azure Container Apps is determined by the number of containers run and the amount of memory consumed.  
_Flexible_: Azure Container Apps offers a versatile platform for deploying a diverse range of applications, making it an excellent choice for various use cases. One can deploy web applications, microservices, and serverless functions with ease using Container Apps.