<p>Beside simply explaining the definition of the term Serverless, the origins of the term and it’s history give some insight as well into its meaning. The concept originated with the <a href="https://aws.amazon.com/blogs/compute/getting-started-with-jaws-on-amazon-web-services/" rel="noreferrer">JAWS</a> <a href="https://en.wikipedia.org/wiki/Serverless_Framework" rel="noreferrer">framework</a> by <a href="https://aws.amazon.com/heroes/usa/austen-collins/" rel="noreferrer">Austen Collins</a>, which got  <a href="https://serverlesscode.com/post/serverless-formerly-jaws/" rel="noreferrer">later renamed</a> as <a href="https://github.com/serverless/serverless" rel="noreferrer">Serverless</a>. I've learned of it first in AWS re:Invent 2015 <a href="https://www.youtube.com/watch?v=D_U6luQ6I90&amp;ab_channel=AmazonWebServices" rel="noreferrer">session</a>, which can be helped to date the concept. This is what actually coined the term Serverless, which then spread quickly to other cloud systems: </p>

<ul>
<li>Amazon AWS <a href="https://aws.amazon.com/blogs/aws/run-code-cloud/" rel="noreferrer">introduced</a> new service called <a href="https://aws.amazon.com/lambda/details/" rel="noreferrer">Lambda</a> in November 2014.  </li>
<li>Google Cloud <a href="http://venturebeat.com/2016/02/09/google-has-quietly-launched-its-answer-to-aws-lambda/" rel="noreferrer">has quietly launched</a> its <a href="https://cloud.google.com/functions/" rel="noreferrer">Functions</a> in February 2016. </li>
<li>Microsoft Azure <a href="https://serifandsemaphore.io/azure-cloud-functions-vs-aws-lambda-caf8a90605dd#.thaq93inr" rel="noreferrer">quickly followed</a> with <a href="https://azure.microsoft.com/en-us/services/functions/" rel="noreferrer">Functions</a> on <a href="https://azure.microsoft.com/en-us/blog/introducing-azure-functions/" rel="noreferrer">last day of March</a> 2016.</li>
</ul>

CC BY-SA 3.0
2017-03-17T16:44:51.297Z
2017-03-17T17:06:29.163Z
2017-03-17T17:06:29.163Z
Jiri Klouda
<p>Martin Fowler has a good overview:<br>
<a href="https://martinfowler.com/articles/serverless.html" rel="noreferrer">https://martinfowler.com/articles/serverless.html</a></p>

<p><strong>TL;DR</strong><br>
"Serverless" describes application development and architecture that designs applications in which the infrastructure is <em>ephemeral</em>, meaning that they tend to be container-based and can "come and go" based on a dynamic scaling mechanism.  This prescribes the use of stateless architectures that depend on distributed technologies (such as key/value stores.)</p>

CC BY-SA 3.0
2017-03-13T20:28:53.770Z
Not only ephemeral, but abstracted away completely. In many modern non-serverless setups (such as AWS EC2 ASGs), the infrastructure is also ephemeral; an EC2 instance in an ASG can be terminated at any time.
Adrian
CC BY-SA 3.0
2017-02-28T17:50:01.613Z
2017-02-28T17:50:01.613Z
Dave Swersky
<p>'Serverless', like many things in our space, is becoming an overloaded term.. but generally what it means is "Functionally, Our architecture does not depend on the provisioning or ongoing maintenance of a server"</p>

<p>The first instance that comes to mind is a single page javascript app, that uses local storage, and is stored on something like Amazon S# or Github Pages (or any static site - those are just common examples).  Imagine something like a 'todo' or 'getting things done'-style application that runs entirely in your browser.  Your browser hits a service like S3 to download the code, and the items you store are all stored in local storage in your browser.  There is no server you maintain for this.</p>

<p>The second instance, and is a bit more complicated (and also the one that popularized the term 'serverless'), uses a service like AWS Lambda.  Let me explain this by presenting the problem it solves:</p>

<p>Many times in my career I've solved a business problem for a client with little more than some ruby code that performed a periodic extract, transform, and load (typically written as a rake task).  Once solved, I'd typically automate it with cron.  Then the problem becomes 'where do I host this thing that runs once every hour?'  For some clients, we'd set up a server in their existing infrastructure.  For others, we'd set up an EC2 instance, even though it was idle 99% of the time.  In either of those circumstances, there is a server that requires provisioning, patching, monitoring, updating, etc.</p>

<p>With Amazon Lambda, I can take that rake task and run it on their service as a pure 'function'.  I can even schedule it.  No longer would that client need a piece of infrastructure for such a simple once-an-hour thing.</p>

<p>With 'serverless' there is still a server, just like with 'cloud' there is still a computer.  There is just a level of abstraction on top of it that takes some of the environmental responsibilities for you.</p>

CC BY-SA 3.0
2017-11-14T03:45:15.350Z
My upvote for the real life example of once in an hour job that typically needed an EC2. Now you just need a Lambda function !
HopeKing
CC BY-SA 3.0
2017-03-02T18:29:36.317Z
2017-03-02T18:29:36.317Z
David Bock
<p>All great answers already. I was going through the blog post <a href="http://highscalability.com/blog/2017/1/30/part-1-of-thinking-serverlesshow-new-approaches-address-mode.html" rel="noreferrer">Thinking Serverless — How New Approaches Address Modern Data Processing Needs</a> in HighScalability, where I've come across this excellent explanation of what serverless means:</p>

<blockquote>
  <p>The phrase “serverless” doesn’t mean servers are no longer involved.
  It simply means that developers no longer have to think that much
  about them. Computing resources get used as services without having to
  manage around physical capacities or limits. Service providers
  increasingly take on the responsibility of managing servers, data
  stores and other infrastructure resources…Going serverless lets
  developers shift their focus from the server level to the task level.
  Serverless solutions let developers focus on what their application or
  system needs to do by taking away the complexity of the backend
  infrastructure.</p>
</blockquote>

<p>And, one more learning from my personal experience in building serverless infrastructure is:</p>

<ul>
<li>Serverless data pipelines don't really need to be real-time only. One can build efficient batch-processing serverless pipelines via AWS's CloudWatch alert mechanisms, which allows one to monitor the tools and raise alerts for (AWS)Lambda to compute. </li>
</ul>

<p>Like for example: Store the files in an AWS SQS queue. Once the number of messages in the queue reaches 10, fire an event to Lambda.</p>

CC BY-SA 3.0
2017-03-13T13:15:50.943Z
2017-03-20T07:54:41.477Z
2017-03-20T07:54:41.477Z
Dawny33
<p>Wikipedia's article on <a href="https://en.wikipedia.org/wiki/Serverless_computing" rel="noreferrer">serverless computing</a> provides a decent introduction to the topic:</p>

<blockquote>
  <p>Serverless computing, also known as function as a service (FaaS), is a cloud computing code execution model in which the cloud provider fully manages starting and stopping of a function's container platform as a service (PaaS) as necessary to serve requests, and requests are billed by an abstract measure of the resources required to satisfy the request, rather than per virtual machine, per hour.</p>
</blockquote>

<p>The idea is that a developer <strong>shouldn't need to care about the server infrastructure at all</strong>. The cloud provider manages the physical servers, the operating system used and all the traditional difficulties involved with running a server.</p>

<p>Serverless computing changes your architecture from thinking about what <strong>machines</strong> are doing to what <strong>functions</strong> are doing. <a href="https://aws.amazon.com/lambda/" rel="noreferrer">AWS Lambda</a> is the example that comes to mind - you pay for and run <strong>functions</strong>, without any mention about what type of physical infrastructure is running below. There are also competing serverless hosts such as <a href="https://azure.microsoft.com/en-gb/services/functions/" rel="noreferrer">Azure Functions</a> (or you can simply search if you're not interested in either of those).</p>

<p>There are quite a few advantages to serverless (although you do need to write in a slightly different way than you're used to in some cases, because it's a totally different architecture):</p>

<ul>
<li><p>Scalability essentially comes for free - because you're just paying to run a function, the cloud provider can easily dedicate more hardware as needed to run your code. You can also potentially scale as demand rises, rather than paying a fixed rate whether your application is used once or a million times.</p></li>
<li><p>The server software and hardware no longer needs to be managed by a developer - the cloud provider handles that. If you've ever used something like Arch on a server, you'll know how easy it is to wipe out a critical package and break everything!</p></li>
<li><p>It frees up developers to focus on what they're good at - <strong>code</strong>. Most developers probably won't be great at both server infrastructure <strong>and</strong> programming - serverless just takes one problem out of the equation.</p></li>
</ul>

CC BY-SA 4.0
2019-05-03T10:10:18.397Z
"shouldn't need to care about the server infrastructure at all".  
That's a really Good Thing because, in my experience, far too many of them already /don't/, with disastrous consequences!
Phill  W.
CC BY-SA 3.0
2017-02-28T17:55:54.430Z
2017-03-02T18:05:18.760Z
2017-03-02T18:05:18.760Z
Aurora0001
<p>All the cloud providers are marketing their "serverless" solutions. The promise is that serverless is going to replace the way developers are currently develop their software, and operations manage it in production.</p>

<p>What is "serverless"?
Where can one learn more about it, and how it can be used today?</p>

CC BY-SA 4.0
2019-05-02T23:13:55.510Z
serverless computing is "server less" as a "chicken burger" is vegan as you didn't personally meet the chicken
Sai Addanki
<terminology><serverless>
What is Serverless?
Evgeny Zislis
# What is Serverless?

(Asked by: username_0 on 2017-02-28)

All the cloud providers are marketing their "serverless" solutions. The promise is that serverless is going to replace the way developers are currently develop their software, and operations manage it in production.

What is "serverless"?
Where can one learn more about it, and how it can be used today?

**Tags:** terminology, serverless

> **Comments:**
> **username_1**: serverless computing is "server less" as a "chicken burger" is vegan as you didn't personally meet the chicken  

---

## 5 answers

### Answer by username_8 on 2017-02-28. Score: 46 | Accepted answer

Wikipedia's article on [serverless computing](https://en.wikipedia.org/wiki/Serverless_computing) provides a decent introduction to the topic:

> Serverless computing, also known as function as a service (FaaS), is a cloud computing code execution model in which the cloud provider fully manages starting and stopping of a function's container platform as a service (PaaS) as necessary to serve requests, and requests are billed by an abstract measure of the resources required to satisfy the request, rather than per virtual machine, per hour.

The idea is that a developer **shouldn't need to care about the server infrastructure at all**. The cloud provider manages the physical servers, the operating system used and all the traditional difficulties involved with running a server.

Serverless computing changes your architecture from thinking about what **machines** are doing to what **functions** are doing. [AWS Lambda](https://aws.amazon.com/lambda/) is the example that comes to mind - you pay for and run **functions**, without any mention about what type of physical infrastructure is running below. There are also competing serverless hosts such as [Azure Functions](https://azure.microsoft.com/en-gb/services/functions/) (or you can simply search if you're not interested in either of those).

There are quite a few advantages to serverless (although you do need to write in a slightly different way than you're used to in some cases, because it's a totally different architecture):

* Scalability essentially comes for free - because you're just paying to run a function, the cloud provider can easily dedicate more hardware as needed to run your code. You can also potentially scale as demand rises, rather than paying a fixed rate whether your application is used once or a million times.
* The server software and hardware no longer needs to be managed by a developer - the cloud provider handles that. If you've ever used something like Arch on a server, you'll know how easy it is to wipe out a critical package and break everything!
* It frees up developers to focus on what they're good at - **code**. Most developers probably won't be great at both server infrastructure **and** programming - serverless just takes one problem out of the equation.

> **Comments:**
> **username_9**: "shouldn't need to care about the server infrastructure at all".   That's a really Good Thing because, in my experience, far too many of them already /don't/, with disastrous consequences!  

---

### Answer by username_3 on 2017-02-28. Score: 16

Martin Fowler has a good overview:  
<https://martinfowler.com/articles/serverless.html>

**TL;DR**  
"Serverless" describes application development and architecture that designs applications in which the infrastructure is *ephemeral*, meaning that they tend to be container-based and can "come and go" based on a dynamic scaling mechanism. This prescribes the use of stateless architectures that depend on distributed technologies (such as key/value stores.)

> **Comments:**
> **username_4**: Not only ephemeral, but abstracted away completely. In many modern non-serverless setups (such as AWS EC2 ASGs), the infrastructure is also ephemeral; an EC2 instance in an ASG can be terminated at any time.  

---

### Answer by username_5 on 2017-03-02. Score: 14

'Serverless', like many things in our space, is becoming an overloaded term.. but generally what it means is "Functionally, Our architecture does not depend on the provisioning or ongoing maintenance of a server"

The first instance that comes to mind is a single page javascript app, that uses local storage, and is stored on something like Amazon S# or Github Pages (or any static site - those are just common examples). Imagine something like a 'todo' or 'getting things done'-style application that runs entirely in your browser. Your browser hits a service like S3 to download the code, and the items you store are all stored in local storage in your browser. There is no server you maintain for this.

The second instance, and is a bit more complicated (and also the one that popularized the term 'serverless'), uses a service like AWS Lambda. Let me explain this by presenting the problem it solves:

Many times in my career I've solved a business problem for a client with little more than some ruby code that performed a periodic extract, transform, and load (typically written as a rake task). Once solved, I'd typically automate it with cron. Then the problem becomes 'where do I host this thing that runs once every hour?' For some clients, we'd set up a server in their existing infrastructure. For others, we'd set up an EC2 instance, even though it was idle 99% of the time. In either of those circumstances, there is a server that requires provisioning, patching, monitoring, updating, etc.

With Amazon Lambda, I can take that rake task and run it on their service as a pure 'function'. I can even schedule it. No longer would that client need a piece of infrastructure for such a simple once-an-hour thing.

With 'serverless' there is still a server, just like with 'cloud' there is still a computer. There is just a level of abstraction on top of it that takes some of the environmental responsibilities for you.

> **Comments:**
> **username_6**: My upvote for the real life example of once in an hour job that typically needed an EC2. Now you just need a Lambda function !  

---

### Answer by username_7 on 2017-03-13. Score: 12

All great answers already. I was going through the blog post [Thinking Serverless — How New Approaches Address Modern Data Processing Needs](http://highscalability.com/blog/2017/1/30/part-1-of-thinking-serverlesshow-new-approaches-address-mode.html) in HighScalability, where I've come across this excellent explanation of what serverless means:

> The phrase “serverless” doesn’t mean servers are no longer involved.
> It simply means that developers no longer have to think that much
> about them. Computing resources get used as services without having to
> manage around physical capacities or limits. Service providers
> increasingly take on the responsibility of managing servers, data
> stores and other infrastructure resources…Going serverless lets
> developers shift their focus from the server level to the task level.
> Serverless solutions let developers focus on what their application or
> system needs to do by taking away the complexity of the backend
> infrastructure.

And, one more learning from my personal experience in building serverless infrastructure is:

* Serverless data pipelines don't really need to be real-time only. One can build efficient batch-processing serverless pipelines via AWS's CloudWatch alert mechanisms, which allows one to monitor the tools and raise alerts for (AWS)Lambda to compute.

Like for example: Store the files in an AWS SQS queue. Once the number of messages in the queue reaches 10, fire an event to Lambda.


---

### Answer by username_2 on 2017-03-17. Score: 7

Beside simply explaining the definition of the term Serverless, the origins of the term and it’s history give some insight as well into its meaning. The concept originated with the [JAWS](https://aws.amazon.com/blogs/compute/getting-started-with-jaws-on-amazon-web-services/) [framework](https://en.wikipedia.org/wiki/Serverless_Framework) by [Austen Collins](https://aws.amazon.com/heroes/usa/austen-collins/), which got [later renamed](https://serverlesscode.com/post/serverless-formerly-jaws/) as [Serverless](https://github.com/serverless/serverless). I've learned of it first in AWS re:Invent 2015 [session](https://www.youtube.com/watch?v=D_U6luQ6I90&ab_channel=AmazonWebServices), which can be helped to date the concept. This is what actually coined the term Serverless, which then spread quickly to other cloud systems:

* Amazon AWS [introduced](https://aws.amazon.com/blogs/aws/run-code-cloud/) new service called [Lambda](https://aws.amazon.com/lambda/details/) in November 2014.
* Google Cloud [has quietly launched](http://venturebeat.com/2016/02/09/google-has-quietly-launched-its-answer-to-aws-lambda/) its [Functions](https://cloud.google.com/functions/) in February 2016.
* Microsoft Azure [quickly followed](https://serifandsemaphore.io/azure-cloud-functions-vs-aws-lambda-caf8a90605dd#.thaq93inr) with [Functions](https://azure.microsoft.com/en-us/services/functions/) on [last day of March](https://azure.microsoft.com/en-us/blog/introducing-azure-functions/) 2016.


---

