{"id":3539,"date":"2026-10-08T11:48:50","date_gmt":"2026-10-08T11:48:50","guid":{"rendered":"https:\/\/www.examtopics.info\/blog\/microsoft-az-305-choosing-azure-compute-for-enterprise-workloads\/"},"modified":"2026-10-08T11:48:50","modified_gmt":"2026-10-08T11:48:50","slug":"microsoft-az-305-choosing-azure-compute-for-enterprise-workloads","status":"publish","type":"post","link":"https:\/\/www.examtopics.info\/blog\/microsoft-az-305-choosing-azure-compute-for-enterprise-workloads\/","title":{"rendered":"Microsoft AZ-305: Choosing Azure Compute for Enterprise Workloads"},"content":{"rendered":"<h2>Microsoft AZ-305: Choosing Azure Compute for Enterprise Workloads<\/h2>\n<p>Azure has enough compute services that the wrong question can make the design harder than it needs to be. Asking \u201cShould we use Kubernetes?\u201d or \u201cCan this run on virtual machines?\u201d starts with a product. A better architecture starts with workload characteristics: operating-system control, application shape, scaling pattern, deployment model, state, networking, compliance, and the amount of platform management the team is prepared to own.<\/p>\n<p>That decision process sits squarely inside <a href=\"https:\/\/www.examtopics.info\/az-305\">AZ-305<\/a>. Microsoft\u2019s current Azure Architecture Center still frames compute selection as a technology-choice exercise across virtual machines, App Service, Azure Functions, Azure Kubernetes Service, Azure Container Apps, Container Instances, Batch, and other options. The objective is not to find the most advanced platform. It is to choose the least operationally expensive platform that still satisfies the workload\u2019s real constraints.<\/p>\n<h3>Begin with the control boundary<\/h3>\n<p>The first question is how much of the operating environment the application genuinely needs to control. Azure virtual machines provide maximum control over the guest operating system, installed software, agents, drivers, and network behavior. That control is necessary for some legacy products, specialized middleware, or migration scenarios. It also means the team owns patching, hardening, capacity management, and more of the availability design.<\/p>\n<p>Platform services remove parts of that responsibility. App Service abstracts the operating system for web and API workloads. Azure Functions goes further for event-driven execution. Container Apps provides a managed container application environment without requiring teams to administer Kubernetes directly. AKS keeps Kubernetes as the orchestration model while offloading the control plane to Azure, but the workload team still owns substantial cluster and application operations.<\/p>\n<p>This is the practical distinction behind <a href=\"https:\/\/www.examtopics.info\/blog\/virtual-machines-vs-containers-key-differences-you-must-know\/\">virtual machines and containers<\/a>. Packaging an application in a container changes deployment and isolation, but it does not automatically tell you whether you should operate a Kubernetes cluster, use a managed container platform, or stay on VMs.<\/p>\n<p>Migration strategy can influence the first compute choice. A legacy application might move to Azure VMs because that preserves compatibility and shortens migration risk, even if the long-term target is a managed platform. Architecture records should distinguish \u201cmigration landing point\u201d from \u201cstrategic runtime\u201d so that a temporary IaaS decision does not become permanent by default.<\/p>\n<h3>Match the service to the application shape<\/h3>\n<p>A conventional web application with predictable HTTP traffic often fits App Service well because deployment, TLS integration, scaling, and platform maintenance are built into the service. An event-driven function that runs briefly when a message arrives may fit Azure Functions. A containerized API composed of independently deployable services might fit Container Apps or AKS depending on its orchestration requirements.<\/p>\n<p>Batch and high-performance computing workloads have different needs. They may care more about scheduling large pools of compute, specialized hardware, or job throughput than about serving interactive web traffic. A database appliance or vendor product may require VM-level control because the support model assumes a specific operating-system environment.<\/p>\n<p>Do not let a shared programming language hide those differences. Two applications written in .NET can have completely different operational shapes. Compute selection should follow runtime behavior and support requirements, not the development stack alone.<\/p>\n<p>Licensing is another constraint that can favor or eliminate a compute option. Commercial software may be licensed by core, host, or operating-system instance and may not support containers or serverless execution. Verify vendor support before redesigning around a platform model that the software supplier will not certify.<\/p>\n<h3>Use managed platforms when their constraints are acceptable<\/h3>\n<p>Every layer Azure manages is a layer the workload team does not have to patch, monitor, or recover manually. That is a strong reason to prefer managed services when they meet the workload. Platform abstraction can reduce toil, standardize deployment, and narrow the number of configuration decisions that can drift over time.<\/p>\n<p>The tradeoff is constraint. App Service has a defined hosting model. Functions has execution and scaling characteristics that differ from a long-running service. Container Apps abstracts cluster infrastructure, which is helpful until the workload needs a Kubernetes-specific capability the platform does not expose. Architecture should therefore evaluate whether a managed service\u2019s boundaries are compatible with the application before treating abstraction as an unconditional benefit.<\/p>\n<p>The cloud advantage is not simply moving servers to someone else\u2019s datacenter. The broader <a href=\"https:\/\/www.examtopics.info\/blog\/the-cloud-computing-revolution-and-microsoft-azure\/\">Azure cloud model<\/a> becomes more valuable when teams use managed capabilities deliberately and reduce undifferentiated infrastructure work.<\/p>\n<p>Team capability is part of the decision. A platform that requires specialized skills creates incident-response and upgrade obligations even when the application is simple. If only one engineer can operate the chosen runtime, the compute architecture has an availability risk that will never appear in an Azure SLA. Prefer platforms that match the organization\u2019s operating maturity or fund the capability required to run them.<\/p>\n<h3>Choose AKS only when Kubernetes requirements justify it<\/h3>\n<p>AKS is appropriate when the application or operating model genuinely needs Kubernetes: rich scheduling, Kubernetes-native tooling, cluster-level extensibility, sophisticated service meshes, custom controllers, portability requirements, or a platform engineering model built around Kubernetes APIs. Those capabilities can be powerful at enterprise scale.<\/p>\n<p>They also create operational responsibility. Teams still need to design node pools, upgrade strategy, networking, ingress, identity, observability, workload security, autoscaling, policy, and cost management. Using AKS for a small set of straightforward stateless APIs can create more platform than the application needs.<\/p>\n<p>Container Apps should be considered when the team wants container portability, revisions, scaling, and microservice patterns without managing a general-purpose Kubernetes environment. Understanding <a href=\"https:\/\/www.examtopics.info\/blog\/pods-vs-containers-key-concepts-differences-and-use-cases-simplified\/\">pods and containers<\/a> helps clarify why a container image is only the packaging unit; the orchestration layer is a separate design decision.<\/p>\n<p>Container orchestration also affects release design. AKS and Container Apps both support progressive deployment patterns, but the tools and operational controls differ. If the organization already has Kubernetes policy, observability, service-mesh, and GitOps standards, AKS may integrate naturally. If not, managed revisions and environment-level controls can make Container Apps easier to govern.<\/p>\n<h3>Serverless works best when execution is naturally event-driven<\/h3>\n<p>Azure Functions is a strong fit when work starts from events such as messages, timers, HTTP requests, storage changes, or event streams and when each unit of work can be executed independently. Consumption-oriented scaling can align cost closely with activity, and the platform can handle rapid changes in demand without a permanently provisioned server fleet.<\/p>\n<p>Serverless can be a poor fit for workloads that need long-lived processes, tight control over local state, unusual networking requirements, or predictable always-on compute where another pricing model is simpler. The architecture should also consider cold-start sensitivity, concurrency, downstream throttling, and whether burst scaling could overload a database or external dependency.<\/p>\n<p>The right pattern often combines services. Functions can process asynchronous events while a web application runs on App Service and a specialized worker runs in a container. Enterprise architecture does not require every component to share the same compute platform.<\/p>\n<p>Serverless cost models deserve explicit testing. Consumption pricing can be excellent for intermittent workloads but less attractive for continuously busy processes. Premium or dedicated plans can change the economics and remove some cold-start concerns. Model expected execution duration, concurrency, memory, and network dependencies rather than assuming \u201cserverless\u201d automatically means cheaper.<\/p>\n<h3>Availability and scaling should influence compute choice early<\/h3>\n<p>Compute is inseparable from availability design. VMs might require availability zones, scale sets, load balancers, patch orchestration, and explicit health management. Managed platforms often provide built-in redundancy features, but architects still need to understand how instances are distributed, how scaling works, and what happens during a regional fault.<\/p>\n<p>Autoscaling is useful only when the application can scale horizontally and its downstream systems can keep up. A stateless API can often add instances easily. A stateful legacy application with local session data may require architecture changes before adding more servers is safe. Moving to a scalable platform without fixing state management simply relocates the bottleneck.<\/p>\n<p>For operations teams, the concepts in <a href=\"https:\/\/www.examtopics.info\/az-104\">AZ-104<\/a> remain relevant because scaling and availability depend on deployable resources, monitoring, networking, identity, and governance. The architect\u2019s service choice must be supportable by the administrators who will run it.<\/p>\n<p>Scaling should also be tested against quota and startup time. Adding VM instances, pods, function workers, or container replicas is not instantaneous, and service quotas can cap growth. Critical workloads should know the maximum practical scale in each region and how long it takes to reach it. That information belongs in capacity planning and recovery design.<\/p>\n<h3>Networking and security can eliminate otherwise attractive options<\/h3>\n<p>Enterprise workloads often have private dependencies, inbound inspection requirements, outbound filtering, hybrid connectivity, or strict identity boundaries. Those constraints should be tested against each compute platform before the final choice is made. A service that is ideal from a development perspective may be difficult to integrate into the required private network path.<\/p>\n<p>Check virtual network integration, private endpoint support, inbound exposure, egress control, DNS behavior, managed identity support, certificate handling, and the ability to enforce organizational policy. Also consider how the service fits centralized logging and security monitoring. Compute is not an island; it sits inside the network and identity architecture.<\/p>\n<p>When the security model requires host-level agents or kernel-level controls, a managed platform might not expose the necessary surface. That can justify VMs even when they create more operational work. The correct design accepts that tradeoff explicitly instead of forcing a platform service that cannot meet the control requirement.<\/p>\n<p>Observability differs by platform. VMs expose operating-system telemetry and require agents or platform diagnostics. Managed services expose application and platform metrics with less host visibility. Kubernetes introduces cluster, node, pod, and application layers. Choose a runtime whose observability model can support the organization\u2019s incident-response practices without creating blind spots.<\/p>\n<h3>Portability has value, but it also has a price<\/h3>\n<p>Organizations sometimes select containers or Kubernetes primarily to avoid platform lock-in. Portability can be valuable, especially when there is a real requirement to run the same workload across environments. However, maximizing portability can prevent the application from using managed Azure services that would otherwise reduce cost and complexity.<\/p>\n<p>Decide what actually needs to be portable. The application package might need to run in multiple clouds, while identity, messaging, monitoring, or database services can remain platform-specific. Alternatively, the business might have no realistic exit requirement and can benefit from deeper Azure integration. Architecture should optimize for probable business scenarios, not hypothetical purity.<\/p>\n<p><a href=\"https:\/\/www.examtopics.info\/blog\/virtualization-basics-hypervisors-vs-virtual-machines-compared\/\">Virtualization fundamentals<\/a> are still useful here: abstraction always shifts a boundary rather than eliminating infrastructure. Containers, serverless, and managed platforms each move different responsibilities from the workload team to the provider.<\/p>\n<p>Service limits should be part of the record. Each compute platform has quotas, scaling boundaries, regional availability, networking limits, and deployment constraints that can matter at enterprise scale. A design that works at 20 instances might fail at 2,000 if limits were never checked. Capacity planning should include the path for quota increases and regional alternatives.<\/p>\n<p>Finally, account for recovery. VMs might be restored from images or replicated with Site Recovery, while managed platforms are usually recreated from configuration and code. The compute choice should align with the organization\u2019s disaster-recovery automation so the application can be rebuilt predictably in another zone or region.<\/p>\n<h3>Use a decision record instead of a product preference<\/h3>\n<p>A durable compute choice should be explainable months later. Record the workload requirements, candidate services, disqualifying constraints, major tradeoffs, scaling assumptions, availability model, and operating responsibilities. This turns \u201cwe chose AKS\u201d into an architecture decision with a reason and gives future teams a way to know when the decision should be revisited.<\/p>\n<p>Re-evaluate when the application changes. A lift-and-shift VM workload may become a candidate for App Service after modernization. A small container application may outgrow Container Apps if it develops sophisticated cluster requirements. A Kubernetes platform may be simplified if teams no longer need its extensibility. Compute architecture is not a permanent badge.<\/p>\n<p>The best Azure compute service is the one whose management boundary matches the workload. Start with control, application shape, scaling, availability, networking, security, and team capability. Then choose the service that satisfies those requirements with the least unnecessary operational burden. That approach produces architecture that is easier to run, easier to justify, and less likely to become a platform project disconnected from the application it was meant to support.<\/p>\n<p>Architectural consistency is useful, but forced standardization can be expensive. An enterprise may approve a small set of preferred compute patterns\u2014such as App Service for web applications, Container Apps for simple containerized services, AKS for Kubernetes-native platforms, and VMs for compatibility workloads\u2014while still allowing exceptions through design review. A portfolio approach reduces sprawl without pretending that every application has the same requirements.<\/p>\n<p>Performance testing should be platform-specific. A VM benchmark may emphasize CPU and disk, while App Service or Functions may be constrained by plan limits, concurrency, or downstream connections. AKS testing should include pod scheduling, node scaling, and disruption. Comparing services with one generic benchmark can lead to a technically impressive but operationally wrong choice.<\/p>\n<p>Security patching responsibility is another differentiator. With VMs, the team owns the guest operating system. Managed application platforms reduce that burden, while containers still require base-image and dependency maintenance even if Azure manages the host. Compute selection should make those ownership boundaries explicit in the support model.<\/p>\n<p>Compute standardization should include an escape hatch for unusual workloads. A preferred platform list is valuable because it concentrates skills and automation, but forcing every workload onto the same runtime can create unsupported or fragile designs. Define the evidence required for an exception and review it periodically so exceptions remain justified rather than becoming permanent one-off platforms.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Microsoft AZ-305: Choosing Azure Compute for Enterprise Workloads Azure has enough compute services that the wrong question can make the design harder than it needs to be. Asking \u201cShould we use Kubernetes?\u201d or \u201cCan this run on virtual machines?\u201d starts with a product. A better architecture starts with workload characteristics: operating-system control, application shape, scaling [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,1],"tags":[],"class_list":["post-3539","post","type-post","status-publish","format-standard","hentry","category-cloud-computing","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.examtopics.info\/blog\/wp-json\/wp\/v2\/posts\/3539","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.examtopics.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.examtopics.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.examtopics.info\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.examtopics.info\/blog\/wp-json\/wp\/v2\/comments?post=3539"}],"version-history":[{"count":0,"href":"https:\/\/www.examtopics.info\/blog\/wp-json\/wp\/v2\/posts\/3539\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.examtopics.info\/blog\/wp-json\/wp\/v2\/media?parent=3539"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.examtopics.info\/blog\/wp-json\/wp\/v2\/categories?post=3539"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.examtopics.info\/blog\/wp-json\/wp\/v2\/tags?post=3539"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}