frugally reading through the documentation provided by AWS and Azure for Serverless computing, I realized that the core part of the idea of All Code fully documented is not that different. Especially if you think at:
It’s pretty much the same concept, in a different format. ‘Serverless’ computing concept to build apps as a collection of microservices that run in response to events, autoscaled in a cloud is very similar with the ‘All code fully documented’ idea. As all the Serverless applications/functions from the cloud offerings, no matter if they are native or built by third parties, they are well documented and can be ‘called’/used within the new application being developed.
It’s easier if you think of it as per the bellow (feel free to click on the slides for the animation to advance):
This provides an very easy way to understand the differences between On Premises infrastructure vs IaaS, PaaS, SaaS. Of course thecomparition of could offerings can go further with BaaS, but it does not serve the scope of this presentation.
As you can see, in the SaaS world, since you don’t own the applications they need to be very well documented in order for you to utilize them in a consistent way and to be able to predict their outcome. It’s pretty much the same with cloud functions / serverless computing. When these features will become standard methods for all development efforts, building code would be as easy as building a lego toy, from tinny little pieces of functions/applications all of them very well documented. Who knows, maybe in the end an AI would put the pieces together too, you’ll only need to provide the desired imput and output, though there might be some years if not tens of years till then..
I do like the direction AWS Serveless Application Repository is going. You can publish stand-alone applications or nested applications, within the teams of your organization, in order to reduce duplicated development efforts. You can even make your application public by sharing them with the open-source developer community. If you want to monetize your applications, you can do that through APIs, by using API Gateway and AWS Marketplace. You can find more info on how to do this at the following link:
https://aws.amazon.com/blogs/compute/monetize-your-apis-in-aws-marketplace-using-api-gateway/
It seems that Microsoft Azure is going in the same direction by letting anyone to publish and manage an offer in the Azure Marketplace. However the solution types they currently allow are Virtual machine and Solution template, which are not that close to the Serverless computing concept. Still, you could do the job of providing ‘applications’ to others but tight up to a VM setup or through a Solution of multiple VMs. You can read more about this at the following link:
https://docs.microsoft.com/en-us/azure/marketplace-publishing/marketplace-publishing-getting-started
I am very curious why GCP does not have a market place for the Cloud Functions in their approach to serverless computing. As far as I can tell from the Google Cloud functions description https://cloud.google.com/functions/ you can only use the functions published by google. Why don’t they take the Google Play model that has been so successful for Android apps, and create a Google Functions store similar as Google Play but for developers?
If you actually read Google’s CIO’s Guide to Open Application Development, it actually looks that they have a similar vision, perhaps implementing it might take a while though.
I truly believe that a model similar with the Market place from Amazon or Google Play, could really boost the serverless computing approach and it would make most of the code fully documented in the end. We shall see if this is the direction things are going to take off too.
PS: Written in a very nice and cozy coffee shop in Berlin: Cafe & Bar Norah