NodeCloud is a standard library to get a single API among common cloud service providers (Ex. AWS, GCP, Azure.. ). This will make building products among multiple cloud services and its services easier for the developer.
npm install nodecloud
or
yarn add nodecloud
- Amazon web services (AWS)
- Google cloud platform (GCP)
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 |
Please make sure you have .nc.config
file in the project root and have nodecloud-core
installed.
Content of .nc.config
file is assumed as the following json structure.
It is an array of supported providers.
name
: It is the provider name which nodecloud-core supports.tag
: It is the name that you will use to load the given provider. It is for your reference in code. It can be anything that you may like.libName
: It is the name of the library which has to be installed before loading a provider.
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: "Azure",
tag: "azure",
libName: "nodecloud-azure"
},
{
... // For Google
}
];
module.exports = providers;
const nodeCloud = require("nodecloud");
// AWS
const ncAWS = nodeCloud.getProvider("AWS");
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 = ncAWS.AWS.compute(options);
ec2
.createInstance(params, instanceParams)
.then(res => {
console.log(`All done ! ${res}`);
})
.catch(err => {
console.log(`Oops something happened ${err}`);
});
$ git clone https://github.com/cloudlibz/nodecloud
$ cd nodecloud
$ yarn install
$ yarn test