Comparing Serverless offerings from Alibaba Cloud and AWS
Last weekend, I had the chance to play around with Alibaba Cloud at the DevOps Meetup in my city. An Alibaba Cloud Solution Architect introduced the platform and was well trained on AWS as well, so he could compare both platforms for us. I also spent some time to figure out the details and finally, I ended up with a detailed comparison of the Serverless offering of both platforms.
When I talk about Alibaba Cloud I refer to the international version which misses features compared to the domestic (Chinese) version. Features are translated at a fast pace to close the gap between the domestic and international version.
AWS and Alibaba Cloud both offer a Function as a Service offering. When we look at the runtime, the platforms differentiate only in support for PHP, .NET Core, and Go.
|Language||AWS Lambda||Alibaba Cloud Function Compute|
|Node.js||8.10, 6.10, 4.3||8.9, 6.10|
|Python||3.6, 2.7||3.6, 2.7|
|.NET Core||2.1, 2.0, 1.0.1||-|
Alibaba Cloud provides a way to use a shared file system in your function which might be interesting to port legacy code. You can also group functions into a service which helps to keep functions (and also configuration) separated. To my surprise, the authorization concept is very similar to AWS, using policy-based access control.
|Max timeout||15 min||10 min|
|Temporary disk space (/tmp)||512 MB||1024 MB|
|Metrics||some (CloudWatch Metrics)||many|
|Centralized logs||CloudWatch Logs||Log Service|
|Included libraries||AWS SDK||Alibaba Cloud SDK and more (list for Node.js, Python, PHP)|
|Max. code package size (compressed)||50 MB||100 MB|
|Online IDE||rich (Cloud9)||minimal|
|Local deployment tool||SAM||Fun, fcli|
|Shared file system support||no||yes|
|Disable Internet access explicitly (non VPC)||no||yes|
Most importantly, a Serverless architecture benefits from a variety of event sources.
|Distributed log||Kinesis Data Streams||Log service|
|Log event aggregation||Kinesis Data Firehose||-|
|Cronjob||CloudWatch Events||Time trigger|
|Webhook||Somehow with API Gateway||HTTP trigger|
|REST API||API Gateway||API Gateway|
|CDN||Lambda@Edge||CDN event trigger|
|NoSQL database||DynamoDB streams||Table Store1|
|Logs||CloudWatch Logs||Log service|
|Platform events||CloudWatch Events||-|
|Infrastructure as Code||CloudFormation||-|
|Programmable button||IoT Button||-|
To my surprise, Alibaba Cloud is not that different compared to AWS. Both platforms work in a similar way (which is not the case for GCP or Azure in my opinion). AWS provides more Triggers and Integrations but Alibaba comes with some unique features such as a shared file system and PHP support.
Thanks to Oliver Arafat (Senior Solution Architect Alibaba Cloud) for reviewing this article.