Running code on demand on infrastructure fully managed by a provider, so you manage no servers and usually pay per use.
Despite the name, servers exist; you just do not see or manage them. You write code as small functions, and the provider runs them only when a request arrives, allocating resources automatically. No operating system updates and no servers idling all night with no visitors.
It suits startups and apps with uneven traffic very well: low cost when usage is light and automatic scaling when it grows. It has limits, though, such as maximum run time per request and occasionally a small delay on the first request after an idle period. Practical tip: long tasks like processing large files or heavy reports may need a different design, such as job queues. Monitor usage and cost, because a bug causing repeated calls can raise your bill without you noticing.