Menu Home

Getting Started with Azure Serverless – a Roadmap for Getting up to Speed

This is not a tutorial on using Microsoft’s Azure Serverless offerings. There’s already plenty of those, with more appearing every day as Serverless popularity rapidly grows. Rather, this post provides a roadmap of info you’ll need to use these technologies in your projects or products. Just for good measure we include a few tutorials as well.

For now at least, the key Azure Serverless services are

  • Azure Functions – chunks of event triggered logic
  • LogicApps – declarative workflow that calls Functions and 3rd party services

You’re very likely to use several other Azure services and tools in your solutions and are they are introduced below.

Background Software Knowledge

Perhaps Serverless’ greatest attraction is that developers can largely forget about much of the software stack required to build and deploy a business system application or app backend (or even a static web server). As a cloud offering that builds on existing solutions it also abstracts away the hardware too. Thus, you can concentrate on your business or app logic, safe in the knowledge you have outsourced those other details to Microsoft. You do still require some system development and maintenance skills though, though many can be learnt as you become familiar with Azure Serverless.

The largest impact of “going serverless” will be on your system architecture. You certainly won’t have a single monolith app or a classic 3-tier architecture. Instead, you’ll be connecting together services and functional chunks, some of which you’ll create and others coming from 3rd parties. The connections between components will be asynchronous mechanisms like HTTP triggers or messages in queues. Data and state are stored in services that wrap databases, most typically NoSQL. Accordingly, from the outset you’ll find it useful to have an acquaintance with some architectural techniques beyond basic software development.

  • Software as a Service, both as a technical and business concept
  • Event driven architectures, along with messages and queues for asynchronous coupling
  • Distributed system design, possibly including Microservice architectures
  • Monitoring and debugging techniques for distributed systems
  • Basic deployment techniques including CI/CD (arguably basic development techniques)
  • Backend, Functions and Workflow as a Service (BaaS, FaaS and WaaS) – strictly for label lovers

Familiarity with these base technologies will be useful:

  • HTTP RESTful architectures and APIs
  • Possibly graphQL though it’s not directly supported
  • C# .NET or NodeJS JavaScript – other languages are supported in Functions but these are arguably the main 2.
  • SQL and/or NoSQL – your going to want to store data somewhere

You may also find it useful to have a familiarity with code-level async techniques (eg callbacks, promises or reactive streams) but you can have Functions with out using them.

Notice we didn’t mention typical cloud concepts such as IaaS or containers. They may be part of how Microsoft implement Azure Serverless but they are mostly hidden details you needn’t to worry about. In addition, while Serverless is an extension of PaaS you can largely forget about that too.

Finally, the Functions framework is open source and you’ll want to have some familiarity with working this way on GitHub in order to engage and make contributions to the very open team. LogicApps also provides a collection of handy open source examples and addons.

Just do it!

With so many tutorials and videos out there it’s hard to select good ones to include. So I suggest you just google after looking at those below 🙂

Bear in mind that the Azure Portal UIs are the fastest way to get going as they are interactive and work online. You can explore using off line development and deployment tooling later. Also, there are generally 2 types of Serverless applications: business automation logic and backend for a mobile or web app. Note you can easily try Functions panel for free without even logging into Azure or having an account.

Videos

Gaining Context

Your learning style may be to gain a background understanding before diving in to play, or you may like to pick up concepts as you explore. In either case these resources will provide the info you need:

Architectures

The Serverless community are busy figuring out which architectural patterns work best with Serverless. These patterns aren’t new and as indicated above, they currently draw from patterns in use in distributed, event driven, reactive systems. Here are a few starting resources.

Azure Specific topics

The key technologies are:

In addition you’re bound to use some of these:

A few crosscutting Azure specifics you’ll want to know about include:

Tools

Right now there are 3 main development tools sets, though you can always mix and match too. The tools you uses depend on if you’re using Functions or LogicApps.

For Functions the language you use also effects which local development OS you can use, plus available CI/CD options. Fortunately, the Functions Team are working on making all options available on all OSs.  A powerful feature is the ability to run, manage and test Functions locally (or on CI) while they still work with cloud based triggers and services; perfect for unit testing.

  • The Azure portal – interactive web app – great for quick experiments or small systems with a single developer, or a very careful team
  • VisualStudio 2015 – Windows only IDE, team development and deployment. Visual editor for LogicApps. C# Functions
  • Visual Studio Code + CLIs  – NodeJS JavaScript Functions and soon TypeScript. See this post for details
    • Code is a cross platform editor and debugger, powerful intellisense with C#, JavaScript and TypeScript
    • Azure Functions CLI – Windows only. May merge with Azure CLI
    • Azure CLI – Cross platform, the latest version arguably makes simple queries rather complex

Both Functions and LogicApps use underlying declarative text files, meaning common text tools (grep, sed, awk etc) can be used when required. That’s a real lifesaver when you have to make a small change in many places!

The Serverless Framework now supports Functions in addition to Apache OpenWhisk and the original AWS Lambda and . This impressive open source project cleanly abstracts away the differences between various Serverless platforms. It currently has a DevOps emphasis and only supports a subset of Functions features (as you’d expect given it’s abstraction)

Other useful tools include:

More, More!

Enjoy

That might seem a lot to absorb but the reality is you can just start with a small stand-alone solution that is useful to you. Or perhaps, implement one part of a new or existing system using Functions. Visting the Azure Functions or LogicApps panel, selecting a template, entering some code and testing are all easy small steps. From little acorns….

As Chris Anderson, PM of Azure Functions said “Solve the problem and get on with the rest of your life”.

Stay informed

  • Follow us at @AzureServerless

Categories: Uncategorized

Tagged as:

steve@opendirective.com

Leave a Reply