Elevator Pitch and Common Abstraction for all Clouds
Recently, someone asked me for an elevator pitch. I started — “we have invented a theory, I call it the General Theory of Relativity. According to it, when light passes by a massive body, it will bend……”. Obviously, the conversation was not going anywhere. I am no Einstein. But having spent months in the basement and discovered a thing, it will need some time and attention to communicate the thought. Or, could I have said, “if we travel with the speed of light, we will not age much when we reach 147th floor.” It may not have changed the outcome.
There are things that can’t be explained in an elevator. Therefore, I have some disdain for the elevator pitch. Let us give some ideas a few minutes and a diagram or two. Let us listen.
If you have come this far then may I request to bear with me and read on.
Let us say, a programmer writes a file to a cloud bucket. A cloud bucket could be on AWS, Azure, GCP, Oracle, etc. Should it not be as simple as — “write this content to a file in this directory?” But it is not, it is far more complex — acquire token, include cloud specific client toolkit or construct restful request, etc. After all, we write files to a Linux disk without knowing it will be on Ubuntu or RedHat, therefore we have come to expect simpler API on the cloud as well.
Since a common abstraction of multiple Linux is possible, a common abstraction of all clouds is possible too. But in this case, we can’t rely on cloud providers to build a common abstraction. In fact we should not expect it. Instead we should assume that, it is not the responsibility of cloud providers to standardize on common APIs. Asking them to converge will be counterproductive and will never happen.
It is the responsibility of a platform provider to abstract all clouds in a common set of APIs and provide its cloud specific implementation transparently. It is shown in the following diagram.
Complexity in providing a common API platform?
Our example of writing a file to a bucket is one of the APIs. There are several more such APIs for database, storage, security, AI, etc. They follow the same principles on every cloud therefore they can be abstracted as common APIs. The problem is that implementing them and providing a serverless programming model requires several years of effort. It is a risky proposition. Due to a long time span, it gets boring and teams disintegrate resulting in failure.
We have built such a platform called Trillo Workbench. It is deployed with hundreds of customers. This blog is to create mindshare for the platform. If you are interested in discussing, please send me an email at “anil at trillo dot io”.
Thank you.