This article’s intention is to explain the main skills measured in this sub-topic of the AZ-204 Certification. The main topic here is Azure Web Apps and we are going through creating, deploying, logging, auto-scaling, and configuring Azure Web Apps. Those techniques will have their fundamentals explained here, alongside a practical example.
This certification is very extensive and this article approaches only the main topics, make sure you know those components deeply before taking the exam. Another great tip is doing exam simulators before the official exam in order to validate your knowledge.
What is the Certification AZ-204 – Developing Solutions for Microsoft Azure?
The AZ-204 – Developing Solutions for Microsoft Azure certification measures designing, building, testing, and maintaining skills of an application and/or service in Microsoft Azure Cloud environment. It approaches, among others, the following components:
- Azure Virtual Machines
- Azure Containers
- Service Web App
- Azure Functions
- Cosmos DB
- Azure Storage
- Azure AD
- Azure Key Vault
- Azure Managed Identities
- Azure Redis Cache
- Azure Logic App
- Azure Event Grid
- Azure Event Hub
- Azure Notification Hub
- Azure Service Bus
- Azure Queue Storage
Any IT professional willing to improve his knowledge in Microsoft Azure is encouraged to take this certification, it is a great way to measure your skills within trending technologies. But, some groups of professionals are keener to take maximum advantage of it:
- Azure Developers, with at least 1 year of experience with Microsoft Azure;
- Experienced Software Developers, looking for an Architect position in a hybrid environment;
- Software Developers, working to move applications to the cloud environment.
According to today’s date, the skills that are measured in the exam are split as follows:
- Develop Azure compute solutions (25-30%)
- Develop for Azure storage (10-15%)
- Develop solutions that use Cosmos DB storage
- Develop solutions that use blob storage
- Implement Azure security (15-20%)
- Implement user authentication and authorization
- Implement secure cloud solutions
- Monitor, troubleshoot, and optimize Azure solutions (10-15%)
- Integrate caching and content delivery within solutions
- Instrument solutions to support monitoring and logging
- Connect to and consume Azure services and third-party services (25- 30%)
- Develop an App Service Logic App
- Implement API Management
- Develop event-based solutions
- Develop message-based solutions
Benefits of Getting Certified
The main benefit here is having a worldwide recognized certification that proves that you have knowledge of this topic. Among intrinsic and extrinsic benefits, we have:
- Higher growth potential, as certifications are a big plus;
- Discounts and deals in Microsoft products and partners, like PluralSight and UpWork;
- MCP Newsletters, with trending technologies;
- Higher exposure on LinkedIn, as recruiters usually search for specific certifications;
- Higher salary, you will be more valuable to your company;
- Unique happiness when getting the result and you were approved, knowing that all your efforts were worth it;
Main skills Measured by this Topic
What is an Azure Web App?
An Azure Web App is an Azure Service focused on Web Applications, you may deploy your Web Applications and Rest APIs in .NET, .NET Core, Java, Ruby, Node.js, PHP, or Python in a Windows or Linux environment paying only for the used resources. Azure Web Apps are great if you do not mind about the website infrastructure and your only concern is to have your Web App running online because Azure offers your many built-in infrastructure features as:
- Load Balancing
- Automated Management
- Easy and fast integration with Azure DevOps
SKUs and Sizes
Azure App Service offers different types of Skus in order to attend different types of needs. It has since free shared SKUs to Isolated Service Plans, where you have a range of different sizes. You may check the list of available combinations of Skus and Sizes below, according to the Virtual Machine operational system that hosts your Azure App Service.
Azure App Service hosts applications running in the main technology stack, like .NET, .NET Core, Java, Ruby, Node.js, PHP, or Python
Why diagnostics logging?
Diagnostics logging is a vital part of any Web Application operation, with logs you may troubleshoot exceptions, non-exception errors, alerts, warnings, and also, track the user experience in order to improve it.
With Azure Diagnostics Logging you may log:
- Application events generated by your app;
- Web Server logging, with a raw version of requests made to your app. Only available for the Windows platform.
- Detailed Error Pages, saving copies of the error pages presented to your user. Only available for the Windows platform.
- Failed request tracing, with detailed information regarding failed requests. Only available for the Windows platform.
- Deployment logging, logging detailed information about the deployment process in order to troubleshoot when a deployment fails.
What is AutoScale?
Autoscaling is the process of adjusting a server infrastructure capability in order to fulfill incoming requests from your web application. It usually takes seconds for the changes to take effect, and can be done automatically according to pre-configured metrics. It does not need any new deploy or coding.
There are 2 options for scaling an app:
- Horizontal: when you add/remove web servers from your load balancer. Example: increasing from 1 Virtual Machine to 3 Virtual Machines during peak hours.
- Vertical: adding/removing resources from your web servers, such as CPU, memory, or storage. Example: increase your storage capacity in order to store more logs.
Configuring Azure Web App Settings
Your Azure Web Apps settings can be easily configured through Azure CLI or Azure Portal, with the possibility to edit in bulk through the Azure Portal. The main settings that may be configured for your Azure Web App are the following:
- SSL, to have a secure and encrypted communication channel
- API Settings, like technology stack or platform settings
- APP Settings, to override your configs stored on the Web.Config
- Connection Strings, in order to do not have it written on the Web.Config
- Default Documents, displaying default web pages when accessing the root of your Website URL
- Path Mappings, configuring settings according to the user OS
Creating an Azure App Service Web App
Though Visual Studio
Right Click on the Web Project and click on Publish. Then, select Azure and click Next.
Select App Service. Here we are going to use the Azure App Service ( Windows ).
Create a new Azure App Service
Select your App Service Name, Subscription, Resource Group, and Hosting Plan. You can also create a new Resource Group or Hosting Plan to host your Azure App Service.
After Azure validates your input data, select the recently created Azure App Service, and click finish. A new publish profile will be visible and your Azure Web App is already created.
Through Azure Portal
Select the Web App Resource
Select your Web App Settings like Name, Resource Group, Runtime Stack, Operating System, Region, and App Service Plan. You can also configure Application Insights and tags here and then click on Review + create.
After Azure runs its validation, click on Create. After a successful deployment, go to your recently created resource.
If you check on your App Service URL, you can see that it is already online with Azure Default Empty Template.
Enabling diagnostics logging
Go to your App Service and then, under Monitoring, select App Service logs.
Log files location
- Linux/container apps: https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
- Windows apps: https://<app-name>.scm.azurewebsites.net/api/dump
Example for Windows apps,
You may log your files to a Filesystem or to a Blob. For storing Application logs in blobs, you need to select an Azure Storage Account.
You have to select the level of logs to be stored and for Application Logging using Blob, you also have to set retention days to purge old files in order to clean space.
Web Server logging
Log into Azure Storage. You need to configure your Azure Storage account that will store the logs alongside the logs retention period.
Log into the File System. You have to select the quota limit of logs to be stored and also the retention period.
Detailed Error Logs
It is enabled here but you need to configure the logs in your code.
Failed Request Traces
Very simple to be enabled
Go to your App Service and then, under Monitoring, select Log Stream. You may select to see Application logs or Web Server Logs
Deploying code to a web app
Through Visual Studio
Right-click on the Web App Project and click on publish, you will be redirected to your Publish Profile. Validate your settings and click on Publish.
After deploy success, you will be redirected to your new Azure App Service.
Configuring web app settings including SSL, API, and connection strings
Configuring your API and APP Settings and your Connection Strings and Application Maps
Go to your App Service and then to Configuration
Application Settings, grouped by Key-Value pairs.
Connection Strings, with name, value, and database type.
General Settings, like technology stack, platform settings, remote debugging, and client certificates.
Default Documents, to be displayed in the root of your Website URL
Path Mappings, to configure your handler mappings and virtual applications/directories.
Go to your App Service and then TSL/SSL settings.
Here you can configure your Web App bindings, import your existing certificates, or buy a new certificate.
Azure App Service Scaling
In all sub-topics, here we are going to be talking about horizontal scaling, which means that we are going to upgrade the number of instances that host our Web App.
- For horizontal scaling, or scaling out, go to your App Service and under Settings select Scale-out
- For vertical scaling, or scaling up, go to your App Service and under Settings select Scale-up
Change the number of instances and click on save.
By Scheduled periodicity, operational and system metrics. Select Scale based on a metric.
Have the minimum, maximum, and default amount of instances to be running according to your rules. According to your scaling rules your number of running instances is going to float from maximum to minimum, staying in the default if no rule is triggered.
You may schedule your rule to be executed in a specific range of dates or to be repeated every week on specific weekdays. You can also configure the timezone and range of time where your scaling rules will be applied.
Here we define the criteria that have to be met in order to take any scaling action:
- Time Aggregation defines the range of time that will be used in order to aggregate the metrics. For example, Time Aggregation = “Average” should aggregate the sampled metrics by taking the average.
- Metric Name defines the name of the metric used to evaluate these criteria.
- Time Grain Statistics defines the metric sampling type.
- The operator defines the comparison operator.
- The threshold defines the target value to trigger this scaling criterion.
- Duration defines the amount of time the scale criteria will look back.
Here we define the action that will be executed when the criteria are met:
- Operation defines which type of operation we want to execute, like increasing or decreasing the instance count.
- Instance count defines the number of instances that will be increased or decreased.
- Cooldown defines the waiting time in order to execute another action.
- Road To AZ-204 – Implementing IaaS solutions
- Configure an App Service app in the Azure portal