Why FaaS (aka. ServerLESS) is having a bold future
The more cloud as-a-service model advances, it brings efficiency in running business applications. As you read this article, I’d guess you have seen several discussed technologies that would invite for transforming underlying apps to serverless.
What ServerLESS means?
- No Servers to provision
- Developed code scales on its usage
- When idle it is FREE (Real pay-per-use)
- Provides HA, DR when designed properly.
Serverless computing has emerged into a next branch in “As-a-Service” delivery model in Cloud. And the cloud providers are using the corrected terminology i.e. “functions” and ignoring Serverless term to their products.
Yes, the right term would be FaaS — Function as a service, not ServerLESS. Let me explain it.
- When Unix emerged as an OS in the market, we saw HP-UX, AIX, Linux etc. — The “UX” suffixed
- When VM Technology emerged in the market, we saw VMware, kVM, zVM etc products — The “VM” prefix/suffixed
- When Container Technology emerged in the market, we saw AWS ECS (Elastic Container Service), Azure Container Service, ICP etc products
When Serverless emerged in the market, we saw AWS Lambda, GCP, Azure functions, OpenFaaS products not serverless terms. None of the Cloud providers added ServerLESS to their products. They are a clear term “Serverless” is a misleading one.
While AWS Lambda was the first to debut in 2014, a list of FaaS providers started increasing. Major providers today are AWS Lambda, GCP Functions, Microsoft Azure functions and IBM OpenWhisk.
What is FaaS ?
“Function as a service” (FaaS) popularlized with AWS Lambda helps to run a set of programming instructions with a well-defined entry & exit points, having all aspects of execution. These function codes are stateless, however, can read from and write to various “stateful” offerings (SQL, NoSQL, MQ, storages etc).
Though FaaS functions are stateless, they sit above the layer of the compute server to give specific results on the browser/CLI. The developers didn’t require a Full server, VM or even a container to run this ServerLESS. Today that LESS became more and ServerLESS terminology started surfacing is my version of the story :-)
Moreover “serverless computing” is used because the business units or individuals who own the system doesn't have to purchase, rent or provision servers or VM’s for the back-end code to run on.
When ServerLESS?
For decades, Unix/Linux shells are running Unix commands/AWK/SED’s scripts that executes and completes in a given time, which people today showcase the same test cases on AWS Lambda. It is FaaS. It’s proved decades before in an on-prem model.
In today’s scenario, provisioning an infrastructure is taken care by cloud providers, and developers code, deploy in those public clouds. The enterprises run those codes but NOT continuously which ends-up paying ONLY for the time that code runs. Not on procuring infrastructure assets, bidding hosted server or VM’s.
While a VM instance is been called by Lambda is up for 30 seconds. A normal server that is provisioned is up on 24/7, can be idle sometimes, allowing intruders enough time to spam, attack etc.
So when to use ServerLESS?
Run a temporary job that should be called frequently. Take a real-life scenario, where we sweep our floors once in a day. Housekeeping? What IT Infrastructure jobs exists similar to this? If that can be a script, run it with serverless. But serverless in not just limited to this scenario. Can you visualize the reduced cost?
This will soon make enterprises think how effectively use my computing resources. It increases the independence in terms of the technology stack and resources selection choices. Lock-in also gets reduced, though it cant be avoided completely. So accept it, Have a Plan B in place.
Are you able to visualize a clear requirement for “right” Coding/Developer community within the IT Industry?
FaaS — A Developer First scenario.
When not to go Fully Serverless?
Serverless codes are easy to develop and deploy with proper planning in place. Hence it is going to be popular and we will see more & more functions be deployed in production. It’s going to be difficult to manage and control with larger functions in place.
Every company will develop its own FaaS experience. For that, they will need to work closely with several business units in your company and develop a strong strategy. While building your own program, look to the following:
Benefits of FaaS/ServerLESS
- It is Secured
- Scalable to the needs
- Cheaper compared to rest
- Always available with underlying conditions
- Faster development
- Worry Free and Fewer maintenance activities required
Products in FaaS/ServerLESS Space
- AWS Lambda
- OpenLambda (Install anywhere)
- Azure Function
- Google Cloud Functions
- IBM Cloud Functions
- Pivotal Function Service
- TriggerMesh (Multi-cloud serverless platform)
- OpenFAAS (Install anywhere)
- Fn
- OpenWhisk (Install anywhere)
- Firebase
- Fission (Install anywhere)
- Kubeless (Install anywhere)
- Bitnami’s Kuberless (provided by Bitnami)
- Apex
- Nstack
- Nuclio (Install anywhere)
- Oracle Application Express
- PubNub BLOCKS
- Serverless
- Webtask
- Dispatch (Install anywhere)
- Riff (Install anywhere)
- LunchBadger(Install anywhere)
- Gestalt (Install anywhere)
Products offering Security for FaaS/ServerLess
- Alcide
- Aporeto
- Cloudvisory
- Lacework
- Luminate
- Dome9
- Skyhigh
- Protego
- PureSec
FaaS/Serverless Runtimes that I’ve come through
- NodeJS
- Java
- Python
- C# (Microsoft)
- PHP
- Linux Shell
For Developers
- SLAppForge
- Stackery
For Monitoring
- Dashbird
- Epsagon
- IOPipe
Monitoring Solutions in FaaS/ServerLESS Space
Post-development, facilitating Ops team with monitoring capabilities helps to observe the performance of written functions.
- When running in Amazon we can use CloudWatch and X-Ray
- When using Opensource Fn, metrics can be taken from Prometheus+Tools for tracing etc. plenty available for integration, time is the key to integration.
What could be the Future of ServerLESS ?
Today AWS, Azure Functions, Alibaba, GCP lead and are driving the FaaS under public clouds umbrella. Remember that Opensource Serverless Framework supports most of the popular cloud providers and are penetrating faster than other serverless frameworks. But the open source community requires to build strong use cases based on service integration among the multi-cloud, on-premise and private cloud systems.
OpenFaaS is one of the best examples related to this subject. With a fantastic UI, comparable to commercial providers, also comes with a simple CLI which Unix/Linux aspirants love, that has attracted a lot of attention from the community with features like single-click deployments that's fairly easy to Operations team to work with. YAML files will help to get started.
Here I have shared about FaaS, how its onboarding process is easier than before, its costs and highlighted why FaaS to be considered in future work. Security is always important. By being cost-effective and worry-free app development solution, FaaS turns out to be the next industry standard following container technology.
When future offerings and solutions are seen to be based on cloud-native applications, FaaS will certainly have seat and comfortable space for related requirements and would have an important role in every software stack of the future.
Due to this, Enterprises/CTO’s would be influenced by “Build applications” for their specific needs rather than “Buy decisions”. That’s the time when On-premise benefits would also be seen. This is my take.
2018 AWS Announcement Updates
- Bring any language/runtime (C++, Cobol, PHP etc). A new for AWS Lambda — Use Any Programming Language and Share common Components
- Lambda Layers (libraries for common code dependencies )
- Nested apps using SAR(application repository)
- Service integration's for step Functions ( ECS, Fargate, DynamoDB, SNS, SQS,Batch, Glue, SageMaker)
- Web Socket support for API Gateway — Suitable for chat-bot types of to & fro interactive applications
- ALB support for Lambda — A classical serverless use case where we can just add a function to an existing Monolithic web app behind application load balancers (ALB)
- Managed Streaming for Kafka — Kafka, an open source was commercialized by Confluent as Confluent Cloud. By giving this as a managed service, AWS will potentially take away the significant part of confluent market. Question now is why won’t this happen to vendors partnering with AWS ?
Application Deployment with voice command
We can deploy applications with ALEXA which will be picked up from Serverless Application Repository(SAR) and combines all of them by connecting their processes and deploys applications in the run-time. A conversational type deployment with no scripting or programming involved.
The future is clear that it will have more options with most of the back-end’ s ready to consumed.
Show your support
Please clap if you like this article using below button, and also share it in your social network to spread it around with your known friends. I would welcome your tips below in the comments too!