Serverless support for deploying on any cloud irrespective of the provider

Hey guys, is it possible to deploy my node.js project on any cloud provider serverless functionality without making major changes to my code?

I had gone through the talk TAMING DRAGONS: Building multi provider serverless apps but that didn’t help much.

Hi Agnitra,
It is possible. But, due to the variance of feature set and functionality across the cloud providers, it is hard practically. If you take a small example and let me know, I can help you through that. I would suggest you start with AWS and Azure first. Google Cloud has a very small subset of the functionality.

Changes that you will have to consider:

  • serverless.yml config changes due to varying attributes
  • Lambda function handler signatures (not too complex)
  • varying functionality not compatible (like logs etc.)

If you can create a project and share it on Github, I can help you with it. Hope that helps.

Thanks,
Rupak Ganguly

hi rupak,

I had tried the simple boilerplate template code that serverless framework provides by default. Even the interface of the handlers are different for different providers. Is there any provider agnostic universal serverless function signature which will work when deployed to AWS and AZURE at the same time without any changes made to the code?

The functions portion of the serverless.yml file also has significant differences. Is there any universal format for that also?

No.

The cloud providers have become the new operating systems and just like Mac versus PC they’re not compatible.

Is there a possibility to use docker conatiners to run code on serverless architecture on cloud?

AWS has Fargate but many people would argue that’s not really serverless anymore. I’m not sure about the other cloud providers.

Solving the compute problem is relatively easy. Your “function” can export a different handler for each platform that abstracts away the platform specifics before executing the common business logic. The real problem is that serverless architectures are more than just functions.

If you need the ability to deploy the same application across multiple providers without code changes then serverless isn’t the right solution for you.