Deliver More with Serverless

//Deliver More with Serverless

Serverless is picking up a lot of attention, and we are seeing it becoming very popular with our customers. Unlike architecture, it is much easier to explain its vast array of benefits with non-technical stakeholders. We like Azure Functions and Logic Apps for various reasons other than micro-billing and their abstractions over servers.

Serverless is much more than micro-billing and server abstractions, it’s a new way to respond to change

Embrace Events

Azure Logic App: When the application raises an event using Event Grid, then send a text message with tailored content

Arguably one of the most compelling features of Azure Functions and Logic Apps, is the vast variety of ways to trigger a function. Today, the most notable triggers are:

  • Blob Storage
  • Webhooks
  • Timer
  • Event Grid

This means you could do things like:

  • I want to update our sales dashboard when we make a sale
  • I want to get a message on Slack when our app goes down
  • I want to run a report every weekday at 9 am and email the results
  • When a user signs up, I want to send them a text message
  • When a user makes a purchase, I want to send them a Thank-You email

Besides the fact that it’s very simple to trigger a function or logic app, events-driven architectures break down our complex applications into more sizable and understandable chunks of logic.

Developers can focus solving the hardest problem: business complexity. The core of the application can do what it does best but when something happens you can extend its behavior.

Couldn’t we do this before?

Not as easily. As an engineer, oftentimes the hardest problems I work on is how to have my application do something when something happens somewhere else. Creating “glue” code, when I don’t have ownership with what’s on the other end, is not a trivial task.

For instance, I remember early in my career trying to create a file-based interface with another company. I developed a process that would watch for new files being dropped on an FTP folder and trigger a workflow in our system. I recall working through all the possible edge cases in order to make this integration as seamless and robust as possible. Today, if I were to do it all over again, I could use an Azure Function with a blob storage trigger so that when the file is uploaded, I could kickoff the workflow immediately without having to spend so much time worrying about performance and resiliency.

But I’m not on Azure yet

Not a showstopper. Azure Functions can be connected to an Azure Virtual Network. Virtual Networks can then be connected to your corporate network using site-site VPN. We find Virtual Networks to be an effective way to start building a Hybrid Cloud solution for our customers.

Integrate Away

At Nebbia, we’ve been exploring all the various ways we could integrate systems together to gain insight into our daily activities.

For example, we wrote a Slack App that keeps tracks of our current projects and shows us how many hours have been billed through T-Sheets. It runs every weekday at 9 am, and it posts how we’ve been doing to one of our channels .

This is an example of an Azure Function App that is triggered by a command from Slack using a Webhook or from a Timer on weekdays. It’s simple to create and get billed for the amount of time the function spends executing, which is not much.

Integrate for Operational Excellence

Integrate systems together for quick ways so that you and your team are effective at what you do from day to day. These mini-projects are a great way to get started into using Serverless, because if it doesn’t work, you could simply revert to the way you were doing it before.

For instance, you could integrate:

  • Your bug tracking software with Slack or Microsoft Teams
  • VSTS and Service Now so that you can automatically approve a release
  • Application Insights and Slack so you know if there’s something wrong
  • Application Insights and Twilio so your team gets a text message when they’re on call

Integrate to Extend Business Value

At some point, you could start implementing business features with the use of Azure Functions or Logic Apps. If you have an application already, identify the auxiliary things that are not your core competency and could be reworked to be Serverless. Or if you’re creating a Minimum Viable Products (MVP), get some early wins by using  Logic Apps to integrate with Twilio or SendGrid.

For the most part, as an industry, we are not in the business of coming up with the most extensible architecture or evaluating an enterprise task management platform. When we write custom software, we oftentimes do it to streamline business processes or fulfill a desire in people.

A Word of Caution

Serverless has undoubtedly opened many doors for Cloud native applications. As Azure continues to improve, I am convinced Serverless will get better and better. As we’ve seen, many of our customers are excited about the new opportunities this brings and they are jumping onboard.

Don’t forget about DevOps

We have worked with customers who have a unique problem: they are treating Azure Functions like pets. Meaning, to promote function from DEV to QA, they find themselves copying and pasting code or side-by-side comparing settings.

Especially for functions that extend business value, ensure that they are source controlled, unit tested, and released to the proper testing environments just like any other application. We are all human, we make mistakes. Let’s fail fast and often.

As a start, you could read my personal blog on how to create an ARM template for an Azure Function and how to use VSTS to deploy them.

We want to help!

At Nebbia, we’re passionate about DevOps, Azure, and Serverless! Today, we’re using Logic Apps and Functions to power critical features for solutions we’ve built for our customers. We experiment integrating systems together so that we’re more effective on our day to day. We help customers automate their release process for their serverless components. Still considering serverless or not on the cloud yet? We can help determine a DevOps and Cloud-first approach to get your applications to Azure. Let’s partner to see what makes sense based on your priorities whilst keeping risks as low as possible.

We are coming to a town near you

Over the next few months, we are hosting App Modernizations workshops throughout the Southeast, at the following locations:

February 13th: Orlando
February 20th: Raleigh
February 21st: Winston-Salem
February 22nd: Charlotte
February 27th: Tampa
March 1st: Fort Lauderdale
March 27th: Atlanta

You can get more information and sign up here!

By |2018-01-26T13:03:22+00:00January 26th, 2018|

About the Author:

I'm a Software Engineer at Nebbia Technology. I'm enjoy learning about all things cloud, software development, and agile. I'm always thinking about the next side project to work on.