hook.io website. Since then, numerous FaaS providers came along like AWS, Google Cloud, Microsoft Azure, IBM/Apache’s Open Whisk which is open source from 2016 and Oracle Cloud in 2017 also being open source.
Let’s quickly run through all the awesomeness and pain points fo FaaS.
Top FaaS providers of today are offering the same services with some differences, and we will try and compare them in this section, so you can decide which one suits you better while considering the language support they offer, the 3rd party language support, the monitoring systems they use and their limits. At the end of the main differences section, you will find a separate part of pricing models for each provider.
AWS Lambda language support is vast. It supports several languages like Node.js, Java, C#, and Python. Language support with the 3rd party is Golang by using Node.js shim. Dashbird and Cloudwatch are AWS Lambda’s monitoring systems. There are some limitations in AWS Lambda that we will go through. Memory allocation range is min. 128 MB and max. 1536 MB. Ephemeral disk capacity is (“/tmp” space): 512 MB, while maximum execution duration per request is 300 seconds.
Google Functions supports Node.js and doesn’t have any other language support as the others do. Google Functions comes with a Stackdriver monitoring system. It is limited to 1000 functions with maximum function duration of 540 seconds. Function calls per second are 1 million per 100 seconds.
Microsoft Azure Functions supports even more languages like Node.js, C#, F#, Python, PHP, and Java. The 3rd party language support can run anything with batch files. Azure Application Insights is Azure’s monitoring system. Azure is limited to only ten concurrent executions per one function. There are no limits on maximum execution time limit.
IBM Apache OpenWhisk Functions supports native languages like Node.js, Swift, Java, PHP, Go, and Python. You can use any other programming language (the 3rd party language) you need just by providing it to the Docker container. OpenWhisk uses Dashboard as a monitoring system. There are some limits in OpenWhisk. It is limited to package nesting which is not allowed meaning that the package can’t contain another package, but packages can include Actions and Feeds.
Prices between these FaaS providers we’ve previously mentioned are different with several different models you could choose from to pay for services provided to you. Depending on how you use it and how frequent, also as for how long, this section should offer you the best insight of which FaaS provider you should choose.
AWS Lambda’s pricing is set on $0.20 per million requests and $0.00001667 per GB-s (Gigabyte per second), considering that 1 million requests and 400.000 GB-s per month are for free. Depending on your needs, choosing AWS Lambda can be a good option.
Google Function’s pricing is set on three different models. The 1st one is $0.40 per million invocations, but consider that 2 million invocations are for free. The 2nd price model is $0.0000025 per GB-sec with 400,00 GB-sec per month that comes for free. It brings us to the 3rd price model which is $0.0000100/GHz-sec with 200,000 GHz-sec per month that also comes for free.
Microsoft Azure Function uses two different pricing models. The 1st one is $0.000016/GBs with 400,000 GBs per month that comes for free. The 2nd model is $0.20 per million executions, with 1 million executions per month for free.
IBM Apache OpenWhisk Function has the basic Cloud Function rate which is $0.000017 per second of execution, per GB of memory allocated.
The conclusion would be that FaaS is proposing a type of architecture that developers need to fit into. It’s a whole new way of building, managing and deploying code. A brand-new way, similar to microservices, with many various benefits for both big and small applications. The most considerable advantage for architecture that is based on serverless is all around the developers’ availability or non-availability. Nowadays, it is quite hard finding a good developer and much harder finding good developers specified for a specific programming language. FaaS is quite flexible, and this brings us to its disadvantages regarding its productivity. Nevertheless, being short on developers is a far bigger problem.
You know our FaaS service of choice is AWS Lambda, but don’t let that cloud your judgement. Use whatever you feel is best for your use case!
We aim to improve Dashbird every day and user feedback is extremely important for that, so please let us know if you have any feedback about these improvements and new features! We would really appreciate it!
Failure detection, analytics and visibility for serverless applications in under 5 minutes.