Features of Serverless Cloud Platforms
With the advent of serverless computing, several serverless platforms have become available, precluding the requirement to provision and expose the infrastructure needed on a server-based compute environment.
Let’s look at some of the features to expect in a serverless platform.
Deploying functions as code
In a serverless platform, functions or apps are run or deployed directly, without the need to provision an underlying server platform. The functions could be short code snippets that are run by a user.
When creating an instance of a serverless platform, expect no virtual machines, databases, or storage to get listed on the web console, as these are neither exposed nor accessible to a user.
Running code based on events
Serverless platforms typically include the feature to run code based on an event: If A happens, run code C. Events, and running code based on events, could be linked.
In an event-driven architecture, event-driven microservices are run as event streams. A serverless platform provides orchestration of event-driven distributed applications.
Autoscaling compute resources
The compute resources that are used to run functions or other workloads are scaled automatically based on requirement. Workloads could fluctuate, so the CPU, storage, and memory resources can be scaled, transparent to a user. The autoscaling still needs to be within the resource limits set by a user or inherent to the platform.
High availability
A serverless platform is typically highly available, which implies that it is fault-tolerant to failure. Applications running on a serverless platform don’t need to provision standby infrastructure.
Serverless platforms typically guarantee high availability of applications with a service-level agreement (SLA). For example, a service that guarantees a 99% SLA is expected to be unavailable no more than 14 minutes and 24 seconds a day.
Usability with non-compute platforms
A serverless platform, though initially developed to run code, could also be a non-compute platform, such as a database. A serverless database would start up, scale, and shut down based on application requirements all automatically, without a user having to provision and manage the database infrastructure.
Serverless could also be used for a storage service or a file system. The common feature is that a user does not provision, manage, and scale the underlying infrastructure and load balancing.
Integration with other services
A serverless platform would typically not just be for a single service; it's usually integrated with several cloud services such as data analytics, machine learning, messaging, and storage.
Language independence
A serverless platform typically operates independent of language, runtime, framework, or library. You can develop code in your favorite language and run it on your favorite framework, as most commonly used languages and frameworks are supported. Hybrid and multi-cloud environments may also be supported.
Support for containers
With Docker and container as a service (CaaS) becoming the de facto standard for application development, serverless platforms support deploying applications as containers.
DevOps coordination
In modern, complex applications, development and operations coordinate using what has come to be called DevOps. Serverless platforms support DevOps with continuous integration and continuous delivery (CI/CD) pipelines. Scheduling, monitoring, and logging also may be automated.