Serverless Computing

What is it and why do we care?

  • Serverless, Why it's important
  • 19 MAR 2023
  • blog

The Elevator Pitch for Serverless Computing

At AppGenie we have been early-adopters of Serverless Computing with FTP2SF. While the elevator pitch for Serverless is compelling technically, I often struggle with explaining the business benefit of Serverless computing to a non-technical audience and with my father's helpful wisdom that I "was always lousy at communicating" ringing in my ears - I generally mumble something and try to exit as gracefully as possible, so in an effort to equip myself and my fellow tech-heads out there, here is my pitch for Serverless Computing.


What is Serverless Computing?

First lets cover off what Serverless Computing is so we at least we have the attention of our hsuffering Elevator rider.

Serverless Computing is cloud-based execution of a function or subset of application processing that is triggered by an event such as user interaction, scheduled event or by some other event trigger.

How brief is that right? No suffering involved ... yet!


Providers

Serverless Computing is provided by all major cloud providers and is a way to automatically allocate and scale computing resources to run applications without the need for developers to provision, configure, manage, or maintain server infrastructure. Of course there are still servers involved, it's just the provision of them is outsourced!

  • Microsoft offers Azure Functions, a serverless compute service that enables developers to build and deploy event-driven applications and micro-services. Azure Functions provides several triggers and bindings, which allow developers to build serverless applications that can connect to various data sources and services.
  • Google offers Cloud Functions, a serverless compute service that allows developers to build and deploy event-driven applications using popular languages such as Python, Node.js, and Go. Cloud Functions provides integrations with other Google Cloud services such as Cloud Pub/Sub, Cloud Storage, and Cloud Firestore.
  • AWS offers Lambda, a serverless compute service that allows developers to run code in response to events, such as changes to data in an Amazon S3 bucket, Amazon DynamoDB table, or Amazon Kinesis stream. AWS Lambda supports several programming languages, including Java, Python, and Node.js, and integrates with other AWS services such as Amazon API Gateway, Amazon SNS, and Amazon SQS, and we love it!
  • Alibaba Cloud (AliCloud) offers Function Compute as a serverless computing platform that allows users to deploy and run code in response to events, such as HTTP requests, timers, and messages. Function Compute is based on the open-source project Apache OpenWhisk and supports several programming languages, including Node.js, Python, Java, and PHP.


What's the advantage to Serverless?

Our hypothetical Elevator captive is now interested, so how do we describe a benefit that actually matters in a way that is meaningful? Let's cover it off from a technical perspective and then percolate these concepts into a set of useful phrases that won't get us featured.

Serverless Computing can significantly reduce operational costs for businesses by eliminating the need for purchasing, configuring, and maintaining server infrastructure. The serverless model provides cost savings by charging only for the actual usage of computing resources instead of charging for unused capacity.

Serverless architecture offers improved scalability, as cloud providers automatically allocate and scale resources based on the application workload, ensuring optimal resource utilization. Your Serverless function is performant and scalable from 1 user to whatever is your theoretical maximum, obviously there are constraints and design decisions that will impact this but for most use cases scaling is infinite.

The serverless environment supports best practice design techniques. This one is an argument starter, but in my opinion Serverless forces developers to follow design patterns, principles and practices that are scalable, fault-tolerant, and maintainable.

Serverless Computing environments also allow for specific inclusion of security controls such as identity and access management, encryption, and secure coding practices, that protect serverless applications from security threats.

Condensing these down to what matters gives us ....

Serverless Computing reduces costs, provides a scalable and extensible architecture with increased security on a platform that is scalable, high performing and easy to administer.

So were now at the point where someone is yelling "where's the beef".


What's in it for me?

I've contemplated this from different ways and I keep coming back to, it's all about the money.

We can discuss how application development on Serverless reduces operating and infrastructure management costs, increases developer productivity, can be run in public cloud and private clouds, reduces vendor lock-in, increases interoperability to micro-services and a host of other benefits but how much money can I save?

So to address your Elevator rider ... how about we go with the statement that actually works and as any Sales person will tell you - put the hook right up front ...

How would you like us to save 70% of your application hosting costs?

Feel free to reach out to me (mark at appgenie) anytime to discuss Serverless Computing and how Function as a service (FaaS) can save your organisation money while increasing performance, reliability and security.