The internet has propelled innovation in computing in leaps and bounds over the past 3 decades. The technology architectures businesses use has also evolved exponentially. When the businesses first started to launch their internet presents, they initially started to build their own data centres housing their onw physical servers. As time moved on, this philosophy morphed into renting servers in purpose built data centers, this gradually evolved into renting virtual machines and then into what is termed Cloud Computing, which can loosely be defined as renting virtual computing resources which are hosted and managed by third parties, which you can still administer yourself.
Cloud Computing has once again evolved into the concept of Serverless Computing, which can now loosely be defined as you are actually just renting an application service. You don't need to worry about the server or resource it is hosted on, all you're interested in is making use of an application to service to store and host your data, a third party take care of all the computing resources.
Serverless is an approach to computing which offloads responsibility for common infrastructure management tasks i.e scaling, scheduling, patching, provisioning, etc. to third party cloud providers and tools, allowing engineers to focus their time and effort on the business logic specific to their applications or process.
Serverless does not mean that there are no physical servers or computing resources, it just means that your organisation literally does not need to concern itself with them, it's all being managed and taken care of by a third party.
Serverless computing typically comprises these core attributes:
engineers to focus developing their core business logic.
The core concept behind serverless is to enable organisation to spend more time and money on developing value added services and software and less time worrying about the physical infrastructure.
The serverless computing model provides the following primary benefits:
providers backend services which often result in the user paying for unused space or idle CPU time.
making API calls.
Just like everything else in life, there can also be downsides to the serverless computing model and it may not be the best fit for all computing tasks, the following are some drawbacks you should be aware of when developing with serverless
offering significant cost savings for spiky workloads.
services and architectural models. Deeply integrating with the native managed services of cloud providers is where much of the value of cloud can be found. However, these patterns often represent material lock-in risks that need to be mitigated.
they also sometimes need to start up from zero to serve a new request.
and serverless architectures has only exacerbated the complexity associated with managing these environments carefully.
A few technology offerings are often loosely conflated with the serverless computing;
enabling developers to focus on writing front-end code.
applications from cloud providers.
For the purist, Serverless Computing actually comprises of smaller subsets of the all these offerings, for them serverless computing is primarily focused on service categories, like compute, storage, database, etc. where configuration, management, and billing of servers are invisible to the end user and including an event-driven computing paradigm where application code, or containers, only run in response to events or requests.
Developers are preferring to adopt Serverless Computing models for their applications because of:
to focus on their app instead of the underlying infrastructure.
Serverless architectures are application designs that incorporate third-party “Backend as a Service” (BaaS) services, and/or that include custom code run in managed, ephemeral containers on a “Functions as a Service” (FaaS) platform.