Microsoft Azure Stack is an extension of Azure—bringing the agility and innovation of cloud computing to your on-premises environment and enabling the only hybrid cloud that allows you to build and deploy hybrid applications anywhere. We bring together the best of the edge and cloud to deliver Azure services anywhere in your environment.

WebJobs Overview

Overview

WebJobs is a complete compute solution on a managed platform. The runtime offers many choices on how your code can run (cron, service, manually). Using Azure Websites as a platform means that WebJobs inherits tons of cool features. Azure Scheduler brings a plethora of scheduling choices. The ASP.NET team built the WebJobs SDK, which makes writing code that interfaces with the different Azure components (Blob, Queues, Tables, Service Bus) a snap! And the rich Visual Studio tooling wraps everything together seamlessly. Goes to show that sometimes the whole is bigger than the sum of its parts.

What is “WebJobs”?

Put simply, if you can run a program or script on your local machine, all you need to get it running on the cloud is upload it. It really is that easy! It will take less than 5 minutes from signing up on Azure to uploading and running your code. WebJobs is what you get when you cross a fully featured and managed cloud-based hosting platform with a generic compute environment. In other words, WebJobs is compute on a managed platform. Everything to make your code run, and keep it running is managed for you. All you have to do is put your program in a folder.

Your code on the cloud

By executing your program in WebJobs, since it runs on the cloud, your program can be scaled to multiple machines. Scaling effectively replicates, parallelizes, and adds load balancers to optimize performance. It is even possible to distribute the work globally using Azure Traffic Manager, or connect it to your own servers via Azure Websites’ VNET. WebJobs run on Azure Websites, which provides the infrastructure and access to a plethora of features.

Tools

Good tools are essential, so WebJobs support has been integrated directly into Visual Studio. From Visual Studio you can create a new project of type ‘WebJobs’ and publish the code directly onto Azure. You can even attach a remote debugging session to step through your code as it runs live on the cloud!
To make coding easier there is also a WebJobs SDK that greatly simplifies common tasks. The WebJobs SDK is basically an abstraction on top of the Azure SDK. It allows you to bind complex tasks and objects to C# primitives. That way, you don’t have to figure out how it all works, just use it.

Monitoring and Debugging

WebJobs also includes a way to monitor, debug and optimize your running code via a dedicated dashboard. The WebJobs dashboard lets you dig into every detail of your code as it runs. You can see every function, when they ran, with what parameters, for how long, and the call stack – all at runtime! Not to mention the remote debugging capabilities that lets you step into the code running on the cloud just as if it were running on your local machine.

Runtime

To top it all off, WebJobs can be run in a variety of different ways. They can be run manually, via an API, concurrently with a website, continuously (with the help of the “Always On” feature), or on a schedule. WebJobs can be scheduled to run once at a given time, or periodically on a schedule. The scheduling is done via the Azure Scheduler, which offers just about every permutation of scheduling options one can think of.

More…

Nearly every component in WebJobs is optional and can function independently so you have the flexibility to work the way you like. There are tons of details and use cases for WebJobs, much of this is covered in Azure WebJobs Recommended Resources. It’s important to note that for the best experience, make sure you have the latest Visual Studio update as well as the latest Azure SDK and WebJobs SDK.