Week 1 : NodeCloud — unified API for Cloud Providers

I’ll be updating my GSoC project progress weekly throughout the project duration. Let’s dive in !

NodeCloud is a Node.js library/package which will abstract away the differences between different cloud providers. It will expose an easy to use API for developers in order to interact with different provider SDKs.

This post will be on the update for the first week of the project. Even though this time period is for community bonding, since I’ve been a contributor to the SCoRe community, my mentors decided to jump straight into project designing stage.

Thus the research began for current implementations of similar libraries. Out of the libraries out there, pkgcloud and Apache’s libcloud were used for reference in order to get the big picture and to understand what went wrong and what they’ve done right.

pkgcloud is a JavaScript implementation of this concept. But a major problem is that, it’s no longer actively maintained and uses some legacy Node.js features and few anti patterns as well. Design patterns used in this library are factory pattern and facade.

All these details were properly documented and shared with the mentors.

After studying about the current libraries, next step was to decide on the architecture for the project specially in terms of the design patterns since the project should be future proof as well. Following is the high level architecture for NodeCloud.

Primarily factory and facade patterns will be used as core design patterns. But with the constant development there’s a possibility to add different combinations of design patterns.

Following repository contains initial experiments for different design patterns.

That’s it for this week. See ya !