December 1st sparks the start of Microsoft’s 25 days of serverless challanges. Each day throughout the month of December a new challenge will be published from the Microsoft Cloud Advocates. Your goal is to solve it in the programming language of your choice and then submit your solution via GitHub.
If you don’t know anything about Azure or serverless then no problem. Each challenge will provide hints to get your started
Oh no! An evil grinch has stolen all of the world’s servers! Travel around the world helping everyone replace their current solutions to common tasks with serverless technology in time for the holiday rush.
Each day’s puzzle will bring you to a new location somewhere in the world! You’ll be helping local folks in that location with some problem they have, showing how moving to serverless can help things get done! Each day’s puzzle will bring you to a new location somewhere in the world! You’ll be helping local folks in that location with some problem they have, showing how moving to serverless can help things get done!
Earlier today, Service Fabric Mesh was made available to everyone as a public preview. At Build 2018, Microsoft announced and demonstrated Service Fabric Mesh, a serverless offering of Azure Service Fabric. The public preview is available in three Azure regions: US West, US East, and Europe West and the availability will expand to other regions in the coming months.
Azure Service Fabric Mesh, a fully-managed service that enables developers to deploy and operate containerized applications without having to manage VMs, storage or networking configuration, while keeping the enterprise-grade reliability, scalability, and mission-critical performance of Service Fabric. Service Fabric Mesh supports both Windows and Linux containers, so you can develop with the programming language and framework of your choice.
Azure Functions now have 2 different runtimes, version 1 which is what is currently in production and the only runtime supported for production use, and version 2 which is currently in preview. I’ll cover the difference in both runtimes and when to use which version.
Overview or Version 1
What’s New in Version 2
Version 2 runtime has been rebuilt from the ground up on .NET Core 2.0 and support cross platform (Windows and Linux) for deployment and for development you can use Windows, Linux, and macOS.
Azure Functions is a great serverless offering and provides lots of functionality for almost any application. If you need to run code in production than version 1 is your only choice, but if you want to try out Azure Functions then definitely take a look at both runtimes. With Microsoft annual developer conference Build next month, I bet we will hear more information about version 2 runtime and a timeline for release.
Durable Functions is a new extension of Azure Functions which manages state, checkpoints and restarts for you. Durable Functions provide the capability to code stateful functions in a serverless environment. This new extension enables a new type of function called an orchestrator. The primary use case for Durable Functions is to simplify complex, stateful coordination problems in serverless applications. Some advantages of an orchestrator function are:
Workflows are defined in code. This means no JSON schemas or designers are needed.
Other functions can be called synchronously or asynchronously. Output from functions can be saved to local variables.
Automatic checkpoint the progress of the function whenever it awaits. This means local state is never lost if the process recycles or the VM reboots.
The following are 5 sample patterns where Durable Functions can help.
Pattern #1: Function Chaining
Function chaining is the execution of functions in sequence where the output of one function is the input to another function. With this pattern you typically use queues to pass state from function to function.
Pattern #2: Fan-out/Fan-in
Fan-out/Fan-in refers to the execution of multiple functions in parallel and then waiting for all of them to finish. This pattern also uses queues to manage state from start to end. Fanning back in is much more complicated as you would have to track the outputs of all the functions waiting for them to finish.
Pattern #3: Async HTTP APIs
Async HTTP APIs pattern is all about the problem of coordinating the state of long running operations with external APIs. With this pattern you often use another status endpoint for the client to check on the status of the long running operation.
Pattern #4: Monitoring
The Monitoring pattern is a recurring process in a workflow where the function polls for a certain condition to be met. A simple timer trigger could address this but its interval is static and management of it is more complex.
Pattern #5: Human Interaction
Finally we have the Human Interaction pattern. This pattern is where a function executes but its process is gated based on some sort of human interaction. People are not always available or respond in a timely manner which introduces complexity to your function process.
In all five use cases, Durable Functions provides built-in support for easily handling these scenarios without the need extra resources likes queues, timers, etc for managing state and controlling the function flow. For more information on each of these patterns and code samples please see the Durable Functions documentation.
Durable Functions is currently in preview and is an advanced extension for Azure Functions that is not appropriate for all scenarios. Next month is the annual Microsoft developer conference Build. I suspect we’ll see some new exciting details with Azure Functions and Durable Functions specifically. Hopefully they become generally available.
The latest in compute, serverless and more – hosted by the Azure Advocates.
This is a a FREE event where you’ll learn about compute, serverless, storage, big data, artificial intelligence, machine learning and so much more…plus lunch is included (every developer loves a free lunch).
Toronto, On – April 3, 2018
Vancouver, BC – April 5, 2018
Washington, D.C. – April 6, 2018
Los Angeles, CA – April 9, 2018
Austin, TX – April 10, 2018
San Francisco, CA – April 12, 2018
Seattle, WA – April 12, 2018
In addition there will be University Tours for students and faculty.
Register at a city near you to learn how to build great cloud apps!
If you’re new to Azure Functions and/or Logic Apps there is a great open source library for you to browse that contains set of common use cases that are ready to deploy!
If you want to create an Azure Resource Manager (ARM) template that deploys Functions or Logic Apps, you can build your own as shown here. Just provide your GitHub repository URL and it will quickly create an azure.deploy.json file for you to include with your repos.
These samples are available in a either C# or NodeJS and can be deployed to your Azure subscription with a click of a button. The samples cover a number of useful tasks that can easily be incorporated into your application or simply used for learning purposes. If you’re interested in contributing to this project or browsing through the code please take a look at the GitHub repository.