Serverless computing: Difference between revisions

Content deleted Content added
Creating
 
BG19bot (talk | contribs)
m WP:CHECKWIKI error fix for #61. Punctuation goes before References. Do general fixes if a problem exists. -
Line 8:
 
== History ==
[[Amazon Lambda|AWS Lamdba]], introduced by Amazon in November 2014,<ref name='techcrunch-lambda-launch'>{{cite web|url=https://techcrunch.com/2014/11/13/amazon-launches-lambda-an-event-driven-compute-service/|title=Amazon Launches Lambda, An Event-Driven Compute Service|date=13 Nov 2014|accessdate=10 July 2016|last=Miller|first=Ron|website=[[TechCrunch]]}}</ref> was the first provider considered to have a serverless offering. AWS Lambda initially launched with [[Node.js]] as the only runtime,<ref name='techcrunch-lambda-launch'/>, but {{asof|2016|lc=1}} it now officially supports [[Python (programming language)|Python]] and [[Java (programming language)|Java]], and other languages such as [[Haskell (programming language)|Haskell]] can also be used by using Node.js as an invoker.<ref name='github-haskell-on-lambda'>{{cite web|url=https://github.com/abailly/aws-lambda-haskell|title=abailly/aws-lambda-haskell - Running Haskell code on AWS Lambda|website=[[GitHub]]|last=Bailly|first=Arnaud|date=14 June 2016|accessdate=10 July 2016}}</ref>
 
Google has released an alpha version of its serverless platform, which is called Google Cloud Functions,<ref name='vb-gcf'>{{cite web|url=http://venturebeat.com/2016/02/09/google-has-quietly-launched-its-answer-to-aws-lambda/|title=Google has quietly launched its answer to AWS Lambda|date=9 February 2016|accessdate=10 July 2016|last=Novet|first=Jordan|website=[[VentureBeat]]}}</ref> and supports Node.js.<ref name='forbes-gcf'>{{cite web|url=http://www.forbes.com/sites/janakirammsv/2016/02/09/google-brings-serverless-computing-to-its-cloud-platform/#5391a66525b8|title=Google Brings Serverless Computing To Its Cloud Platform|date=9 February 2016|accessdate=10 July 2016|last=MSV|first=Janakiram}}</ref>
Line 15:
 
== Advantages ==
 
=== Cost ===
Serverless computing can be more cost-efficient just in terms of computing resources, than renting or purchasing a fixed quantity of servers, which generally involves periods of underutilisation or non-use.<ref name='techcrunch-lambda'/> It can even be more cost-efficient than provisioning an [[autoscaling|autoscaling group]], because even autoscaling groups are typically designed to have underutilisation to allow time for new instances to start up.
Line 24 ⟶ 25:
 
== Disadvantages ==
 
=== Performance ===
Infrequently-used serverless code may suffer from greater response [[latency (engineering)|latency]] than code that is continuously running on a dedicated server, virtual machine, or container. This is because, unlike with an autoscaling, the cloud provider typically "spins down" the serverless code completely when not in use. This means that if the runtime in use{{spaced en dash}} for example, the [[Java (programming language)|Java]] runtime, in the case of Java code{{spaced en dash}} requires a significant amount of time to start up, that will introduce latency into the request handling the next time a request is made to that piece of code. However, not all code is latency-sensitive - for example, [[batch processing]] operations run by [[cron job]]s might not be significantly affected by small, infrequent latencies such as this.
Line 31 ⟶ 33:
 
=== Monitoring and debugging ===
Diagnosing performance or excessive resource usage problems with serverless code may be more challenging than with traditional server code, because although entire functions can be timed,<ref name='lambda-api-gateway'>{{cite web|url=http://www.forbes.com/sites/janakirammsv/2015/07/16/paas-vendors-watch-out-amazon-is-all-set-to-disrupt-the-market/|title=PaaS Vendors, Watch Out! Amazon Is All Set To Disrupt the Market|last=MSV|first=Janakiram|date=16 July 2015|accessdate=10 July 2016}}</ref>, there is no ability to dig into more detail and attach [[profiling (computer programming)|profilers]], [[debugger]]s or [[Application Performance Management|APM]] tools - and the environment in which the code runs is typically not [[open source]], so its performance characteristics cannot be precisely replicated in a [[Deployment_environmentDeployment environment#Development|local environment]].
 
== See also ==