Ali Hussain, Cloud Solution Architect
One of the beautiful things about computer science and engineering is the endless abstraction needed to help us model and build incredibly complex virtual systems in everything from enterprise software to blockbuster video games. Distilled down to their essence, these systems are basically patterns of low and high voltages. But on top of all those 1s and 0s are abstraction layers that developers and engineers need to bring these systems to life. Without these abstractions, we would still be in the electronic equivalent of the stone age. Enter serverless computing – the most exciting new form of computing abstraction.
Serverless is one of the most popular development paradigms being talked about this year across the industry. On the surface, it’s a misnomer because under the covers the servers are still there, replete with blinking lights and whirring fans. For developers, however, serverless is aptly named. With serverless, developers can focus on what really matters – coding great applications for customers. Serverless offloads the need to manage the underlying infrastructure to providers, such as Microsoft, so developers no longer need to worry about things like OS patching, container orchestration and other tasks. Additionally, serverless lets us easily build applications using event-driven architecture. These two features among many others make serverless very appealing to developers.
Event-Driven architecture
Event-driven architecture is a software design pattern and it isn’t a new concept but it recently gained a lot of momentum. One big reason for that is the introduction of new public cloud services that help enable this design pattern. Event-driven architecture is beneficial for applications that have significant cross-communication across different components. It helps developers build asynchronous, stateless systems without the need to add lots of co-dependency between various system components. Serverless complements event-driven design very well by allowing developers to leverage public cloud infrastructure to easily scale up and scale down without worrying too much about how the infrastructure will handle the additional load.
Azure Functions
Microsoft’s biggest entry into the serverless space is with Azure Functions. With Azure Functions, developers can use the same tools they already use to easily build out event-driven applications. Visual Studio and Visual Studio Code both integrate seamlessly with Azure Functions, with full debugging support, code templates, and more. It isn’t just about C# either. Azure Functions supports C#, F#, Node.js, Java, and PHP. Additionally, because Azure Functions is priced based on the number of code executions, customers are only charged for the actual time spent running code and not for idle cycles. This can significantly reduce the cost for workloads that scale up and down in cycles and eliminates the need to pay for infrastructure that is just sitting around.
Getting started
It’s easy to get started with Azure Functions. Check out this link to learn how to build your first Azure function in Visual Studio. Or you can go here to look at some existing code samples. Either way, there’s never been a better time to go server-free with serverless!
Register for the December 15 Community call
If you'd like to hear more on this topic, register for the Applications and Infrastructure Community call on Friday, December 15, 2017. The call will provide insight into what is most important in the Microsoft partner ecosystem. We'll have a conversational dialogue between two technology professionals that is designed to appeal to technical, sales, and business professionals. One presenter will discuss containers from an infrastructure perspective, the other from an application development perspective.
Register for the December 15 Community call