September 25, 2020
Serverless Computing is a cloud computing execution model in which the cloud provider runs the server, and dynamically manages the allocation of machine resources. Pricing is based on the actual amount of resources consumed by an application, rather than on pre-purchased unit of capacity.
A serverless app can simply be a couple of lambda functions to accomplish some tasks or an entire back end composed of hundreds of lambda functions. Serverless supports all runtimes offered within the cloud provide chosen.
Serverless is developed by Austen Collins and maintained by a full-time team. Microsoft, Amazon, and Google are the top brands to provide serverless computing services. Here are a few examples of Serverless Computing technologies:
Amazon Lambda: Amazon Lambda is event-driven, serverless computing platform provided by Amazon as a part of Amazon web service. It is a computing service that runs code in response to events and automatically manages the computing resources required by that code.
The purpose of Lambda, as compared to AWS EC2, is to simplify building smaller, and on-demand applications that is responsive to the event and new information.
AWS targets starting a Lambda instance within a millisecond of an event.
AWS lambda support securely running native Linux executables via calling out from a supported run time such as Node.js
AWS lambda let you run without managing server. You can run code for virtually any type of application. You just need to upload your code and AWS lambda takes care of everything required and run and scale your code with high availability.
AWS Lambda Use Cases:
- Data Processing: AWS lambda to execute code in response to a trigger such as changes in data, shifts in system state, or actions by user’s lambda cab be directly triggered by AWS services such as S3, DynamoDB, Kinesis, SNS, and CloudWatch, can connect to existing EFS file system, or it can be orchestrated into workflows by AWS step functions. This allows you to build a variety of real-time serverless data operating system.
- Real-time File Processing: Amazon S3 to trigger AWS Lambda to process data immediately after an upload. You can also connect to an existing amazon EFS file system directly, which enables massively parallel shared access for large scale file processing. You can use lambda to thumbnail images, transcode videos, index file process logs, validate content, and aggregate and filter data in real-time.
- Real-time stream Processing: AWS lambda and amazon kinesis to process real-time streaming data for application activity tracking, transaction order processing, click stream analysis, long filtering, indexing, social media analysis, and IoT device telemetry and metering.
- Machine Learning: AWS lambda to preprocess data before feeding it to machine learning model. With lambda access to EFS, you can also serve your model for prediction at scale without having to provision or manage any infrastructure.
- Backends: By combining AWS Lambda with other AWS services, a developer can build a powerful web application that automatically scale up and down and run in a highly available configuration across multiple data centers. With zero administrative effort required for scalability, backups, or multi-data centers redundancy. You can build serverless backends using AWS lambda web mobile, IoT, and API request.
- No Server to Manage: AWS lambda automatically runs your code without requiring you to provision or manage servers. Just write the code and upload it to Lambda.
- Continuous Scaling: AWS lambda automatically scales your application by running code in response to each trigger. Your code runs in a parallel and process each trigger individually, scaling, precisely with the size of work load.
- Sub second metering: With AWS lambda, you are charged for every 100ms your code executes, and the number of times your code is triggered. You pay only for the compute time you consume.
- Consistent Performance: With AWS lambda you can optimize your coed execution time by choosing the right memory size for your function. You can also enable provisioned concurrency to keep your function initialized and hype ready to respond within double digit milliseconds.
- Cost: Serverless can be more cost-effective than renting or purchasing a fixed quantity of servers, which generally involves significant periods of underutilization or idle time.
- Elasticity vs scalability: A serverless architecture means that developers and operators do not need to spend time setting up tunning autoscaling policies or systems; the cloud provider is responsible for scaling the capacity to the demand.
- Performance: Infrequently used serverless code may suffer from greater response latency than code that is continuously running on a dedicated server, virtual Machine, or container.
- Resource limits: Serverless computing is not suited to some computing workloads, such as high-performance computing, because of the resource limits imposed by cloud providers and also because it would likely be cheaper to bulk provision the number of servers believed to be required at any given point in time.
- Monitoring and Debugging: Diagnosing performance or excessive resource usage problems with serverless code may be more difficult than with the traditional code.
There are few more companies to provide like Google Cloud Function, Microsoft Azure Functions, IBM Open Whisk, Alibaba function compute, etc.
There are many testimonials to use serverless computing Netflix, code pen, Zalora, Coca-Cola, Nordstrom, etc.
You can also visit the developer community of Amazon Lambda, Microsoft Azure Function, or Google cloud function to more about price, features, and latest updates.
For 5+ years, we are reliable service providers to our customers with the essential goal of consistently delivering quality. Our strength lies in shared ideas and returns to the community.