Serverless computing: Difference between revisions

Content deleted Content added
OAbot (talk | contribs)
m Open access bot: arxiv updated in citation with #oabot.
Removed unreliable sources and their content. Added definition from a reliable source.
Line 1:
{{Short description|Cloud computing model}}'''Serverless computing''' is a [[cloud computing]] [[execution model]] in which the cloud provider allocates machine [[Computing resource|resources]] on demand, taking care of the [[Server (computing)|servers]] on behalf of their customers. ''Serverless''According is ato [[misnomer]]International inOrganization thefor senseStandardization|ISO]]/IEC that22123-2: servers"Serverless arecomputing stillis used bya cloud service providerscategory toin executewhich codethe forcustomer [[Developercan (software)|developers]].use different However,cloud developerscapabilities oftypes serverlesswithout [[Applicationthe (computing)|applications]]customer arehaving notto concerned with [[capacity planning]]provision, configuration,deploy management,and maintenance,manage [[faulteither tolerance]],hardware or scalingsoftware of containersresources, [[virtualother machine]]s,than orproviding physicalcustomer servers.application Whencode anor appproviding iscustomer notdata. in use, there are noServerless computing resourcesrepresents allocateda to the app. Pricing is based on the actual amountform of resourcesvirtualized consumedcomputing." by an application.<ref name="techcrunch-lambda:1">{{citeCite journal web|urltitle=https:ISO//techcrunch.com/2015/11/24/awsIEC 22123-lamda2:2023 (E) -makes-serverless-applications-a-reality/|title=AWS LambdaInformation Makestechnology Serverless ApplicationsCloud Acomputing Reality|last=Miller|first=Ron|website=[[TechCrunch]]| date=24Part Nov2: Concepts 2015|access-datejournal=10INTERNATIONAL JulySTANDARD 2016|pages=25}}</ref> It canFunction beas a formservice and serverless database are two forms of [[utilityserverless computing]]. <ref name=":1" />
 
''Serverless'' is a [[misnomer]] in the sense that servers are still used by cloud service providers to execute code for [[Developer (software)|developers]]. The definition of serverless computing has evolved over time, leading to varied interpretations. According to Ben Kehoe, serverless represents a spectrum rather than a rigid definition. Emphasis should shift from strict definitions and specific technologies to adopting a serverless mindset, focusing on leveraging serverless solutions to address business challenges. <ref>{{Cite book |title=Serverless as a Game Changer How to Get the Most Out of the Cloud |year=2023 |isbn=9780137392551}}</ref>
One proposed definition for serverless computing that encompasses these ideas is that serverless computing is a "cloud computing paradigm encompassing a class of cloud computing platforms that allow one to develop, deploy, and run applications (or components thereof) in the cloud without allocating and managing [[Virtual private server|virtualized servers]] and resources or being concerned about other operational aspects. The responsibility for operational aspects, such as [[fault tolerance]] or the [[Autoscaling|elastic scaling]] of computing, storage, and communication resources to match varying application demands, is offloaded to the cloud provider. Providers apply utilization-based billing: they charge cloud users with fine granularity, in proportion to the resources that applications actually consume from the cloud infrastructure, such as computing time, [[Computer memory|memory]], and [[Computer storage|storage]] space."<ref name="serverless computing">{{cite web|url=https://cacm.acm.org/article/serverless-computing/|title=Serverless Computing: What It Is, and What It Is Not?|last=Kounev|first=Samuel|website=[[Communications of ACM]]| date=23 August 2023|access-date=4 April 2024}}</ref> Note the definition of serverless has stretched over time. According to Ben Kehoe, serverless is a spectrum; one should not fixate on a strict definition of serverless nor any specific serverless technology. Instead, one should focus on serverless mindset: how to use serverless to solve one's business problems.<ref>{{Cite book |title=Serverless as a Game Changer How to Get the Most Out of the Cloud |year=2023 |isbn=9780137392551}}</ref>
 
Serverless computing can simplify the process of [[software deployment|deploying code]] into [[Production environment|production]]. ItAccording to Gregor Hohpe, using serverless does not entirely remove the complexity, but mainly shifts it from the operations team to development team. And the more fine grained the application, the harder it is to manage it.{{clarify|date=June 2024}} <ref>{{Cite book |title=The Software Architect Elevator: Redefining the Architect's Role in the Digital Enterprise |publisher=O'Reilly Media |year=2020 |isbn=978-1492077541}}</ref>
 
Serverless code can be used in conjunction with code deployed in traditional styles, such as [[microservices]] or [[Monolithic application|monoliths]]. Alternatively, applications can be written to be purely serverless and use no provisioned servers at all.<ref name="lambda-api-gateway" /> This should not be confused with computing or networking models that do not require an actual server to function, such as [[peer-to-peer]] (P2P).
Line 39:
 
=== Cost ===
Serverless can be more cost-effective than renting or purchasing a fixed quantity of servers,<ref name="Everybody is talking about serverless architecture" /> which generally involves significant periods of underusage or idle time.<ref name='"techcrunch-lambda'">{{cite web |last=Miller |first=Ron |date=24 Nov 2015 |title=AWS Lambda Makes Serverless Applications A Reality |url=https://techcrunch.com/2015/11/24/aws-lamda-makes-serverless-applications-a-reality/ |access-date=10 July 2016 |website=[[TechCrunch]]}}</ref> It can even be more cost-efficient than provisioning an [[autoscaling|autoscaling group]], due to more efficient [[Bin packing problem|bin-packing]] of the underlying machine resources.
 
This can be described as pay-as-you-go computing<ref name="Everybody is talking about serverless architecture" /> or bare-code,<ref name="Everybody is talking about serverless architecture" /> as one is charged based solely upon the time and memory allocated to run ones code, without associated fees for idle time.<ref name="Everybody is talking about serverless architecture" /> A useful analogy here is between rental car (traditional cloud Virtual Machines) versus ride share apps like Uber or Lyft (serverless computing). Immediate cost benefits are related to the lack of operating costs, including: licenses, installation, dependencies, and personnel cost for maintenance, support, or patching.<ref name="Everybody is talking about serverless architecture" /> Due to infinite scalability, developers may experience [[bill shock]] as a result of faulty code or a [[Denial-of-service attack]]. This is however often refunded, at the expense of the service provider.<ref>{{Cite web |last=Anderson |first=Tim |date=2020-12-10 |title=Google Cloud (over)Run: How a free trial experiment ended with a $72,000 bill overnight |url=https://www.theregister.com/2020/12/10/google_cloud_over_run/ |access-date=2024-10-09 |website=The Register}}</ref>