Function as a service

Category of cloud computing services

This article may be unbalanced toward certain viewpoints. Please improve the article by adding information on neglected viewpoints, or discuss the issue on the talk page. (January 2025)

|

Function as a service is a "platform-level cloud capability" that enables its users "to build and manage microservices applications with low initial investment for scalability," according to ISO/IEC 22123-2.[1]

Function as a Service is a subset of the serverless computing ecosystem.[2]

## Anti-patterns

[edit]

The "Grain of Sand Anti-pattern" refers to the creation of excessively small components (e.g., functions) within a system, often resulting in increased complexity, operational overhead, and performance inefficiencies.[3] "Lambda Pinball" is a related anti-pattern that can occur in serverless architectures when functions (e.g., AWS Lambda, Azure Functions) excessively invoke each other in fragmented chains, leading to latency, debugging and testing challenges, and reduced observability.[4] These anti-patterns are associated with the formation of a distributed monolith.

These anti-patterns are often addressed through the application of clear domain boundaries, which distinguish between public and published interfaces.[4][5] Public interfaces are technically accessible interfaces, such as methods, classes, API endpoints, or triggers, but they do not come with formal stability guarantees. In contrast, published interfaces involve an explicit stability contract, including formal versioning, thorough documentation, a defined deprecation policy, and often support for backward compatibility. Published interfaces may also require maintaining multiple versions simultaneously and adhering to formal deprecation processes when breaking changes are introduced.[5]

Fragmented chains of function calls are often observed in systems where serverless components (functions) interact with other resources in complex patterns, sometimes described as spaghetti architecture or a distributed monolith. In contrast, systems exhibiting clearer boundaries typically organize serverless components into cohesive groups, where internal public interfaces manage inter-component communication, and published interfaces define communication across group boundaries. This distinction highlights differences in stability guarantees and maintenance commitments, contributing to reduced dependency complexity.[4][5]

Additionally, patterns associated with excessive serverless function chaining are sometimes addressed through architectural strategies that emphasize native service integrations instead of individual functions, a concept referred to as the functionless mindset. However, this approach is noted to involve a steeper learning curve, and integration limitations may vary even within the same cloud vendor ecosystem.[2]

## Portability issues

[edit]

Function as a service workloads may encounter migration obstacles due to service lock-in from tight vendor integrations. Hexagonal architecture can facilitate workload portability.[6]

## See also

[edit]

* as a service
* Serverless computing
* Serverless Framework
* AWS Lambda

## References

[edit]

1. ^ "ISO/IEC 22123-2:2023 (E) - Information technology — Cloud computing — Part 2: Concepts". International Standard: 25.
2. ^ a b Brisals, Sheen (February 2024). Serverless Development on AWS: Building Enterprise-Scale Serverless Solutions. O'Reilly Media. ISBN 978-1098141936.
3. ^ Richards, Mark (2015). Microservices AntiPatterns and Pitfalls. O'REILLY.
4. ^ a b c "Technology Radar Vol. 21 – An opinionated guide to technology" (PDF). Technology Radar. 21. ThoughtWorks.
5. ^ a b c Fowler, Martin (March–April 2002). "Public versus Published Interfaces" (PDF). IEEE Software. 19 (2): 18–19\. doi:10.1109/52.991326.
6. ^ Cui, Yan (2020). Serverless Architectures on AWS (2nd ed.). Manning. ISBN 978-1617295423.

* v
* t
* e

Cloud computing

Business models|

* Content as a service
* Data as a service
* Desktop as a service
* Function as a service
* Infrastructure as a service
* Integration platform as a service
* Backend as a service
* Network as a service
* Platform as a service
* Security as a service
* Software as a service

Technologies|

* Cloud database
* Cloud-native computing
* Cloud storage
* Cloud storage gateways
* Data centers
* Dew computing
* Distributed file system for cloud
* Hardware virtualization
* Internet
* Mobile cloud computing
* Native cloud application
* Networking
* Personal cloud
* Security
* Serverless computing
* Structured storage
* Virtual appliance
* Web APIs
* Virtual private cloud

Applications|

* Box
* Dropbox
* Google
* Workspace
* Drive
* HP Cloud (closed)
* IBM Cloud
* Lark
* Microsoft
* Office 365
* OneDrive
* Nextcloud
* Oracle Cloud
* Owncloud
* Proton Drive
* Rackspace
* Salesforce
* Seafile
* PlateSpin
* Workday
* Zoho

Platforms|

* Alibaba Cloud
* Amazon Web Services
* AppScale
* Box
* CloudBolt
* Cloud Foundry
* Cocaine (PaaS)
* Engine Yard
* Helion
* GE Predix
* Google App Engine
* GreenQloud
* Heroku
* IBM Cloud
* Inktank
* Jelastic
* Microsoft Azure
* MindSphere
* Netlify
* Oracle Cloud
* OutSystems
* openQRM
* OpenShift
* PythonAnywhere
* RightScale
* Scalr
* Force.com
* SAP Business Technology Platform
* Splunk
* Vercel
* vCloud Air
* WaveMaker

Infrastructure|

* Alibaba Cloud
* Amazon Web Services
* Abiquo Enterprise Edition
* CloudStack
* Citrix Cloud
* Deft
* DigitalOcean
* EMC Atmos
* Eucalyptus
* Fujitsu
* Google Cloud
* GreenButton
* GreenQloud
* IBM Cloud
* iland
* Joyent
* Linode
* Lunacloud
* Microsoft Azure
* Mirantis
* Netlify
* Nimbula
* Nimbus
* OpenIO
* OpenNebula
* OpenStack
* Oracle Cloud
* OrionVM
* Rackspace Cloud
* Safe Swiss Cloud
* Zadara
* libvirt
* libguestfs
* OVirt
* Virtual Machine Manager
* Wakame-vdc
* Vercel
* Virtual Private Cloud OnDemand

* Category
* Commons

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template