A startup is building a web application that will be used by a small number of users initially but is expected to grow rapidly. The application runs on Linux and uses a PostgreSQL database. The company wants to minimize operational overhead and costs during the early stages. You need to recommend a platform as a service (PaaS) solution for both the application and the database. What should you recommend?
Trap 1: Deploy the application on Azure Kubernetes Service (AKS) and use…
AKS supplies a resilient Kubernetes control plane, but it imposes ongoing cluster lifecycle duties on the development team: managing node pools, patching the OS and kubelet, configuring ingress controllers, monitoring resource quotas, and upgrading Kubernetes versions. Even though Azure Database for PostgreSQL reduces database admin, the containerized app still must be built, configured, and operated as a workload on the cluster, which substantially exceeds the management overhead of a single App Service instance. This trade-off only pays off for larger microservice teams and custom infrastructure requirements, not for a startup's straightforward web application.
Trap 2: Deploy the application as Azure Functions and use Azure Cosmos DB…
Azure Functions is a serverless compute platform optimized for event-driven triggers and transient execution, with a maximum execution timeout and cold-start latency that make it unsuitable for consistent, stateful web request serving to users. Cosmos DB is a NoSQL, multi-model database, not a relational PostgreSQL source, so any existing SQL schema, joins, transactions, or object-relational mapping would require substantial redesign. The combination fails both the compute model and the relational storage expectations of a typical web application.
Trap 3: Deploy the application on Azure Virtual Machines and use PostgreSQL…
Deploying on Azure Virtual Machines creates an IaaS footprint where the startup is solely responsible for patching the guest OS, installing PostgreSQL, managing backups and high availability, storing database files, and handling scaling via VM resizing or replicated endpoints. Additionally, hosting the web app and database on the same VM couples compute and storage on one hardware boundary, creating a single point of failure and making it impossible to independently scale either tier. This operational burden directly contradicts the requirement to minimize management overhead.
- A
Deploy the application on Azure App Service for Linux and use Azure Database for PostgreSQL.
Azure App Service for Linux is an enterprise-grade PaaS that fully manages the application runtime and operating system patching, with built-in load balancing, TLS termination, and autoscaling. Pairing it with Azure Database for PostgreSQL yields a fully managed relational database with automated backups, high availability, and predictable scaling, eliminating both application- and data-tier administrative chores. This combination keeps the startup focused only on business logic and precisely satisfies the requirement to minimize operational overhead.
- B
Deploy the application on Azure Kubernetes Service (AKS) and use Azure Database for PostgreSQL.
Why it fails: AKS supplies a resilient Kubernetes control plane, but it imposes ongoing cluster lifecycle duties on the development team: managing node pools, patching the OS and kubelet, configuring ingress controllers, monitoring resource quotas, and upgrading Kubernetes versions. Even though Azure Database for PostgreSQL reduces database admin, the containerized app still must be built, configured, and operated as a workload on the cluster, which substantially exceeds the management overhead of a single App Service instance. This trade-off only pays off for larger microservice teams and custom infrastructure requirements, not for a startup's straightforward web application.
- C
Deploy the application as Azure Functions and use Azure Cosmos DB for storage.
Why it fails: Azure Functions is a serverless compute platform optimized for event-driven triggers and transient execution, with a maximum execution timeout and cold-start latency that make it unsuitable for consistent, stateful web request serving to users. Cosmos DB is a NoSQL, multi-model database, not a relational PostgreSQL source, so any existing SQL schema, joins, transactions, or object-relational mapping would require substantial redesign. The combination fails both the compute model and the relational storage expectations of a typical web application.
- D
Deploy the application on Azure Virtual Machines and use PostgreSQL on the same VM.
Why it fails: Deploying on Azure Virtual Machines creates an IaaS footprint where the startup is solely responsible for patching the guest OS, installing PostgreSQL, managing backups and high availability, storing database files, and handling scaling via VM resizing or replicated endpoints. Additionally, hosting the web app and database on the same VM couples compute and storage on one hardware boundary, creating a single point of failure and making it impossible to independently scale either tier. This operational burden directly contradicts the requirement to minimize management overhead.