Scaling and Resilience
This course will show you how to design and create web applications using the Azure App Service.
By the end of this course, you'll have gained a firm understanding of the key components that comprise the Azure App Service. Ideally, you will achieve the following learning objectives:
- A solid understanding of the foundations of Azure web app development and deployment.
- The use cases of Azure Web Jobs and how to implement them.
- How to design and scale your applications and achieve consistent resiliency.
This course is intended for individuals who wish to pursue the Azure 70-532 certification.
You should have work experience with Azure and general cloud computing knowledge.
This Course Includes
- 1 hour and 35 minutes of high-definition video.
- Expert-led instruction and exploration of important concepts surrounding Azure Web Apps.
What You Will Learn
- How to deploy and configure Azure web apps.
- How to implement Azure Web Jobs.
- Scaling and resilience with Azure web apps.
Hello and welcome back to the section on WebJobs. Certain tasks are not well suited to being run in a we app. Web apps perform work when they have a request and are generally expected to finish processing that request in seconds or a few minutes at most. Web apps are therefore ill suited to hosting tasks like long running jobs or jobs that need to be triggered on a schedule, rather than by an incoming request. Generally speaking, we think of these type of workloads as background processing.
Schedules tasks, recurring tasks, long running tasks, and other kind of background processing are however a very common requirement. WebJobs enable us to perform these background processing tasks in an appropriate context. They allow us to run a .NET console application or a script such as PowerShell, Windows Batch, PHP, Python node, among any others.
WebJobs can be deployed alongside web apps in the same app service plan. WebJobs can be deployed separately in their own separate app service plan which comes through it's own pros and cons that we'll discuss later. As we've discussed, you should consider WebJobs when you have a task that needs to be run on a schedule, or a task that will run continuously and will monitor and respond to various triggers like a file watcher or any other long running tasks that aren't suitable for the short lived request lifecycle of a web app handler.
A good analog to consider are situations where you'd normally have to have the task run by the Task Scheduler on Windows, or cron job on Linux, or any background services that runs continuously. A classic example is a WebJob that retrieves and repairs data for the web app. For example, you may have a long running SQL query that creates a large report which is used by your web app. Instead of having a user request held up while your web app generates it's long running report. You may have a web job that periodically generates the report and makes it available for the web app to use.
Now that we've introduced the concept of WebJobs, stay tuned and we'll learn how to implement them in the next section.
About the Author
Isaac has been using Microsoft Azure for several years now, working across the various aspects of the service for a variety of customers and systems. He’s a Microsoft MVP and a Microsoft Azure Insider, as well as a proponent of functional programming, in particular F#. As a software developer by trade, he’s a big fan of platform services that allow developers to focus on delivering business value.