Tag: Serverless

Azure

Azure Service Fabric Mesh is now in Public Preview

wp_ss_20180716_0001

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.

You can get started today by heading over to the Azure Service Fabric Mesh documentation.

Be sure to take a look at the Azure Service Fabric Mesh Public Preview Announcement for frequently asked questions (FAQ) on what’s supported, and limitations. Since this is only a public preview, there is no SLA for production use.

Enjoy!

Resources

Azure Service Fabric Mesh Public Preview Announcement

Azure Service Fabric Mesh tools now available for Visual Studio 2017

Azure Friday – Azure Service Fabric Mesh Preview

Azure Service Fabric Mesh documentation

Azure Service Fabric Mesh samples

Azure Service Fabric Mesh pricing

Azure Service Fabric Mesh Container Quick Start

Azure

Comparing Azure Functions Runtime Versions

image

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

The version 1 runtime is what is currently used in production and is the only version supported for production use. This runtime is based on .NET Framework 4.6 and only support Windows for development and/or hosting in the portal. Version 1 also only supports the following languages: C#, JavaScript, and F#.

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.

Version 2 introduces language extension model that both JavaScript and Java are taking advantage of. There is also expanded language support for Java and more coming. We also have new bindings for Microsoft Graph and Durable Functions.

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.

Enjoy!

References

Azure Functions runtime versions overview

Install Azure Functions Core Tools

Azure Functions Roadmap

Azure

Introduction to Durable Functions

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.

Function chaining diagram

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.

Fan-out/fan-in diagram 

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.

HTTP API diagram

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.

Monitor diagram

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.

Human interaction diagram

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.

Enjoy!

References

Overview of Azure Functions

Durable Functions Documentation

AzureEvents

Azure Developer Tour is Coming!

azure developer tour

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).

Cities

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!

Enjoy!

References

https://www.microsoftevents.com/profile/web/index.cfm?PKwebID=0x752173abcd&wt.mc_id=AID688794_owned_CESocial_Copy

Azure

Azure Serverless: Azure Functions and Logic Apps that are ready to deploy!

image

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.

image

Summary

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.

Enjoy!

    References

    http://functionlibrary.azurewebsites.net/

    https://github.com/jefking/FunctionLibrary

    Azure

    Try Azure Functions for Free

    In my previous post “Introduction to Azure serverless with Azure Functions, Logic Apps and Azure Event Grid” I briefly introduced each of those services from Azure. In this post I’ll show you how you can try Azure Functions for free without signing up for an Azure subscription. Let’s get started.

    Microsoft has setup a free sandbox environment for trying out Azure Functions for free. Navigate to the free trial link and select the function you want to create:

    image

    After clicking on the Create this function button you will be asked to choose an auth provider. Any will do and it’s just needed to get some basic information for the trial. No credit card information is required:

    image

    After a few seconds you should see your new HttpTrigger C# function (based on the selection from the previous screen). Click on the Run button to see your function run. From this portal you can edit your function code and save the changes, run the function and view the logs from the, test your function with different input, and see the output and status.

    image

    Your function also has a URL you can use to run your function outside of this portal. Go to the top right corner and click on Get function URL:

    image

    You will then see the get function URL modal with the key and URL. Click on the copy link and then open up another browser tab or use it within Postman:

    image

    Paste your function link and then add the required query string parameter Name with a value. You should then see the output of your function like so:

    image

    This environment is limited in what you can do. So although you can change your function code and the integrations it works with, you are prevented from managing your function app. You also only have only 59 minutes to try it out.

    image

    As you can see you can quickly try out Azure Functions in a sandbox environment. If and when you’re ready you can move to an Azure subscription where you can fully manage your Azure Function and get access to a world of other resources to use with your function app. It’s worth mentioning that with your Azure subscription you get access to a number of Azure resources for free within certain limits…including Azure Functions. So take a look and give Azure Functions a try.

    Enjoy!

    Resources

    Try Azure Functions for Free

    Azure Functions

    Azure

    Introduction to Azure serverless with Azure Functions, Logic Apps and Azure Event Grid

    image

    In this blog post I’ll introduce you to what is serverless and then what services in Azure provide serverless capabilities. First let’s define what is serverless.

    What is the definition of Serverless

    • It’s an abstraction of servers. This doesn’t mean there are no servers, there are still servers behind the scenes but this means you don’t need to worry about optimizing which OS to run, about OS patching, etc. You also don’t need to worry about optimizing utilization and scaling up and down for demand. Think of it as less server more code.
    • It’s an event driven process. You simple tell Azure how or when to run your code. This could be based on a schedule or when a new customer is added to Salesforce, or when items are added to a queue, to a table storage, etc.
    • It’s micro-billing. This means you’re only charged for your usage.

    The benefits of serverless

    • Reduced DevOps – You can dynamically and elastically scale to meet demand.
    • Focus on Business Logic – Allows you as the developer to focus on your business logic and everything else is taken cared of for you. No need to provision resources and wait on ITOPS. In some cases you can design and develop your serverless code offline.
    • Faster Time to Market – By focusing on your business logic and features, you’re able to drastically increase time to market.

    Let’s now look at three Azure services that provide serverless capabilities.

    1. Azure Functions

    image

    Azure Functions is an event driven, compute-on-demand experience. You can easily and quickly build the apps you need using simple serverless functions that scale and meet demand and you only pay for your usage.

    You can use the programming language of your choice like C#, F#, JavaScript, PHP, Python, Java or using scripting tools like Bash or PowerShell. You can develop on Windows, Linux or Mac. You can deploy on Windows or Linux. You can choose from using either the full .NET Framework or the .NET Core runtimes.

    Azure Functions allows you to bind into services. This means you can integrate Azure Functions into Cosmos DB, Logic Apps, queues, table storage, on premise and so much more.

    With Azure Functions you simply provide your code and then let Azure take care of the rest…meaning that when an event happens, Azure will automatically take care of everything to run that code at scale.

         

    2. Logic App Service

    Azure Logic Apps are built around the idea of events, triggers and workflows. When you think about building microservices, there are a lot of moving parts to manage. Azure Logic Apps lets you stitch them all together much more easily and provides you with a central place to build and manage all of your event-driven services.

    Logic Apps are a fully managed iPaaS (integration Platform as a Service) that provide serverless workflows that allow developers to easily integrate data with their apps instead of writing complex glue code between disparate systems. This allows you to orchestrate and connect the serverless functions and APIs of your applications.

    Benefits of Logic Apps

    1. You can quickly tap into the power of the cloud and fire events from other services.

    image

    2. You can orchestrate almost anything:

    • Run mission-critical, complex integration scenarios with ease
    • Connect on-premises, hybrid and cloud applications
    • Position for future with API centric connectivity
    • Easily connect custom on-premises applications to the cloud

    image

    Connectors

    At the time of this post there are over 200 connectors available out of the box. Connectors reduce integration challenges and enable you to quickly and easily connect apps, data and devices anywhere.

    Creating a Logic App

    The following is a sample Logic App. As you can see you simply string together Connectors, Triggers, Conditions and Actions to form the basis of your Logic App. When your Logic App is running you can monitor and inspect each run iteration and see what data came in and the path it took through the Logic App.

    image

    In summary Logic Apps is the workflow engine built for the cloud with cloud scale, massive compute and high availability built in.

    3. Azure Event Grid

    Finally there is Azure Event Grid which is a messaging service built to easily build application with event-based architectures. You simply select the Azure resource you would like to subscribe to, and give the event handler or webhook endpoint to send the event to. Event Grid also has built-in support for events coming from other Azure services, like resource groups, subscriptions, storage blobs, and event hubs.

    functional-model

    Topics and Subscriptions

    Event Grid is similar to Azure Service Bus in that a Topic is an endpoint that receives messages, and a Subscription is used to receive messages through the Topic that will be handled by a message listener. These concepts are basically the same, but there are some differences in how they work. Event Grid it uses a concept of events instead of messages since it’s an event-based messaging system, and because Event Grid is based on events, it lends itself nicely to microservice architectures using serverless compute options like Azure Functions and Logic Apps in addition to other implementations.

    There are also more differences between Azure Event Grid and other message queue services. The capabilities of Azure Event Grid are centered around speed, scale, breadth, and low cost. Rather than being a general / generic messaging service, Azure Event Grid is built specifically for Serverless architectures.

    Event Publishers

    Currently Azure Event Grid has built in support for the following event publishers:

    • Event Hubs
    • IoT Hubs
    • Storage
    • Blog Storage
    • Custom Topics
    • Azure Subscriptions (management operations)
    • Resource Groups (management operations)

    Event Handlers

    Currently the following Azure services have built-in handler support for Event Grid:

    • Azure Functions
    • Logic Apps
    • Event Hubs
    • Webhooks
    • Azure Automation
    • Microsoft Flow

    If using Azure Functions as your handler, use the Event Grid trigger over the generic HTTP trigger as it automatically validates Event Grid Function triggers.

    Azure Event Grid is built specifically for Serverless architectures.

    Event Grid Architectures

    Azure Event Grid is designed to be used in microservices and event based architectures. It can be used in a serverless application to connect data sources and event handlers. In an ops automation scenario you can notify Azure Automation when virtual machines are created, or when a SQL database is spun up. Finally you can use Event grid to connect your application with other services. The possibilities are really limited by your imagination.

    EventGridArchitecture1

    Summary

    As you can see all three services provide a different component to the serverless story and each of them integrate nicely with each other. They each allow you to think less about the server and more about your code and you only pay for your usage. The best way to learn about these Azure serverless offerings is to create a free Azure account and try it out yourself.

    Enjoy!

    References

    Azure Functions

    Docs: An introduction to Azure Functions

    Logic App Service

    Docs: An introduction to Logic App

    Azure Event Grid

    Docs: An introduction to Azure Event Grid

    Webinar: Go serverless. Build apps faster and stop worrying about infrastructure.

    Report: Economics of Serverless Cloud Computing

    Attribution: This post uses one or more graphics from the official Azure Event Grid documentation, such as diagrams.