42

Wikipedia's article on 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 ...


15

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 ...


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 ...


12

"Serverless" mostly just means you've got relatively simple microservices, generally just a little webapp or a single function that is automatically connected to a REST frontend. The same concepts apply as you would use for a more traditional web services: usually some mix of remote syslog and ElasticSearch writers. Networked or remote syslog has been ...


10

All great answers already. I was going through the blog post Thinking Serverless — How New Approaches Address Modern Data Processing Needs 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 ...


7

It depends on what you're trying to avoid. If you are trying to avoid any service interuption of something which is a genuinely critical service (I'm thinking in terms of "people will die if my API call is not appropriately served") the you need to just budget for the huge inefficiencies that come from vastly over provisioning dedicated resources. And yes ...


6

There are a couple of elements to consider here: It is valuable to have the capability to maintain configuration with a separate release cadence from the code that is being configured. Doing so encourages rotation of credentials in an automated manner, do it regularly make it painless. It is entirely reasonable from an "Infrastructure as Code" point of ...


6

This answer is more about scalability considerations - if the number of workers can be high and/or multiple of them can produce logs at high rate at the same time. Yes, using multiple logfiles simultaneously is a good practice. Attempting to combine into a single logfile logs from multiple workers in real time will raise problems: using blocking mechanims ...


6

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 framework by Austen Collins, which got later renamed as Serverless. I've learned of it first in AWS re:Invent 2015 session, which can be helped to date the concept. This is ...


5

One way of preventing these retry storms is by using backoff mechanisms. From the Implement backoff on retry section of Google App Engine Designing for Scale guide: Your code can retry on failure, whether calling a service such as Cloud Datastore or an external service using URL Fetch or the Socket API. In these cases, you should always implement a ...


5

Use Step Functions. They allow you to coordinate lambda functions and have an inbuilt wait state


5

What is the future of DevOps in the age of serverless? Can you see less and less DevOps roles being available in the age of serverless? I personally dislike the DevOps Engineer role as DevOps is a culture! What you probably mean is whether Operations or System Engineers will be phased out. Like the other answers indicate, these activities will still be ...


5

Disclosure: I work as a devops coach at a global company with over a thousand developers. TL;DR It depends whether you think devops is a particular set of skills and tools, or whether you think devops is a culture and way of working. It you look at the “what is devops” questions and answers, in one interesting answer here, they give some insights as to ...


5

Also serverless needs some infrastructure and for that you also need software components to develop and rollout. Beyond yet another website or application server I'd also think of energing advanced ecosystems related to: Internet of things - embedded systems and edge servers Artificial intelligence and data engineering in distributed systems. Could be ...


4

In your approach I see a few scalability problems - I'm judging from a Google App Engine (GAE) context, where scalability is achieved via breakdown of the work in small tasks/work items and strict limitation of the response time for a task execution: you're duplicating some piece of functionality: both scripts need to parse the same page, leading to your ...


4

DevOps roles will probably be around for some time. Most enterprises and start ups have different needs, server-less is more of an indication of “developers need less focus on the resources and infrastructure for applications” in the sense of applications healing themselves, developers would need to write functions, these functions would often need to change ...


2

From your comment above: The main difficult is launch the second lambda with a delay from the first one and without doing a pooling constantly As using SQS queues are an option for you, you can make CloudWatch alarms which can monitor for activity in the queues, and link them up with SNS, which can be used as a trigger for LambdaB. So, your flow can ...


2

In my point of view, you can have a future gain separating the function into multiple parts because it will allow to use another combining system/upload/whatever as input to the processing part and another system to process the images later. My personal rule of thumb for separation is the main concern: Step 1 is giving the input, it's already somethhing it ...


2

The 200 limit can be raised, however this is a grinding process that can take months. You work through customer support to get "elevated" as a client to more AWS privileges. Resources: - Worked under a company that specifically ran into this problem, took 8 months before that limit was lifted.


1

According to this GitHub readme OpenWhisk is a serverless event-based programming service. In order to get an idea how to setup this tool on a cluster one could run the following code that is defined in the readme: # Clone openwhisk git clone --depth=1 https://github.com/apache/incubator-openwhisk.git openwhisk # Change directory to tools/vagrant cd ...


1

I am using lambda in response to objects appearing on S3 buckets. For me in my particular use case, there are around 600 triggers a day. I have written our lambda functions to use their stdout as their log file, writing all key events to standard out in a semi-structured textual sentence mixed with key/value pairs for data values, and then feed the ...


1

I typically treat secrets as configuration data in scope. As such, it does not live alongside the code as they are handled by different release schedules and processes. A separate git repo, KMS, dynamo, s3, or inside your config management system (chef-vault/encrypted database in the chef world) are good places. Basically, you don't want to have to build ...


Only top voted, non community-wiki answers of a minimum length are eligible