
Cloud Native Development Report
The Cloud Native Development Report provides an in-depth look at how businesses develop cloud-native applications and how low-code platforms, like OutSystems, can help.
Serverless computing is an execution model where developers can write and deploy code without worrying about the infrastructure that it will run on. Instead, a cloud services provider is responsible for managing, provisioning, and maintaining servers and charges using a pay-for-compute model.
The term ‘serverless computing’ is a misnomer, however: while the user doesn’t own a server, servers are obviously used in a cloud computing model to provide machine resources on demand.
Discover the future of cloud-native and learn how low-code can help you achieve your transformation goals.
Access the reportThe key to the serverless model is that the developer creates applications in small pieces of code that are executed by the cloud service provider as functions-as-a-service (FaaS). FaaS provides an event-driven architecture in which functions are triggered by specific events such as HTTP requests, message queues, sensor data, or a mouse click, among others. This model is well-suited to microservices, where the code is already focused on small bits of functions that communicate through APIs.
Serverless computing cloud service providers use a pay-for-compute model that allows customers to rapidly scale applications when they are triggered and stop using them whenever they are no longer needed, immediately scaling them back down and not holding them in volatile memory.
When application resources are no longer needed, they are scaled down to zero and the application ceases running. The customer pays only for the resources they need, and only when they are needed. In this way, customers can have access to large amounts of computing power without owning the responsibility for resource management.
Serverless computing functions are essentially stateless, not retaining any data from earlier instances. Where latency for applications is an issue, companies should evaluate whether serverless computing is the right choice, as it may take seconds for instances to spin up from a cold start.
This stateless existence also means that any persistent data that is necessary for the application must be stored elsewhere. All of the major cloud vendors who offer serverless computing offer databases and storage services that can be triggered by software functions.
Together, serverless computing, microservices, and containers are considered the heart of cloud-native application development technologies.
FaaS is a subset of serverless computing and is essentially the core of it. FaaS allows developers to write code that executes in response to an event. The code only tackles the business logic, not any of the complex infrastructure, which is handled by the cloud service provider.
All of the typical back infrastructure for hosting and launching an application over the internet — the physical hardware, server management, provisioning, web hosting, and virtual machine operating system — are all fully managed instead by the cloud service provider. Under the FaaS model, developers can create modular code to be managed as small pieces of executable code. For fast response, the code can be managed on the network edge.
FaaS offers many compelling attributes, including:
Backend-as-a-service (BaaS) is a service model that includes access to third-party services and apps for activities such as user authentication, push notification, extra encryption, or cloud accessible databases, so that developers can focus on writing the front-end code for applications. All of the backend, behind-the-scenes processes of mobile and web applications are outsourced to the cloud service provider.
In BaaS, serverless functions are usually called through APIs. Unlike serverless computing, BaaS applications are not designed to scale unless the provider offers this ability, and the developer writes the code with this in mind.
Platform-as-a-service (PaaS) is a model where developers rent from the cloud platform provider all the tools needed to develop and deploy applications. This includes the operating systems and necessary middleware. PaaS applications won’t scale automatically unless they are programmed to do so. Unlike with serverless applications, which start instantaneously, PaaS applications must run most of the time in order to be available immediately upon demand.
Pros:
Cons:
With its ability to handle infrequent, unpredictable spikes in demand, and serve asynchronous, stateless apps that need to start immediately, there are a range of use cases that fit serverless computing. These include microservices, mobile backends, stream processing at scale, multimedia processing, batch job scheduled tasks, business logic, data streams, and chatbots.
Amazon Web Services first successfully commercialized serverless computing in 2014. Since then, all major cloud service providers and a number of smaller vendors offer serverless computing platforms.
Among these are AWS Lambda, CloudFlare Workers, Google Cloud Functions, IBM Cloud Functions, and Microsoft Azure Functions.
In our Cloud-Native Development: Ready or Not? Report, we surveyed more than 500 IT professionals and developers to help understand organizations' perceptions, concerns, and implementation plans regarding cloud-native.
Download the report to get a more in-depth look into how businesses deploy cloud-native applications and how low-code platforms, like OutSystems, fit into these strategies successfully.