Remix.run Logo
▲ nz an hour ago

It's all software in the end. If you plan ahead, it is hard to be completely locked in. I worked for a company, where we had build a data transformation pipeline, and we had GCP and AWS credits, and wanted to use both of them. We built a minimal, high-level library that could be mapped onto both PubSub and SQS (we were transforming the WARC files from the internet archive, in preparation for data analysis). Once we built this, and worked around the near-criminally incompetent design of SQS (e.g. PubSub does compression, batching, and does not send duplicate messages, while you need to all that yourself for SQS), we were able to use both clouds (for free) at the same time, and we were not locked in at all.

In fact, we had a call with some people who worked at GCP, and I (naively, and excitedly) mentioned that our design is simple/minimal and cloud-portable. A miasma of awkwardness fell upon the conversation, and I realized that the reason that the GCP people were so keen to speak to us, was that they were anticipating, that once we used up the credits, that they would then get regular recurring revenue from the company.

Most cloud companies are in the business of locking you in via very convenient APIs, that would be costly to migrate off of, if you did not abstract them away to begin with (naturally, the egress costs cannot be abstracted away, but those were not much of a problem in our case, because our output-data was very small compared to the input-data).

There is an expression in my native language: he who lacks virtue in the head, has virtue in the legs.