Deploy Your First Azure Web App
Deploy a live web app on Azure App Service and explore core AZ-900 concepts.
Introduction
30 Second Summary
Every website you visit lives on a server somewhere in the world. Cloud platforms like Azure let you deploy your own apps to the internet in minutes, without owning or managing any physical hardware.
In this project, you will deploy a live web application to Azure and explore the portal tools covered on the AZ-900 certification exam. You will walk away with a real URL serving your app and hands-on experience with Azure's governance and monitoring features.
What You'll Build
You will deploy a sample web application to Azure App Service, then apply cloud governance and monitoring best practices using Azure's built-in portal tools.
By the end of this project, you'll have:
- A live web app running on Azure App Service's Free tier that you can visit from any browser.
- A properly governed resource group with descriptive tags and a resource lock preventing accidental deletion.
- Hands-on experience navigating Azure Monitor metrics, Cost Management, and Azure Advisor.
- Secret Mission: Configure a custom Azure Monitor alert rule that notifies you when your app's response time spikes.
Are there any prerequisites?
You need a Microsoft account (Outlook, Hotmail, or any personal Microsoft account) and a credit or debit card for identity verification when creating your Azure free account. Your card will not be charged.
No coding experience or software installation is required. Everything happens in your web browser through the Azure Portal.
Set Up Your Azure Free Account
Every cloud project starts with access to a cloud platform. Before you can deploy anything on Azure, you need an account that gives you access to the Azure Portal and its services.
In this step, you will create your Azure free account, get familiar with the portal's navigation, and explore the resource hierarchy that organizes everything in Azure.
In this step, get ready to:
- Create your Azure free account with $200 in credit.
- Tour the Azure Portal and identify key navigation elements.
- Explore the Azure resource hierarchy.
Create your Azure free account
Azure offers a free account that includes $200 in credit valid for 30 days, plus 12 months of free services. The signup process requires identity verification, but your card will not be charged.
- Open your web browser and navigate to the Azure free account page:
- https://azure.microsoft.com/en-us/pricing/purchase-options/azure-account
- Click Try Azure for free.
- Sign in with your Microsoft account.
- Complete the About you section with your name, address, and phone number.
- Verify your identity by phone. You will receive a verification code via text message or phone call.
- Enter your credit or debit card details for identity verification. Your card will not be charged.
- Accept the agreement and click Sign up.
Will I be charged?
No. The card is used for identity verification only. You receive $200 in credit to use within 30 days, plus access to 65+ always-free services. Azure will not charge your card unless you explicitly upgrade to a paid plan after the trial ends.
Card declined during signup?
Prepaid and virtual cards are not accepted for Azure subscriptions. Make sure your card details (name, address, CVV) match exactly what your bank has on file.
If the progress bar hangs during card verification, enable third-party cookies in your browser and try again. You can also try an InPrivate or Incognito window.
help me troubleshoot my Azure free account signup
After a few moments, Azure will finish creating your account and redirect you to the Azure Portal.
Tour the Azure Portal
The Azure Portal is the web-based console where you manage all of your cloud resources. Knowing where the key controls live will save you time throughout this project.
- Confirm you are on the Azure Portal homepage at https://portal.azure.com.
- Look at the top of the page. Identify the search bar in the page header. This is your fastest way to find any resource or service.
- On the far left, find the portal menu icon (three horizontal lines). Clicking it opens navigation to all Azure services.
- In the top-right header, locate the global controls. These include Cloud Shell (terminal icon), Notifications (bell icon), Settings (gear icon), and Support + Troubleshooting.
What is Cloud Shell?
Cloud Shell is a browser-based terminal built into the Azure Portal. It lets you run Azure CLI or PowerShell commands without installing anything on your computer. You will not use it in this project, but it is good to know where it lives.
Explore the Azure resource hierarchy
Azure organizes everything into a hierarchy. Understanding this structure is essential for the AZ-900 exam and for managing real-world cloud projects.
- Click the search bar at the top of the portal.
- Type Management groups and select it from the results.
- Look at the page that opens. Management groups are the top level of Azure's hierarchy. They contain subscriptions.
- Return to the search bar and type Subscriptions. Select it from the results.
- You should see your free account subscription listed here. Subscriptions contain resource groups.
- Return to the search bar and type Resource groups. Select it from the results.
- This page will be empty for now. You will create your first resource group in the next step.
What is the Azure resource hierarchy?
Azure organizes resources into four levels, from broadest to most specific: management groups, subscriptions, resource groups, and resources.
Think of it like a filing cabinet. Management groups are the cabinet. Subscriptions are the drawers. Resource groups are the folders inside each drawer. Resources (like web apps or databases) are the individual documents inside each folder.
Your Azure account is ready and you know your way around the portal. Next up, you will create a resource group and deploy your first web app.
Create a Resource Group and Deploy Your Web App
Your Azure account is set up and you know your way around the portal. Now it is time to create your first cloud resources.
Every Azure deployment starts with a resource group. A resource group is a container that holds related resources so you can manage them as a single unit. In this step, you will create a resource group and then deploy a web app inside it using Azure App Service.
In this step, get ready to:
- Create a resource group to organize your project resources.
- Deploy a web app using Azure App Service on the Free tier.
- Verify your live app is accessible in the browser.
Create a resource group
A resource group is a logical container that holds all the Azure resources for a project. When you delete a resource group, everything inside it gets deleted too.
- In the Azure Portal search bar at the top, type Resource groups and select it from the results.
- Click + Create.
- In the Subscription dropdown, select your free subscription.
- In the Resource group field, enter az900-lab-rg.
- In the Region dropdown, select East US.
- Click Review + create.
- Click Create.
What is a resource group?
Think of a resource group like a folder on your computer. It keeps related items together so you can find, manage, and delete them as one unit.
In Azure's hierarchy, management groups contain subscriptions, subscriptions contain resource groups, and resource groups contain resources. Your web app, its hosting plan, and any future additions will all live inside az900-lab-rg.
Don't see your subscription in the dropdown?
Make sure you completed the Azure free account setup in the previous step. If you only see a grayed-out subscription, try refreshing the portal page.
help me find my Azure subscription
Create an App Service web app
Azure App Service is a PaaS (Platform as a Service) offering. You provide your code, and Azure handles the servers, networking, and scaling.
- In the portal search bar, type App Services and select it from the results.
- Click + Create and select Web App.
- In the Subscription dropdown, select your free subscription.
- In the Resource Group dropdown, select az900-lab-rg.
- In the Name field, enter a globally unique name like az900-yourname-app.
- Set Publish to Code.
- Set Runtime stack to Node 20 LTS.
- Set Operating System to Linux.
- Set Region to East US (same as your resource group).
- Under Pricing plan, select Free F1.
- Click Review + create.
- Click Create.
Why the Free F1 tier?
The F1 plan gives you shared compute with 60 CPU minutes per day, 1 GB RAM, and 1 GB storage at $0 per month. It is designed for development and testing purposes.
For this project, F1 is more than enough. You get a fully functional web app with zero charges.
What is PaaS?
PaaS (Platform as a Service) means Azure manages the infrastructure: servers, operating system patches, networking, and scaling. You only manage your application code.
This is different from IaaS (Infrastructure as a Service), where you manage the virtual machine yourself. App Service is one of the most common PaaS examples on the AZ-900 exam.
Don't see the Free F1 option?
Make sure you are looking under the pricing plan section on the Basics tab. You may need to click Explore pricing plans to see all available tiers including Free F1.
help me find the Free F1 pricing tier in Azure App Service
Verify your deployment
Deployment typically takes 1-2 minutes. Once it completes, you can visit your live web app.
- Once the deployment completes, click Go to resource.
- On the Overview page, find the Default domain URL.
- Click the URL to open your live web app in a new tab.
You should see a default Azure placeholder page with the heading "Hey, Node developers!" and the message "Your app service is up and running." This confirms your App Service is deployed and serving traffic.
What is the Default domain?
Every App Service web app gets a free URL in the format {appname}.azurewebsites.net. This is your app's public address on the internet.
Later you could attach a custom domain, but for this lab the default domain is all you need.
Seeing a 404 or error page instead?
Wait another minute and refresh. Azure sometimes takes a moment to finish provisioning behind the scenes even after the portal shows "deployment complete."
If the error persists, go back to the resource group az900-lab-rg and confirm the App Service and App Service plan both appear as resources inside it.
help me troubleshoot my Azure App Service deployment
Your web app is live on the internet. Next up, you will apply governance controls like tags and resource locks to protect and organize your resources.
Apply Governance with Tags and Resource Locks
Your web app is live and serving traffic. Now it's time to add governance controls that protect your resources and keep them organized.
Azure provides two key governance tools for this. Tags let you categorize resources with metadata for cost tracking and compliance. Resource locks prevent accidental deletion or modification.
In this step, get ready to:
- Add descriptive tags to your resource group.
- Apply a Delete lock to prevent accidental removal.
- Test the lock to confirm it blocks deletion.
Add tags to your resource group
Tags are key-value pairs that add metadata to your Azure resources. Organizations use them to track which environment a resource belongs to, who owns it, and how to allocate its costs.
- In the portal search bar, type Resource groups and select it.
- Click az900-lab-rg to open your resource group.
- In the left menu, select Tags.
- In the first row, enter environment in the Name field and learning in the Value field.
- Click the next empty row and enter exam in the Name field and az900 in the Value field.
- Click Apply.
What do tags do?
Tags help you organize resources for cost tracking, automation, and compliance. For example, tagging resources with environment=learning makes it easy to filter all your lab resources separately from production workloads.
Tags applied to a resource group are not automatically inherited by the resources inside it. Each resource must be tagged individually if needed.
You should now see both tags listed on the Tags page for your resource group.
Don't see your tags?
Make sure you clicked Apply after entering both tags. If you navigated away before applying, return to Tags in the left menu and re-enter them.
Help me troubleshoot my tags
Apply a resource lock
Resource locks prevent anyone from accidentally deleting or modifying critical resources. A Delete lock allows reading and editing but blocks deletion entirely.
- In the left menu of your resource group, select Locks.
- Click + Add.
- Enter prevent-delete in the Lock name field.
- Select Delete as the Lock type.
- Enter Prevent accidental deletion during AZ-900 lab. in the Notes field.
- Click OK.
What is a Delete lock?
A Delete lock lets authorized users read and modify the resource, but prevents anyone from deleting it. This lock overrides user permissions. Even an Owner-level account cannot delete the resource until the lock is removed.
Resource locks are a key governance tool tested on the AZ-900 exam under the management and governance domain.
You should see the prevent-delete lock listed on the Locks page with the Delete type.
Test the lock
The best way to confirm your governance controls are working is to test them. You will attempt to delete the resource group and verify that the lock blocks the operation.
- In the left menu, select Overview to return to the resource group's main page.
- Click Delete resource group at the top of the page.
- Type az900-lab-rg in the confirmation field.
- Click Delete.
You should see an error notification indicating the resource group cannot be deleted because of the lock. This confirms your governance control is working.
Why did the deletion fail?
When a Delete lock exists on a resource group, Azure blocks the entire delete operation. Even if other resources inside the group are unlocked, the deletion does not proceed. You must remove the lock first before the resource group can be deleted.
Deletion succeeded instead of failing?
If the resource group was deleted without an error, the lock was not applied correctly. Go back to Step 2's resource group creation instructions and recreate az900-lab-rg. Then repeat the tagging and lock steps above.
Help me fix my resource lock
Your resource group is now organized with tags and protected by a lock. Next up, you will explore Azure Monitor and Cost Management to observe your app's behavior and verify $0 spending.
Explore Monitoring and Cost Management
Your web app is live and locked down with governance controls. Now it is time to see what is actually happening inside your application.
Azure provides a suite of monitoring and cost management tools that let you observe performance, track spending, and receive optimization recommendations. In this step, you will explore three key tools that map directly to the AZ-900 exam's management and governance domain.
In this step, get ready to:
- View Azure Monitor metrics for your web app.
- Explore Cost Management to confirm $0 spending.
- Review Azure Advisor recommendations across five categories.
View Azure Monitor metrics
Every Azure resource automatically emits performance data. Azure Monitor collects this data and lets you visualize it as charts directly in the portal.
- Return to your App Service web app in the Azure portal. You can find it by typing your app name in the portal search bar at the top.
- In the left menu, under Monitoring, select Metrics.
- In the Metric dropdown, select Requests.
- Set the time range to Last hour using the time picker in the top-right area of the chart.
Now generate some traffic so you can see data appear in the chart.
- Open a new browser tab and visit your app's URL (the Default domain from your app's Overview page). Refresh the page 3-4 times.
- Switch back to the Metrics tab and click the refresh icon at the top of the chart.
- You should see your requests reflected as data points on the chart.
What is Azure Monitor?
Azure Monitor is Azure's built-in observability platform. It automatically collects metrics from every resource you create, with no extra setup needed.
For App Service, available metrics include Requests, Response Time, CPU Time, Memory Working Set, and HTTP error counts. On the AZ-900 exam, Azure Monitor falls under the "monitoring tools in Azure" objective.
Try another metric
Select Http 2xx from the Metric dropdown to see only successful responses. You can add multiple metrics to the same chart by clicking Add metric.
Explore Cost Management
Knowing what your cloud resources cost is critical for any Azure administrator. Cost Management gives you visibility into current and projected spending across all your Azure resources.
- In the portal search bar at the top, type Cost Management and select it from the results.
- Select Cost analysis from the left menu.
- You should see your current spend at $0. This confirms the F1 Free tier is not incurring charges.
- Explore the Accumulated costs view. This shows spending over time as a line chart.
- Switch to Cost by resource to see a breakdown of what each individual service costs. Your App Service will show $0.
Why does Cost Management matter for AZ-900?
The AZ-900 exam tests your understanding of cost management capabilities, factors that affect costs, and the purpose of tags for cost tracking. Seeing $0 here proves that the F1 Free tier truly costs nothing.
In a real production environment, Cost Management helps teams set budgets, spot anomalies, and forecast future spending before bills surprise anyone.
Review Azure Advisor
Azure Advisor is a personalized recommendation engine that analyzes your deployed resources and suggests improvements. It covers five categories that align with the Azure Well-Architected Framework.
- In the portal search bar, type Advisor and select it from the results.
- The Advisor Overview page displays tiles for each recommendation category.
- Click through each of the five category tiles to review any available recommendations: Reliability, Security, Performance, Operational Excellence, and Cost.
- For any recommendation that appears, click on it to read the description and impacted resources.
What does Azure Advisor do?
Advisor scans your resources and compares their configuration to Azure best practices. It then surfaces actionable recommendations you can apply, postpone, or dismiss.
On the AZ-900 exam, Advisor is listed alongside Azure Service Health and Azure Monitor as one of the key monitoring tools in Azure. Knowing that Advisor provides personalized recommendations across five categories is a testable fact.
New accounts may show few recommendations
If you see zero recommendations, that is normal for a brand-new account with a single free-tier resource. Advisor needs deployed resources with usage history to generate meaningful suggestions.
You have now explored all three monitoring and management tools tested on the AZ-900 exam. Next up, you will clean up your resources and remove the governance controls so your Azure account stays tidy.
Secret mission
Configure an Azure Monitor Alert
Ready to take your monitoring skills further? In this bonus challenge, you will configure a custom Azure Monitor alert rule that watches your web app's response time and sends you an email notification when it crosses a threshold. This is a key AZ-900 exam topic and a real-world skill for managing production applications.
Clean Up Your Resources
Clean Up Your Resources
Decide whether to keep your resources running, pause them to come back later, or delete them entirely. This project uses the App Service F1 Free tier, so there are no ongoing costs while your resources exist.
Resources you used:
- Resource group az900-lab-rg (contains all your Azure resources).
- App Service web app az900-yourname-app (deployed on F1 Free tier).
- Azure Monitor alert rule high-response-time-alert and action group az900-alert-group.
- Resource lock prevent-delete on the resource group.
Keep everything running
No action needed. Choose this if you are still actively exploring Azure or want to revisit the portal later.
- Your App Service web app stays live at its default domain URL.
- The F1 Free tier incurs no charges, so there is no financial impact.
- Your resource lock remains active, protecting against accidental deletion.
- Your Azure free account's $200 credit expires after 30 days. After expiration, always-free services (including the F1 tier) continue working without charge.
Pause - I'll come back to this later
Stop your web app so it is no longer serving traffic. Your configuration and code remain intact for when you return.
- In the portal search bar, type "App Services" and select it.
- Select your web app (az900-yourname-app).
- Click Stop in the top toolbar of the Overview page.
- Confirm by clicking Yes when prompted.
- The Status field changes to "Stopped." Your app is no longer accessible at its URL, but all settings, tags, locks, and alert rules remain in place.
Delete - I don't want to use this again
Remove all project resources from your Azure account. Deleting the resource group removes everything inside it in one action.
- In the portal search bar, type "Resource groups" and select it.
- Select az900-lab-rg.
- In the left menu, select Locks.
- Select the prevent-delete lock and click Delete. Confirm the deletion.
- Navigate back to the resource group Overview page.
- Click Delete resource group.
- Type the resource group name az900-lab-rg to confirm, then click Delete.
- After a minute, navigate to Resource groups in the portal. Confirm az900-lab-rg no longer appears in the list.
What gets deleted?
Deleting the resource group removes everything inside it: the App Service web app, the App Service plan, the alert rule, and the action group. This is why Azure recommends grouping related resources together.
Nice Work!
Nice Work!
You just deployed a live web application on Azure and explored the full stack of portal workflows covered on the AZ-900 exam.
Here's what you accomplished:
- Deployed a publicly accessible web app using Azure App Service (PaaS) on the F1 Free tier, proving you can navigate Azure's architecture and services.
- Applied governance controls including resource tags for organization and resource locks for protection, within the Azure resource hierarchy of management groups, subscriptions, resource groups, and resources.
- Monitored your application with Azure Monitor metrics, verified $0 spending in Cost Management, and reviewed personalized recommendations in Azure Advisor.
- Secret Mission: Configured a custom Azure Monitor alert rule with an action group and email notifications to detect high response times.
Ready to quiz yourself?