Skip to content

Instantly share code, notes, and snippets.

@dokuboyejo
Last active March 20, 2018 00:53
Show Gist options
  • Save dokuboyejo/23885de13afb2a25607552a74a641610 to your computer and use it in GitHub Desktop.
Save dokuboyejo/23885de13afb2a25607552a74a641610 to your computer and use it in GitHub Desktop.
serverless computing

serverless

characteristics

  • weave application behavior together using 3rd party services (Backend as a Service) or code running on stateless ephemeral containers (Function as a service)
  • client-side control flows and dynamic content generation replaces server-side controller
  • ubiquotous applications (such as mobile or iot) coordinate interaction between the various services by making remote api calls
  • generate dynamic content using client-side ui frameworks

use-cases

  • stateless application
  • functional programming models

comparing server-based vs serverless

  • major difference lies in the work between the controller and infrastructure
  • long lived server-based, typically hosts an application code that implements certain business logic, performs required processing as long as the application stays alive
  • short lived serverless, activates set of function(s) when a request arrives, process the request and becomes dormant as soon as the activity dies down. Here, application code lives in a managed environment (which handles code management, orchestration and scaling) such as aws lambda, openfaas, google cloud functionss, azure function, ibm openmix, apache openwhisk

benefits

  • decrease in operational cost (per-request pricing)
  • could be easier to operate and maintain
  • shifts responsibility of scaling application and infrastructure (incl security, availability and performance) to 3rd party services

trade-offs

  • huge dependencies on 3rd party services
  • makes it harder to develop and test application locally due to huge dependencies on 3rd party services
  • overhead of splitting a single app into fabric of services
  • sometimes requires specialised skills
  • might introduce unplanned latency
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment