Computing Without Servers? Take A Look At Azure Functions
If doing less server management is good, how about doing no server management? The trend to cloud, Infrastructure as a Service, and Platform as a Service has reduced the amount of support and maintenance data center operations teams need to perform. With serverless computing and functions in the cloud, infrastructure maintenance is completely eliminated.
Of course, there’s no such thing as truly serverless computing—somewhere there’s a physical machine carrying out instructions. But, as Microsoft puts it, using serverless functions lets you manage your apps instead of infrastructure.
How Serverless Computing and Functions Work
With serverless computing, you no longer have a set of resources allocated for running applications. Instead, functions are executed in response to events. Administrators and developers don’t need to know anything about underlying servers and storage. The cloud allocates all the necessary resources behind the scenes; your capacity scales instantly as needed and you pay only for the capacity you use.
The event-driven nature of serverless computing means this model may not work well for traditional, monolithic applications that run for long periods of time. Instead, functions should be stateless, microservices that spring to life to perform a small, well-defined operation and then terminate. They can be called by other functions through HTTP REST APIs.
Use Cases for Functions
Event-driven Azure Functions are ideal for processing data. Some typical use cases include processing online orders and real-time file and stream processing.
There are many kinds of Azure events that can cause a function to execute, including:
- Storage blob actions like adding or modifying data
- Event Hubs streaming data
- Azure Service Bus messaging
- Scheduled job activity
- Azure DocumentDB
- Azure Mobile Apps
- Azure Notification Hubs
- GitHub
- Twilio
- Webhooks and HTTP requests
The webhooks support means functions can be invoked by numerous third-party applications.
Developing Functions
Existing applications are unlikely to be architected to support functions, so they’re best used when implementing new applications. They’re ideal when you don’t know exactly how much demand there will be or expect demand to be periodic and increasing.
Developers can use the language of their choice to implement Azure Functions, including C#, Python, Bash, and PowerShell. Azure Functions use bindings to manage data flows—developers simply read and write to input and output variables—eliminating that as a development concern and speeding development times. The bindings also mean functions are loosely coupled, making it simple to change the services invoked later.
Integration with Git enables agile development processes. Azure Functions includes logging to support monitoring and troubleshooting.
Want to learn more about Azure Functions and serverless computing? Prescient Solutions is a Microsoft Partner and provides comprehensive Microsoft Azure services. Our IT consulting and managed services teams work with companies in Chicago and Schaumburg to design, implement, and support technical architectures that solve your business’s IT challenges. Contact us to learn more about how you can leverage Microsoft Azure’s features, including Azure Functions, to drive your business to greater success.