NodeCloud is a standard library to get a single API on the open cloud with multiple providers. Making open cloud easily accessible and managed.
npm install nodecloud
or
yarn add nodecloud
- Amazon web services (AWS)
- Google cloud platform (GCP)
- Azure
| Service Category | Service | AWS | GCP | Azure |
|---|---|---|---|---|
| Compute | IaaS | EC2 | Compute Engine | Virtual Machine |
| Containers | ECS | - | - | |
| Storage | Object Storage | S3 | Cloud Storage | Blob, Queue, Table |
| Block Storage | EBS | Persistent Disks | ||
| Networking | Load Balancer | ELB | - | Virtual Networks |
| Peering | Direct Connect | - | Azure API | |
| DNS | Route53 | Google DNS | ||
| Databases | RDBMS | RDS | - | Azure Database |
| NoSQL: key-value | DynamoDB | Cloud Datastore | ||
| NoSQL: indexed | - | Cloud Datastore | ||
| Security/ Authorization | IAM | AWS IAM | - | - |
| Utilities | Apps management | - | - | WebApps |
Make sure you have .nc.config.js file in the project root.
Content of .nc.config.js file is assumed as the following structure.
It is an array of supported providers.
name: Provider identifier, this can be used to identify the plugin at a glance.tag: Tag name that will be used to load the given provider.libName: Name of the plugin repository eg: nodecloud-aws-plugin
This config file can contain array of objects for all providers and all will be loaded.
Supported values for name : Azure, google, AWS
const providers = [
{
name: "aws",
tag: "aws",
libName: "nodecloud-aws-plugin"
},
{
... // For Google
}
];
module.exports = providers;const nodeCloud = require("nodecloud");
const ncProviders = nodeCloud.getProviders();
const options = {
apiVersion: "2016-11-15"
};
const params = {
ImageId: "ami-10fd7020", // amzn-ami-2011.09.1.x86_64-ebs
InstanceType: "t1.micro",
MinCount: 1,
MaxCount: 1
};
const instanceParams = {
Key: "Name",
Value: "Node Cloud demo"
};
const ec2 = ncProviders.aws.compute(options);
ec2
.createInstance(params, instanceParams)
.then(res => {
console.log(`All done ! ${res}`);
})
.catch(err => {
console.log(`Oops something happened ${err}`);
});NodeCloud officialy supports AWS, GCP and Azure. If you want to use a community driven plugin override the providers list as follows.
const nodeCloud = require("nodecloud");
const options = {
overrideProviders: true
};
const ncProviders = nodeCloud.getProviders(options);$ git clone https://github.com/cloudlibz/nodecloud
$ cd nodecloud
$ yarn install
$ yarn test
MIT
