The pitch is seductive in its simplicity. You write a function. You deploy it. You pay only for the milliseconds it runs. No servers idling through the night, no reserved capacity gathering dust, no 3 a.m. pager alerts because a VM decided to kernel panic during a deployment window. The cloud provider handles the undifferentiated heavy lifting — their phrase, not mine — and you, liberated from operational tedium, focus on building the thing that actually matters.
I believed this. Genuinely. For a long time.