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