Based on my personal experience with serverless, the time saved in not configuring an application’s back-end infrastructure is always beneficial to developers. I get to spend more time focusing on the code rather than managing the infrastructure. A serverless computing platform, despite the name, is actually still using servers to execute your functions. But you don’t have to worry about paying for idle time, because your functions are run only by events or run directly through REST APIs.
One drawback I see in serverless is a cold start for functions. You experience this cold start the first time you run your function or when your function wasn’t run for a long time. Although can remedy this situation by using a cron job to warm up your serverless functions, there are times when you might want to consider using a server for your application.
I created a code pattern titled “Run serverless functions with image recognition” that uses a Cloudant database on IBM Cloud and triggers an action (a Cloud Function) based on changes in the database to classify images that are uploaded. It uses a serverless image recognition web app to showcase the serverless implementation. Try it out to see what a serverless implementation looks like for a web app that classify images as soon as you upload them in a database.