Skip to content

Commit

Permalink
resolving merge conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
rajitha1998 committed Jan 25, 2020
2 parents 99fe29b + 9f8ee2a commit e8f4a99
Showing 1 changed file with 169 additions and 141 deletions.
310 changes: 169 additions & 141 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,141 +1,169 @@
<p align="center">
<img src="assets/logo.png">
</p>

# NodeCloud

[![npm version](https://badge.fury.io/js/nodecloud.svg)](https://badge.fury.io/js/nodecloud)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/b94b1fe2ac724e8083f8237de3473c8a)](https://www.codacy.com/app/rehrumesh/nodecloud?utm_source=github.com&utm_medium=referral&utm_content=cloudlibz/nodecloud&utm_campaign=Badge_Grade)
[![Build Status](https://travis-ci.org/cloudlibz/nodecloud.svg?branch=master)](https://travis-ci.org/cloudlibz/nodecloud)

NodeCloud is a standard library to get a single API on the open cloud with multiple providers.
Making open cloud easily accessible and managed.

## 🚀 Install

```
npm install nodecloud
or
yarn add nodecloud
```

## 📘 Service Providers

* AliCloud
* Amazon Web Services (AWS)
* Azure
* DigitalOcean
* Google Cloud Platform (GCP)

## 📟 Service Types

* \*yet to be implemented

| Service Category | Service | AWS | GCP | Azure | DigitalOcean | AliCloud |
|-------------------------|------------------|----------------|-----------------------------------|-----------------------------|-------------------|-----------------------------|
| Compute | IaaS | EC2 | Compute Engine | Virtual Machine | Droplets | ECS |
| | Containers | ECS | - | - | - | - |
| | Kubernetes\* | EKS | Kubernetes Engine | AKS | DO Kubernetes* | - |
| Storage | Object Storage | S3 | Cloud Storage | Blob, Queue, Table, Files\* | Spaces* | Bucket (OSS) & Table Store* |
| | Block Storage | EBS | Persistent Disks | - | Volumes | - |
| Networking | Load Balancer | ELB | GC Load Balancing\* | Virtual Networks | DO Load Balancers | SLB |
| | Peering | Direct Connect | Direct Peering*, Carrier Peering* | Azure API | - | - |
| | DNS | Route53 | Google DNS | Azure DNS\* | DO DNS* | Alibaba DNS |
| Databases | RDBMS | RDS | Cloud SQL\* | Azure Database | Managed Postgres* | Apsara RDS |
| | NoSQL: key-value | DynamoDB | Cloud Datastore | - | - | Apsara for MongoDB |
| | NoSQL: indexed | - | Cloud Datastore | - | - | - |
| Security/ Authorization | IAM | AWS IAM | - | - | - | - |
| Utilities | Apps management | - | - | WebApps | - | - |

## ✌️ How to setup

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.

1. `name` : Provider identifier, this can be used to identify the plugin at a glance.
2. `tag` : Tag name that will be used to load the given provider internally.
3. `plugin` : Plugin module

This config file can contain array of objects for all providers and all will be loaded.
Supported values for `name` : aws, azure, alicloud, digitalocean, google

``` js
const nodeCloudAwsPlugin = require("nodecloud-aws-plugin");

const providers = [{
name: "aws",
tag: "aws",
plugin: nodeCloudAwsPlugin
}];

module.exports = providers;
```

## [Supported providers](https://github.com/cloudlibz/nodecloud/blob/master/lib/core/providers-list.js)

## 📣 Usage

``` js
const nodeCloud = require("nodecloud");
const optionsProvider = {
overrideProviders: false
};
const ncProviders = nodeCloud.getProviders(optionsProvider);
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}` );
});
```

## Override providers

NodeCloud officialy supports AWS, GCP, Azure, DigitalOcean and AliCloud. If you want to use a community driven plugin override the providers list as follows.

``` js
const nodeCloud = require("nodecloud");
const options = {
overrideProviders: true
};
const ncProviders = nodeCloud.getProviders(options);
```

## 💻 Development setup

```
$ git clone https://github.com/cloudlibz/nodecloud
$ cd nodecloud
$ yarn install
```

## ✒️ Run unit tests

```
$ yarn test
```

## 📜 License

MIT

<p align="center">
<img src="assets/logo.png">
</p>

# NodeCloud

[![npm version](https://badge.fury.io/js/nodecloud.svg)](https://badge.fury.io/js/nodecloud)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/b94b1fe2ac724e8083f8237de3473c8a)](https://www.codacy.com/app/rehrumesh/nodecloud?utm_source=github.com&utm_medium=referral&utm_content=cloudlibz/nodecloud&utm_campaign=Badge_Grade)
[![Build Status](https://travis-ci.org/cloudlibz/nodecloud.svg?branch=master)](https://travis-ci.org/cloudlibz/nodecloud)

NodeCloud is a standard library to get a single API on the open cloud with multiple providers.
Making open cloud easily accessible and managed.

## 🚀 Install

```
npm install nodecloud
or
yarn add nodecloud
```

## 📘 Service Providers

- AliCloud
- Amazon Web Services (AWS)
- Azure
- DigitalOcean
- Google Cloud Platform (GCP)

## 📟 Service Types

<<<<<<< HEAD

- \*yet to be implemented

| Service Category | Service | AWS | GCP | Azure | DigitalOcean | AliCloud |
| ----------------------- | ---------------- | -------------- | --------------------------------- | --------------------------- | ------------------ | ---------------------------- |
| Compute | IaaS | EC2 | Compute Engine | Virtual Machine | Droplets | ECS |
| | Containers | ECS | - | - | - | - |
| | Kubernetes\* | EKS | Kubernetes Engine | AKS | DO Kubernetes\* | - |
| Storage | Object Storage | S3 | Cloud Storage | Blob, Queue, Table, Files\* | Spaces\* | Bucket (OSS) & Table Store\* |
| | Block Storage | EBS | Persistent Disks | - | Volumes | - |
| Networking | Load Balancer | ELB | GC Load Balancing\* | Virtual Networks | DO Load Balancers | SLB |
| | Peering | Direct Connect | Direct Peering*, Carrier Peering* | Azure API | - | - |
| | DNS | Route53 | Google DNS | Azure DNS\* | DO DNS\* | Alibaba DNS |
| Databases | RDBMS | RDS | Cloud SQL\* | Azure Database | Managed Postgres\* | Apsara RDS |
| | NoSQL: key-value | DynamoDB | Cloud Datastore | - | - | Apsara for MongoDB |
| | NoSQL: indexed | - | Cloud Datastore | - | - | - |
| Security/ Authorization | IAM | AWS IAM | - | - | - | - |
| Utilities | Apps management | - | - | WebApps | - | - |

## ✌️ How to setup

=======

- \*yet to be implemented

| Service Category | Service | AWS | GCP | Azure | DigitalOcean | AliCloud |
| ----------------------- | ----------------------------------- | :-----------------------------------: | :-------------------------------: | :---------------------------------------------------------------------: | :---------------------------------------: | :---------------------------------------------------: |
| Compute | IaaS | EC2 | Compute Engine | Virtual Machine | Droplets | ECS |
| | Faas | AWS Lambda\* | Cloud Functions\* | Azure Functions\* | - | Function Compute\* |
| | Containers | ECS, EKS\* | Google Kubernetes Engine\* | AKS*, Azure Service Fabric* | DO Kubernetes\* | Container Service*, Container Service for Kubernetes* |
| | Containers (without infrastructure) | AWS Fargate\* | Cloud Run\* | - | - | ECI\* |
| | Paas | AWS Elastic Beanstalk\* | App Engine\* | App Service\* | - | Simple Application Server\* |
| Storage | Object Storage | S3 | Cloud Storage | Azure Blob Storage | Spaces\* | Bucket (OSS) |
| | Block Storage | EBS | Persistent Disks | Disk Storage | Volumes | NAS\* |
| Networking | Load Balancer | ELB | Cloud Load Balancing\* | Azure Load Balancer\* | DO Load Balancer | SLB |
| | Peering/Dedicated Interconnect | Direct Connect | Cloud Interconnect\* | ExpressRoute\* | - | Express Connect\* |
| | DNS | Route53 | Google Domains, Cloud DNS\* | Azure DNS\* | DO DNS\* | Alibaba Cloud DNS\* |
| Databases | RDBMS | RDS, Amazon Aurora*, Amazon Redshift* | Cloud SQL*, Cloud Spanner* | SQL Database, Azure Database for MySQL*, Azure Database for PostgreSQL* | Managed Databases(PostgreSQL* and MySQL*) | ApsaraDB (MySQL, MariaDB TX, SQL Server, PostgreSQL) |
| | NoSQL: key-value | DynamoDB | Cloud Firestore*, Cloud Bigtable* | Table Storage | Managed Databases(Redis)\* | ApsaraDB for Redis\* |
| | NoSQL: indexed | Amazon SimpleDB\* | Cloud Firestore\* | Cosmos DB\* | - | ApsaraDB for MongoDB\* |
| Security/ Authorization | Identity Access Management | AWS IAM | Cloud IAM\* | Azure Active Directory*, Azure Role Based Access Control* | - | Resource Access Management\* |

# ✌️ How to setup

> > > > > > > 9f8ee2afea33593b0b982f9f598643df2cec9fba
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.

1. `name` : Provider identifier, this can be used to identify the plugin at a glance.
2. `tag` : Tag name that will be used to load the given provider internally.
3. `plugin` : Plugin module

This config file can contain array of objects for all providers and all will be loaded.
Supported values for `name` : aws, azure, alicloud, digitalocean, google

```js
const nodeCloudAwsPlugin = require("nodecloud-aws-plugin");

const providers = [
{
name: "aws",
tag: "aws",
plugin: nodeCloudAwsPlugin
}
];

module.exports = providers;
```

## [Supported providers](https://github.com/cloudlibz/nodecloud/blob/master/lib/core/providers-list.js)

## 📣 Usage

```js
const nodeCloud = require("nodecloud");
const optionsProvider = {
overrideProviders: false
};
const ncProviders = nodeCloud.getProviders(optionsProvider);
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}`);
});
```

## Override providers

NodeCloud officialy supports AWS, GCP, Azure, DigitalOcean and AliCloud. If you want to use a community driven plugin override the providers list as follows.

```js
const nodeCloud = require("nodecloud");
const options = {
overrideProviders: true
};
const ncProviders = nodeCloud.getProviders(options);
```

## 💻 Development setup

```
$ git clone https://github.com/cloudlibz/nodecloud
$ cd nodecloud
$ yarn install
```

## ✒️ Run unit tests

```
$ yarn test
```

## 📜 License

MIT
Expand Down

0 comments on commit e8f4a99

Please sign in to comment.