When talking about serverless there are several major cloud function providers. Though most of them are providing cloud functions, not all of them provide equal functionality. The major difference is the languages they support. And second is the price. Here is a brief comparison:
Supported Languages (as of 29 Nov 2019)
Why suported languages is important. Once you start developing for a platform its a long term commitment. You would like to be able to have the options to use as many languages as possible, without the need to change the providers.
PHP Support (as of 29 Nov 2019)
For me PHP is a very important language and the primary indicator of which provider is the most mature. The reason is that PHP is the only language that is created for web development instead of being a general purpose language. At this very moment PHP for cloud functions is officially supported by IBM only. Some hacks exist for the other providers to run PHP as docker container, but these are unofficial, and incur extra overhead time to call the real PHP functions.
First 1 million free
$0.20 per million requests
First 1 million free
$0.20 per million executions
First 2 million free
$0.40 per million executions
First 5 mln free
$0.20-$40 per million (dependent on memory)
Looks like the best provider for cloud functions at the moment is IBM mainly for the following two reasons. First IBM is the only provider supporting PHP. The rest of them seem to have issues with providing stable PHP runtime for cloud functions. Second. IBM has the most generous free tier of 5 million free executions.
Another reason why IBM may be the preferred option is that it does provide support for Apache OpenWhisk. OpenWhisk is the underlying technology the IBM cloud functions run on. OpenWhisk allows you to self host your own cloud functions. The development of OpenWhisk is done openly to the public and can be seen on GitHub. And IBM is fully involved. For instance I have asked for several improvements to the IBM cloud functions for the PHP runtime. All of these requests were granted and the updates provided by IBM engineers ended in the OpenWhisk's repository.