You would also have to buy another smartwatch that is compatible with your new smartphone. So even if you would like to have a Samsung smartphone, the complete switch to another brand would be expensive. If the foreseeable costs prevent you from making the switch and you therefore stick with your iPhone, Apple has "locked you in". This is also referred to as "vendor lock-in". We show you what vendor lock-in is and how to recognize it correctly.
Vendor lock-in is the dependence of a user/customer/user on one or more products or services from a specific manufacturer. This dependency arises from the fact that switching to an alternative provider
- not possible due to a lack of alternatives (e.g. lack of functions) or
- is uneconomical due to high transaction costs.
At first, this sounds like something we rarely have to deal with. But far from it - vendor lock-in can not only be in our everyday life occur, but also in the Cloud. How does such a vendor lock-in occur and how can you recognize it?
Cloud vendor lock-in - what is it?
Vendor lock-in in the cloud occurs when the costs of a migration are higher than its benefitsOnce you have decided on a particular cloud provider, there may be various reasons why switching to another cloud provider - should this be desired or necessary - is so expensive that these costs outweigh the benefits of migration. As part of my thesis, I developed a procedure to recognize a possible vendor lock-in in the cloud at an early stage and prevent it.
Vendor lock-in using the example of serverless platforms
How a vendor lock-in can arise in the cloud can be demonstrated very well using various serverless platforms. AWS Lambda and Google Cloud Functions both enable the creation of functions, for example. Functions are self-contained code units in their functionwhich are executed automatically as required. If you compare AWS Lambda² with Google Cloud Functions³, the first thing you will notice is that they are not necessarily the same. Programming languages and runtime environments can be used. Node.js, Python and Go are supported by both environments, while AWS Lambda also supports Java, C# and Ruby. If functions were created for AWS Lambda in Java, they cannot be adopted for Google Cloud, as Java functions are not supported here.
Furthermore, various proprietary libraries are used in the different cloud platforms. A library is a ready-made collection of program code that can be used for specific tasks. For example, the following libraries are available for the platforms under consideration:
- AWS - aws-lambda-java-core: This library contains, among other things, the Lambda context object, which is used to interact with the AWS Lambda execution environment.4
- Azure - com.microsoft.azure.functions: This library contains, among other things, the ExecutionContext, which is used to interact with the Azure Functions execution environment.5
Functions can therefore not always simply be transferred from one cloud to another, but may have to be adapted or completely rewritten beforehand.
For a few functions, this may not be a great effort. However, remember that your application probably does not consist exclusively of functions. You also need to take a closer look at the following points, for example:
- Are your Data compatible with the target database in the new cloud?
- How much does the Exporting the data?
- What needs to be adapted in the application in order to Proprietary cloud interfaces to be able to support them?
- And are the required Functionalities available at all in the new cloud?
Recognize vendor lock-in correctly
The Sum of all these different lock-in risks is what can ultimately lead to a vendor lock-in. For this reason, my thesis dealt with the development of a way to recognize a vendor lock-in. In order to be able to react to it, this must be done as early as possible. before migrating to a cloud or before the new development of a cloud service happened.
As already mentioned, a vendor lock-in occurs when the costs of a migration exceed its benefits. Both the costs of a migration and its benefits must therefore be identified in order to recognize a vendor lock-in.
As the actual benefit of migration would only become clear in the future and is therefore unpredictable, an alternative figure must be used. Therefore, the Benefit which is considered in the Choice of a specific (instead of a specific other) Cloud provider is created. This can be seen here using fictitious figures as an example:

Illustration: Example of the calculation of a vendor lock-in (using fictitious figures)
In the example, the decision is made in favor of Cloud A. The creation costs are considered, which initially result in a benefit of €10,000 compared to the choice of Cloud B. The more favorable usage costs in a certain observation period also result in an additional benefit of €5,000. The total benefit in the period under review is therefore €15,000. However, this must be set against the expected migration costs, in the example €30,000. As the benefit then becomes negative, this would result in a vendor lock-in.
Conclusion:
Ultimately, however, there is also the problem that the usage costs and the expected migration costs may change in the future. Either a vendor lock-in is predicted, which then does not occur, or a vendor lock-in does occur contrary to expectations. It is therefore not possible to make a precise statement, backed up by figures, as to whether a vendor lock-in will definitely occur with a cloud provider.
Nevertheless, the Identified migration costs at least as Assessment can be used, where a vendor lock-in could occur in a cloud application. In conjunction with expert knowledge, it is possible to assess whether a possible lock-in should be counteracted and which measures can be used for this purpose.
Which FaaS platform is the right one for your use case?
Sources:
1 based on: Justice Opara-Martins, Reza Sahandi and Feng Tian. "A Holistic Decision Framework to Avoid Vendor Lock-in for Cloud SaaS Migration. In: Computer and Information Science 10 (July 2017), p. 29. issn: 1913-8989. doi: 10.5539/cis.v10n3p29. (p.30)
2 https://docs.aws.amazon.com/de_de/lambda/latest/dg/lambda-runtimes.html
3 https://cloud.google.com/functions/docs/writing
4 https://docs.aws.amazon.com/de_de/lambda/latest/dg/java-programming-model.html


