Developers spend countless hours solving business problems with code. Then comes a never ending part where ops team’s turn to spend countless hours figuring out how to get the code that developers write up and running on whatever computers are available and making sure those computers operate smoothly. Serverless computing represents an enhancement of cloud programe models, abstraction, and platforms, and is a command to the attainment and wide acceptance of cloud technologies.
What is serverless computing?
Serverless computing is a cloud computing implementation model in which the cloud provider deals with machine resources on demand, taking care of the servers on behalf of their customers. It does not hold resources in volatile memory; computing is rather done in short bursts with the results persisted to storage. When an app is not in use, there are no computing resources allocated to the app. It is an execution model for the cloud in which Some of the Common languages supported by serverless runtimes are Java, Python and PHP. Amazon’s AWS Lambda was the first serverless platform and it defined several key dimensions including cost, programming model, deployment, resource limits,security, and monitoring. Supported languages include Node.js, Java, Python, and C programming. Initial versions had limited composability but this has been addressed recently.
1.Google Cloud Functions : It provides basic FaaS functionality to run serverless functions written in Node. The functionality is currently limited but expected to grow in future versions.
2.Microsoft Azure Functions : It provides HTTP webhooks and integration with Azure services to run user provided functions. The platform supports C , Node.js, Python, PHP, bash, or any executable. The runtime code is open-source and available on GitHub under an MIT License. To ease debugging, the Azure Func-tions CLI provides a local development experience for creating, developing, testing,running, and debugging Azure Functions.
3.IBM OpenWhisk provides event-based serverless programming with the ability to chain serverless functions to create composite functions. It supportsNode.js, Java, Swift, Python, as well as arbitrary binaries embedded in a Docker Container. OpenWhisk is available on GitHub under an Apache open source license.Besides There are several serverless projects ranging from open source projects to vendors that find serverless a natural fit for their business. OpenLambda is an open source serverless computing platform. The source code is available in GitHub Lunder an Apache License. It’s paper outlines a number of challenges around performance such as supporting faster function startup time for heterogeneous language runtimes and across a load balanced pool of servers, deployment of large amounts of code, supporting stateful interactions (such as HTTP sessions), etc
4.AWS Lambda: It is a serverless compute service that lets you run code without provisioning or managing servers, creating workload-aware cluster scaling logic, maintaining event integrations, or managing runtimes. With Lambda, you can run code for virtually any type of application or backend service – all with zero administration. Just upload your code as a ZIP file or container image, and Lambda automatically and precisely allocates compute execution power and runs your code based on the incoming request or event, for any scale of traffic. You can set up your code to automatically trigger from over 200 AWS services and SaaS applications or call it directly from any web or mobile app. You can write Lambda functions in your favorite language (Node.js, Python, Go, Java, and more) and use both serverless and container tools, such as AWS SAM or Docker CLI, to build, test, and deploy your functions.
1.No infrastructure to maintain :Serverless computer services, which are small snippets of code meant to execute a single function are executed on pre-existing servers that run functions for countless other customers as well. Since you’re literally using someone else’s computer to execute your serverless functions, there’s no infrastructure to maintain it.
2.No costs : when functions aren’t running As Hacker Noon points out, the costs associated with serverless computing are minimal compared to other cloud services. Access authorization, presence detection, security, image processing, and other costs associated with operating a server, whether physical or virtual, are eliminated under a serverless model. In short, serverless functions can be dirt cheap, and if they aren’t being spun up for use, you aren’t paying anything.
3.Infinitely scalable : Automatic scaling capability of any serverless platform worth investing in is designed to scale based on need. That’s another advantage to serverless computing as there’s never a need to partition a new cloud server or purchase additional computing power for an existing instance. All of that is handled by the serverless computing platform, leaving you with no complication outside of a slightly larger bill for additional computing time.
4.Reduced latency : Cloud flare points out that using serverless functions can greatly reduce the latency experienced by end users. Serverless functions don’t operate from an origin server, so there’s no single location that an end user’s traffic has to be directed to.
5.Reduced software complexity : Serverless computing functions don’t need to take any of that into account–the code just has to be supported by the cloud platform being used. On top of being easier to build, serverless functions require a lot less coding knowledge to build, which opens up development to those at lower skill levels. As cloud native systems inherently scale down as well as up, these systems are known as elastic rather than scalable. Small teams of developers are able to run code themselves without the dependence upon teams of infrastructure and support engineers; more developers are becoming DevOps skilled and distinctions between being a software developer or hardware engineers are blurring.
1.Security issues : server that runs serverless functions runs them for myriad customers, which opens up a lot of security concerns.
2.Vendor lock-in : Building serverless functions on one platform can mean that migrating to another is difficult. Code might need to be re-written, APIs that exist on one platform may not exist. you’re going to invest in a serverless platform, be sure the vendor you’re considering has everything you need because becoming unhappy with your serverless computing provider a few months or years into your service can be a major problem.
3.Debugging is more difficult : Every time a serverless instance spins up it creates a new version of itself, and that means it’s difficult to collect data necessary to debug and fix a serverless function. Debugging serverless functions is possible, but it’s not a simple task, and it can eat up lots of time and resources.
Evolution of the trend towards higher levels of abstractions in cloud programming models, and currently exemplified by the Function as a Service (FaaS) model where developers write small stateless code snippets and allow the platform to man-age the complexities of scalably executing the function in a fault tolerant manner.This seemingly restrictive model nevertheless lends itself well to a number of common distributed application patterns, including compute intensive event processing pipelines. Most of the large cloud computing vendors have released their own serverless platforms.
for more information go to the link below 👇