I am having multiple applications which are deployed in Microsoft Azure. These applications are using various libraries from Microsoft for interacting with services such as Azure Servicebus (Topic & Queue), Blob, etc. There is a new requirement that these applications should run on AWS as well on Azure. Since service bus, blob are very specific to Azure. They are not available in AWS. AWS has equivalent services such as SNS/SQS, S3 bucket etc. AWS has different SDK's/libraries for interacting with there services.
This is a problem since I will have to maintain two different versions of the applications one for Azure and another for AWS. This is difficult to maintain and I want to avoid.
Is there any framework/pattern/approach which abstracts vendor-specific details to service bus or blob and work both with AWS & Azure using a single code base
There are 2-3 ways if you want to target Azure, Aws or any other cloud using a single code base