Serverless Applications: Why, When, and How?