Giter Club home page Giter Club logo

gocloud's Introduction

GoCloud Logo

Codacy Badge Build Status Gitter docs

gocloud

GoCloud is a golang library which hides the difference between different APIs provided by varied cloud providers (AWS, GCP, OpenStack etc.) and allows you to manage different cloud resources through a unified and easy to use API.

Service Types

Compute -- Allows you to manage cloud and virtual servers.

Compute Storage -- Allows you to manage Compute storage.

Container -- Allows users to install and deploy containers onto container based virtualization platforms.

Load balancer -- Allows you to manager Load Balancer service.

DNS -- Allows you to manage DNS service.

Service Providers

AWS

Google

DigitalOcean

Ali-cloud

Vultr

Currently, implementations for other cloud providers are being worked on.

Install

Linux (Ubuntu)

  1. Install golang.

    $ sudo apt-get update -y
    $ sudo apt-get install golang -y
    
  2. Set GOPATH environment variable. Run gedit ~/.bashrc.
    Copy the following in your .bashrc file:

export GOPATH=$HOME/gopath
export GOBIN=$HOME/gopath/bin
  1. Test your installation by copying the following piece of code in a file. Save the file as gotest.go. Run the file using the command go run gotest.go. If that command returns “Hello World!”, then Go is successfully installed and functional.
package main
import "fmt"
func main() {
    fmt.Printf("Hello World!\n")
}
  1. Now we need to fetch the gocloud repository and other necessary packages. Run the following commands in order:
$ go get github.com/cloudlibz/gocloud
$ go get golang.org/x/oauth2
$ go get cloud.google.com/go/compute/metadata
  1. Create a directory called .gocloud in your HOME directory. Download your AWS, Google and DigitalOcean access credentials and store them in a file in your .gocloud folder.

    AWS:

    Save your AWS credentials in a file named amazoncloudconfig.json.

    {
      "AWSAccessKeyID": "xxxxxxxxxxxx",
      "AWSSecretKey": "xxxxxxxxxxxx"
    }

    Google Cloud Services:

    Save your Google Cloud credentials in a file named googlecloudconfig.json. The file is downloaded in the required format.

    DigitalOcean:

    Save your DigitalOcean credentials in a file named digioceancloudconfig.json.

    {
      "DigiOceanAccessToken": "xxxxxxxxxxxx"
    }

    Ali-cloud:

    Save your Ali-cloud credentials in a file named alicloudconfig.json.

    {
      "AliAccessKeyID":"xxxxxxxxxxxx",
      "AliAccessKeySecret":"xxxxxxxxxxxx"
    }

    Vultr:

    Save your Vultr credentials in a file named vultrconfig.json.

    {
      "VultrAPIKey":"xxxxxxxxxxxx"
    }
    

    You can also set your credentials as environment variables.

    AWS:

    export AWSAccessKeyID =  "xxxxxxxxxxxx"
    export AWSSecretKey = "xxxxxxxxxxxx"
    

    Google Cloud Services:

    export PrivateKey =  "xxxxxxxxxxxx"
    export Type =  "xxxxxxxxxxxx"
    export ProjectID = "xxxxxxxxxxxx"
    export PrivateKeyID = "xxxxxxxxxxxx"
    export ClientEmail = "xxxxxxxxxxxx"
    export ClientID = "xxxxxxxxxxxx"
    export AuthURI = "xxxxxxxxxxxx"
    export TokenURI = "xxxxxxxxxxxx"
    export AuthProviderX509CertURL = "xxxxxxxxxxxx"
    export ClientX509CertURL =  "xxxxxxxxxxxx"
    

    DigitalOcean:

    export DigiOceanAccessToken =  "xxxxxxxxxxxx"
    

    Ali-cloud:

    export AliAccessKeyID =  "xxxxxxxxxxxx"
    export AliAccessKeySecret =  "xxxxxxxxxxxx"
    

    Vultr:

    export VultrAPIKey =  "xxxxxxxxxxxx"
    
  2. You are all set to use gocloud! Check out the following YouTube videos for more information and usage examples: https://youtu.be/4LxsAeoonlY?list=PLOdfztY25UNnxK_0KRRHSngJIyVLDKZxq&t=3

Development setup

$ git clone https://github.com/cloudlibz/gocloud
$ cd gocloud

Unit tests

$ cd gocloud
$ go test -v ./...

Please make sure to delete all your instances, storage blocks, load balancers, containers, and DNS settings once you run the tests by visiting the respective web portals of the cloud providers.

gocloud's People

Contributors

abhigupta55555 avatar adhyandhull avatar aswinmprabhu avatar charithccmc avatar emgaurv avatar gaurav-diginix avatar iammosespaulr avatar keshav1002 avatar oddcn avatar pengnam avatar pratikdhanave avatar rajikaimal avatar rehrumesh avatar shlokgilda avatar shlokj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gocloud's Issues

More information needed in README.md/Wiki

The README.md file needs way more information than it actually has, or we can create a seperate wiki page for specifying other instructions.

Sections we can add:

  • Installations methods for All OS'
  • More brief description on the application
  • How to use guide
  • Implementation details
  • Helpful external links

Error in test cases & Naming suggestion for AWS LoadConfig()

Issue Overview

In auth package, the auth.LoadConfig() function already renamed as auth.AWSLoadConfig().
But int test cases such as compute/ec2/instance_test.go, container/awscontainer/container_test.go, etc.Inside the init() function of the test cases is still the previous method - auth.LoadConfig().

Suggestion

Rename auth.AWSLoadConfig() as awsAuth.LoadConfig(), and fix usages 's name of this package function. This will be more applicable to other auth of cloud naming, such as aliAuth.LoadConfig(), azureAuth.LoadConfig().

Wiki page for installation instructions

There should be a wiki page with the installation and setup procedures to get gocloud running on user's computer. There should be at least linux setup instructions, but some users (like me) use windows so there also should be instructions for windows. But linux should be the priority.

Also gocloud fails to mention what are all the dependencies, making it harder to try and work out how to setup gocloud. The dependencies should be included in setup process, and should also be found in the README.md file

Suggestion: Use Builder pattern for inputting parameters of Ali-cloud

For example, the current way to create a new node of Ali-cloud is:

	alicloud, _ := gocloud.CloudProvider(gocloud.Aliprovider)
	create := map[string]interface{}{
		"RegionId":            "cn-qingdao",
		"ImageId":             "centos_7_04_64_20G_alibase_201701015.vhd",
		"InstanceType":        "ecs.xn4.small",
		"SecurityGroupId":     "sg-m5egbo9s5xb21kpu6nk2",
	}
	resp, err := alicloud.Createnode(create)

The Problem

In the current way, we cannot prevent user from entering wrong parameter name and missing required parameters.

Suggestion

If we use Builder pattern like this:

	alicloud, _ := gocloud.CloudProvider(gocloud.Aliprovider)
	createNodeBuilder := ecs.NewCreateNodeBuilder().
		RegionID("cn-qingdao").
		ImageID("centos_7_04_64_20G_alibase_201701015.vhd").
		InstanceType("ecs.xn4.small").
		SecurityGroupID("sg-m5egbo9s5xb21kpu6nk2")
	createNode, err := createNodeBuilder.Build()

	if err != nil {
		// May miss required parameters
	}
	resp, err := alicloud.Createnode(createNode)

We can

  • Prevent user from inputting wrong parameter name
  • Throw an error when user miss input required parameters
  • Let user add parameters in different places
  • Let user have higher freedom, clearer code

Suggestion: Expanding to New Cloud Networks

Currently, gocloud provides servicing with Amazon AWS and Google Cloud softwares, which restricts the use of many different cloud providing softwares. As technology grows and expands, there are more resources that people use to save files and access the cloud.

Some of the fastest growing cloud providers are Verizon Cloud, DropBox, and IBM Cloud. As the two services: Google Cloud and Amazon AWS have been provided for gocloud, the new cloud services can be provided similarly, as well.

Overall, expanding to new, fast-growing cloud providers can significantly increase collaboration on gocloud's projects and codes.

More about the APIs:

Verizon & IBM Cloud: http://documentation.cloud.verizon.com/#APIReferencePrivateCloud.htm
DropBox: https://dropbox.github.io/dropbox-api-v2-explorer/

These websites show the types of APIs that can be used to start providing these services on gocloud.

Application uses default HTTP Client

The application uses Go's default HTTP client. However, Go’s http package doesn’t specify request timeouts by default, allowing services to hijack our goroutines. Shouldn't we consider the use of a custom http.Client when connecting to the external APIs?

Google Code-In 2017: Getting Started Issue

THIS IS A NOT A REAL ISSUE BUT A PLACEHOLDER.

All the practising PRs for Google Code-In 2017 should refer this issue. PRs referring this issue will be closed without merging. Do not refer this issue if you are NOT submitting a practice PR and need your work merged.

To list down rising/trending cloud providers

Apart from GCP and AWS, which are already implemented, the following can also be good providers for goCloud.

Atlantic.Net was founded in 1994 and provides cloud hosting and dedicated hosting solutions for individuals and companies. Its solutions are compliant with the Health Insurance Privacy and Portability Act (HIPAA) for hosting sensitive medical data. The company is based in Orlando, Florida.

image

Microsoft Azure, formerly known as Windows Azure, is Microsoft's public cloud computing platform. It provides a range of cloud services, including those for compute, analytics, storage and networking. Users can pick and choose from these services to develop and scale new applications, or run existing applications, in the public cloud.

image

Rackspace Inc. is a managed cloud computing company based in Windcrest, Texas, USA, a suburb of San Antonio, Texas. It is an emerging cloud provider.

image

CloudSigma is an IaaS-based provider offering cloud servers and cloud hosting solutions in Europe and the U.S.

image

1&1 is positioned as the brand for home users, freelancers and small businesses. 1&1's specialty are its internet access products and hosting and e-business solutions in the cloud

image

Suggestion: Gradually add packages to GoDoc

GoDoc generates documentation from Go source code. If this is necessary, we can use the convenience of GoDoc to generate documents for us.

Thanks to the awesome coding style and comments previously contributed by all developers, it is not difficult for us to add GoCloud package to GoDoc.

Suggestion: Add more information about what gocloud does/how to install

In the current README.md file, there is the logo, the providers, and a basic thesis about what gocloud is all about. After reading this, many users may not understand how the repo works and/or what it does.

A small description should be added to thoroughly explain how gocloud actually works.

The description can go something like this: "gocloud can be installed by inputting this code into Terminal or any other code editing software. . gocloud is mostly operated online, so it can be found at ."

Adding this description can increase collaboration and increase productivity on this repo. The first step to any problem is understanding, as the Transcendentalists once confirmed. A description will enhance understanding and give users the first step to solving an issue or working on a project.

Ammendments in Wiki and README.MD

Wiki should contain how to use GoCloud along with screen-shots (for macOS, Windows or Linux) attached.
The information is present in docs folder but it should be accessible through the wiki too.
Also link to video tutorial by Pratik Dhanave should be put in wiki as well as README file.
There should also be links to various blogspots written by students for tasks : 1 and 2.

Also there is a spelling error in the current README.MD file :
image
I have submitted a PR for same here.
This error should also be corrected in the Wiki.

Top Cloud Providers

Microsoft Azure

   It's a little more difficult to figure out how much revenue Microsoft generates from cloud computing. In its fiscal 2016 Q4 report, the company said that its "Intelligent Cloud" revenue increased 5 percent to reach $6.7 billion. That makes it seem like Microsoft does more cloud business than Amazon, except that Microsoft includes its very substantial server revenues along with its Azure cloud computing service in the Intelligent Cloud category. The company has previously said that its Azure business is on a $10 billion annual run rate, or around $2.5 billion in revenue per quarter. Most market analysts put it in the number two spot behind Amazon.

   In addition to its Azure IaaS and PaaS offerings, Microsoft also has several SaaS offerings, including its Office 365 products, the online versions of its Dynamics line of enterprise software and its online developer tools.

Get an in-depth look at Azure.

IBM Cloud

   Although it hasn't always been considered one of the "big three" cloud computing vendors, IBM's cloud business has been coming on strong. In its most recent quarterly report, IBM said that its "cloud-as-a-service revenue was up 50 percent," and had an annual run rate of $6.7 billion.

  IBM's most visible cloud service is its Bluemix PaaS, which is aimed primarily at enterprise development teams. The company also a lot of enterprise software on a SaaS basis, and it sells cloud infrastructure, cloud management tools and cloud managed services.

   Get an in-depth look at [IBM Cloud](http://www.datamation.com/cloud-computing/ibm-cloud.html).

Adobe

Adobe offers many products that provide cloud services. Few among them are Adobe Creative Cloud, Adobe Experience Cloud and Adobe Document Cloud etc.
Adobe Creative Cloud service is a SaaS, that offers its users to access the tools offered by Adobe like editing the videos, photography, graphic designing etc.
Adobe Experience Cloud offers its users to access a broad set of solutions for advertising, building campaigns and gaining intelligence on business.
Adobe Document Cloud is a complete solution for digital documentation.

For more information on this service, visit Adobe website.

Vmware

VMware is a universal leader in virtualization and Cloud Infrastructure.
VMware’s cloud computing is exclusive and helps in reducing the IT intricacy, lower the expenses, provides flexible agile services etc.
VMware vCloud Air is a safe and protected public cloud platform that offers networking, storage, disaster recovery and computing etc.
VMware’s Cloud solutions facilitate to maximize your organization’s profits of cloud computing by combining the services, technologies, guidance needed to operate and manage the staff etc.

Visit this website for further details on VMware Cloud service.

Redhat

Red Hat is an Open Cloud technology used by IT organizations to deliver agile and flexible solutions.
Using Red Hat Cloud we can modernize the apps, update and manage them from a single place and integrate all the desired parts into a single solution.
Red Hat Cloud Infrastructure helps us to build and manage an open cum private cloud at low cost.
Red Hat Open Shift is an open and hybrid service used by developers to develop, deploy, host and delivers the applications quickly.

You can visit the Red Hat website and browse for more information regarding cloud computing.

Authentication requires AWS Credentials always

In order to use GoCloud, AWS credentials need to be passed always, even when accessing Google Cloud services. This restricts the functionality of the application as the developer needs to have access to AWS even if they don't plan to use it.

Possible Fix: Refactor the code to use only the credentials for a particular cloud provider instead of requiring access credentials for all cloud providers (in this case, AWS).

Fix to gocloud/compute/ec2/region.go

In this, only one region (USEast) is defined although there are many more in AWS. More diverse regions' information (sa-east-1, eu-west-2, etc.) should be included as other variables so that it is convenient for people to use these prepared constants rather than instantiating a region with the information each time they would like to reference it.

TOP 4 RISING AND TRENDING CLOUD PROVIDERS WITH THEIR LINKS

TOP 4 RISING AND TRENDING CLOUD PROVIDERS AND THEIR FULL INFORMATION WITH THEIR LINKS TO SEARCH ON-
SO HERE 1st comes -
AMAZON WEB SERVICES
icon-cloud-aws
Amazon Web Service provides cloud computing services, including IaaS and PaaS, and is widely considered the leading cloud vendor.
By all accounts, Amazon Web Services (AWS) is the world's largest public cloud computing service. And although several other cloud computing providers are currently growing more quickly than Amazon, John Dinsdale, a chief analyst and research director at Synergy Research Group, said that Amazon remains "in a field of its own."

According to the company website, AWS currently operates 42 different "availability zones," which it defines as "one or more discrete data centers, each with redundant power, networking and connectivity, housed in separate facilities." It currently has data centers in 16 different geographic regions, and it plans to expand to three more regions before the end of 2017.

Amazon Web Services (AWS) is the undisputed market leader in cloud computing. According to Amazon's most recent quarterly financial report, AWS generated $2.9 billion in revenue for the quarter ending June 30, 2016, up from $1.8 billion during the same quarter last year.

The company offers a complete range of IaaS and PaaS services. Among the best known are its Elastic Compute Cloud (EC2), Elastic Beanstalk, Simple Storage Service (S3), Elastic Block Store (EBS), Glacier storage, Relational Database Service (RDS), and DynamoDB NoSQL database. It also offers cloud services related to networking, analytics and machine learning, the Internet of Things (IoT), mobile services, development, cloud management, cloud security and more.
LINK TO SEARCH ON DEPTH ABOUT IT-https://aws.amazon.com/

AWS Services
Amazon divides its extensive portfolio of cloud computing services into 19 different categories:

1.Compute — includes its best-known product, EC2, as well as its Container Service, Virtual Private 2.Cloud, Elastic Beanstalk and the Lambda serverless computing service, among others
3.Storage — includes S3, as well as Elastic Block Storage, Glacier, Snowball and others
4.Database — includes both relational and NoSQL databases, including Aurora, Amazon RDS, 5.DynamoDB, ElastiCache, Redshift and more
6.Migration — includes services to help enterprises move from traditional data centers to the public cloud
7.Networking and Content Delivery — includes Elastic Load Balancing, the Route 53 DNS service, the CloudFront content delivery network and more
8.Developer Tools — includes multiple tools to support DevOps and Agile software development, including CodeCommit repositories, CodePipeline continuous integration and delivery, CodeBuild testing, CodeDeploy deployment automation, etc.
9.Management Tools — includes services to help administrators monitor and manage hybrid cloud infrastructure
10.Artificial Intelligence — includes Lex chatbot services, Polly text-to-speech, Rekognition image analysis and the Amazon Machine Learning platform
Analytics — includes big data tools like the EMR Hadoop framework, Kinesis streaming data, Glue ETL, QuickSight business intelligence and more
Security, Identity and Compliance — includes cloud security tools such as Identity and Access 11.Management (IAM), Inspector security assessment, Shield DDOS Protection and many other services
12.Mobile Services — includes mobile development tools like the Mobile Hub and the Mobile SDK
13.Application Services — includes Step Functions, API Gateway and Elastic Transcoder
14.Messaging — includes the SQS, Simple Notification Service (SNS), Pinpoint push notifications and Simple Email Service (SES)
15.Business Productivity — includes Chime communications services, WorkDocs enterprise storage and sharing service and WorkMail secure email
16.Desktop and App Streaming — includes the Workspaces desktop-as-a-service offering and AppStream, which streams desktop applications to a browser
17.Software — includes third-party software as a service available through the AWS Marketplace
Internet of Things — includes the AWS IoT Platform, Greeengrass and IoT Button programmable devices
18.Contact Center — includes Amazon's cloud-based, self-service call center, called Amazon Connect
19.Game Development — includes GameLift game server hosting and the free Lumberyard 3D game engine.

aws features and costs

WHY WE SWITH TO AMAZON WEB SERVICES(AWS)-
In comparison with the other major public cloud vendors — Microsoft Azure, Google Cloud Platform and IBM — AWS has a few clear advantages.

First is its sheer size. Amazon's list of services has a breadth and depth that few other public cloud providers can match. It has data centers spread all around the world, and it has a long and growing list of customers. That's part of the reason why Gartner concluded, "Although AWS will not be the ideal fit for every need, it has become the 'safe choice' in this market, appealing to customers who desire the broadest range of capabilities and long-term market leadership."

Second, Amazon's prices are generally comparable to the other major cloud vendors for most use cases. Economies of scale have given the company the ability to drop its prices repeatedly, and it continues to do so on a regular basis.

Third, AWS is very popular with developers. That's not surprising, given that it was born out of Amazon's need to simplify IT infrastructure for its own developers. Startup developers who use AWS often find that it is simplest to keep using the cloud service as their companies grow. And enterprise developers who like to use AWS for dev and test are often influential is selecting the service for production workloads as well.
SECOND COMES-
MICROSOFT AZURE-

microsoft-azure-640x401
It's a little more difficult to figure out how much revenue Microsoft generates from cloud computing. In its fiscal 2016 Q4 report, the company said that its "Intelligent Cloud" revenue increased 5 percent to reach $6.7 billion. That makes it seem like Microsoft does more cloud business than Amazon, except that Microsoft includes its very substantial server revenues along with its Azure cloud computing service in the Intelligent Cloud category. The company has previously said that its Azure business is on a $10 billion annual run rate, or around $2.5 billion in revenue per quarter. Most market analysts put it in the number two spot behind Amazon.

In addition to its Azure IaaS and PaaS offerings, Microsoft also has several SaaS offerings, including its Office 365 products, the online versions of its Dynamics line of enterprise software and its online developer tools.

For organizations looking for a public cloud provider, Microsoft stands out as one of the top vendors in the market with a wide range of services available.

Microsoft offers all three of the major categories of cloud computing: software as a service (SaaS), infrastructure as a service (IaaS) and platform as a service (PaaS). It sells its IaaS and PaaS offerings under the Microsoft Azure brand name.

By nearly all estimates, Azure is the second largest IaaS and PaaS service on the planet, trailing behind Amazon Web Services (AWS). It is particularly popular among large, geographically dispersed enterprises, especially those that use Microsoft software like Windows and Office.

Today, Microsoft Azure enjoys a reputation as a mature, reliable and highly secure public cloud provider. However, Azure has had to play a lot of catch up to earn this spot.

Microsoft Azure Services
Microsoft Azure offers an extremely large portfolio of cloud services, which it divides into Thirteen categories:
1.Compute — includes Virtual Machines, Virtual Machine Scale Sets, Functions for serverless computing, Batch for containerized batch workloads, Service Fabric for microservices and container orchestration, and Cloud Services for building cloud-based apps and APIs
2.Networking — includes a variety of networking tools, like the Virtual Network, which can connect to on-premise data centers; Load Balancer; Application Gateway; VPN Gateway; Azure DNS for domain hosting, Content Delivery Network, Traffic Manager, ExpressRoute dedicated private network fiber connections; and Network Watcher monitoring and diagnostics
3.Storage — includes Blob, Queue, File and Disk Storage, as well as a Data Lake Store, Backup and Site Recovery, among others
4.Web + Mobile — includes several services for building and deploying applications, but the most notable is probably the App Service, which comprises services for Web Apps, Mobile Apps, Logic Apps (a low-code, data-driven service) and API Apps (for creating and using APIs)
5.Containers — includes Container Service, which supports Kubernetes, DC/OS or Docker Swarm, and Container Registry, as well as tools for microservices
6.Databases — includes several SQL-based databases and related tools, as well as Cosmos DB, Table Storage for NoSQL and Redis Cache in-memory technology
7.Data + Analytics — includes big data tools like HDInsight for Hadoop Spark, R Server, HBase and Storm clusters; Stream Analytics; Data Lake Analytics; and Power BI Embedded, among others
8.AI + Cognitive Services — includes multiple tools for developing applications with artificial intelligence capabilities, like the Computer Vision API, Face API, Bing Web Search, Video Indexer, Language Understanding Intelligent Service and more
9.Internet of Things — includes IoT Hub and IoT Edge services that can be combined with a variety of machine learning, analytics and communications services
Enterprise Integration — includes multiple tools for building and managing hybrid cloud computing environments
10.Security + Identity — includes Security Center, Azure Active Directory, Key Vault and Multi-Factor Authentication Services
11.Developer Tools — includes cloud development services like Visual Studio Team Services, Azure DevTest Labs, HockeyApp mobile app deployment and monitoring, Xamarin cross-platform mobile development and more
12.Monitoring + Management — includes numerous tools for managing Azure workloads and hybrid cloud environments, such as the Microsoft Azure Port, Azure Resource Manager, Log Analytics, Automation, Scheduler and more
13.Microsoft Azure Stack — includes solutions for replicating Azure infrastructure in enterprise data centers with the goal of facilitating hybrid cloud deployments

azure features and costs

WHY YOU CHOOSE TO MICROSOFT AZURE-
The biggest advantage that Microsoft has when it comes to its cloud computing services can be summed up in one word: Windows.

For organizations that already use Microsoft software, such as Windows, Office, SQL Server, SharePoint, Dynamics, etc., using the Microsoft cloud computing service seems like a natural fit. It allows them to use the tools and interfaces that they are already familiar with and helps them get up and running quickly.

In addition, Microsoft has made a particular effort at enabling hybrid computing, and its Azure Stack solution, which is still in technical preview, seems likely to enhance its appeal for enterprises with hybrid environments.

Microsoft has also very deliberately targeted the government market. It touts its security and compliance capabilities, and its website claims, "Azure has been recognized as the most trusted cloud for U.S. government institutions, including a FedRAMP High authorization that covers 18 Azure services."

Finally, Microsoft Azure has a very vibrant ecosystem with a lot of partnerships with other technology vendors. For example, it has relationships with Red Hat, Canonical, Citrix, HPE, Adobe, SAP, Cisco and many others, that enhance the services it is able to offer customers.

azure regions

Microsoft’s map of the Azure regions, which span the globe; proximity to a data center is important for cloud customers.
LINK TO GO INTO DEPTH AND SEARCH It-https://azure.microsoft.com/en-in/

THIRD COMES-
IBM CLOUD-

ibm cloud
Although it hasn't always been considered one of the "big three" cloud computing vendors, IBM's cloud business has been coming on strong. In its most recent quarterly report, IBM said that its "cloud-as-a-service revenue was up 50 percent," and had an annual run rate of $6.7 billion.

IBM's most visible cloud service is its Bluemix PaaS, which is aimed primarily at enterprise development teams. The company also a lot of enterprise software on a SaaS basis, and it sells cloud infrastructure, cloud management tools and cloud managed services.

IBM's Bluemix cloud computing platform stands out for its bare metal servers, GPU servers, big data analytics and cognitive computing capabilities, as well as its developer-friendly features.

When it comes to public cloud computing vendors, IBM doesn't always enjoy the same mindshare as Amazon Web Services (AWS), Microsoft Azure and Google Cloud Platform. However, some analyst reports have claimed that IBM actually has a larger share of the infrastructure as a service (IaaS) and platform as a service (PaaS) market than Google. Other analyses place it solidly in fourth place behind the "big three." Either way, IBM is one of the largest cloud computing providers on the planet.

Telling the story of IBM's public cloud computing capabilities is complicated by the fact that IBM uses a lot of different brand names for its cloud services. The "IBM Cloud" label is an umbrella category that encompasses its hardware, software and services for helping enterprises build private clouds, as well as its Bluemix public cloud services. The "Bluemix" name used to be reserved for IBM's PaaS services for developers, but now Bluemix also offers some IaaS services.

In addition, IBM has another IaaS service called SoftLayer. Organizations can still purchase cloud computing services under the SoftLayer brand name, but IBM seems to migrating toward the Bluemix brand. These days the company describes SoftLayer as the infrastructure that forms "the core of IBM Bluemix," and the "about us" link on the SoftLayer website takes you to the Bluemix site.

If all that weren't confusing enough, over the years IBM has used a number of other brand names for its cloud services, including Cloudburst, Smart Business and SmartCloud.

IBM Cloud Services
Because IBM seems to be focusing more attention on Bluemix than SoftLayer, this list will cover its Bluemix offerings rather than those available through SoftLayer. The company divides its Bluemix Services into twelve categories:

1.Compute Infrastructure — includes its bare metal servers (single-tenant servers that are highly customizable), virtual servers, GPU computing, POWER servers (based on IBM's POWER architecture) and server software
2.Compute Services — includes OpenWhisk serverless computing, containers and Cloud Foundry runtimes
3.Storage — includes object, block and file storage, as well as server-backup capabilities
4.Network — includes load balancing, Direct Link private secure connections, network appliances, content delivery network and domain services
5.Mobile — includes IBM's Swift tools for creating iOS apps, its MobileFirst Starter package for getting a mobile app up and running, and its Mobile Foundation app back-end services
6.Watson — includes IBM's artificial intelligence and machine learning services, which it calls "cognitive computing," such as Discovery search and content analytics, Conversation natural language services and speech-to-text
7.Data and analytics — includes data services, analytics services, big data hosting, Cloudera hosting, MongoDB hosting and Riak hosting
8.Internet of Things — includes IBM's IoT platform and its IoT starter packages
9.Security — includes tools for securing cloud environments, such as a firewall, hardware security modules (physical devices with key management capabilities), Intel Trusted Execution Technology, security software and SSL certificates
10.DevOps — includes the Eclipse IDE, continuous delivery tools and availability monitoring
11.Application services — includes Blockchain, Message hub and business rules, among others
12.Integration — includes tools for building virtual bridges for hybrid cloud and multi-cloud environments, such as API Connect and Secure Gateway

ibm cloud features and costs

WHY YOU CHOOSE IBM CLOUD-
The IBM Cloud has a few unique offerings that its competitors can't match. For example, it is the only major cloud vendor that emphasizes its bare metal servers, which can be very attractive for organizations that have particular performance or security requirements. IBM also gives organizations a lot of flexibility and customization options that the other vendors don't have. On the downside, it can take up to several hours to configure and deploy a custom server, so these options don't offer the same speed as AWS, Azure or Google.

IBM also stands out in some other areas, like its cutting-edge blockchain offering, and its Watson cognitive computing capabilities. Ever since its Watson technology appeared on the television game show Jeopardy, IBM has been garnering attention for its artificial intelligence capabilities — although it does face stiff competition from Google and others.

Organizations that already use IBM technology, such as Power8 servers or IBM software, in their data centers will likely be drawn to the IBM Cloud in the same way that Microsoft users are drawn to Azure. The company has made significant investment in enabling hybrid cloud computing, and many of its cloud management and security tools work across hybrid and multi-cloud environments.

Gartner has noted, "Customers report positive experiences of IBM's Bluemix support and their business relationship. Strategic support of the hybrid deployment model and the broad spectrum of platform choices, from hosted to cloud-native, are well-suited to the variety of cloud migration strategies used by IBM customers." Similarly, in a survey conducted by Cowen & Co., IBM scored high for the quality of its IT support, but those surveyed cited its cost as a weakness.

LINK TO GO DEPTH AND SEARCH ABOUT IT-https://www.ibm.com/cloud/

FOURTH COMES-
GOOGLE CLOUD PLATFORM (GCP)-

cloud_platform
Google doesn't break out its cloud computing numbers, so it's very difficult to tell how much revenue its Cloud Platform generates. In a recent report, Synergy estimated that Google is fourth in the IaaS and PaaS market with a 4 percent share of the market. The report also noted that Google's cloud revenue is climbing rapidly, surging 108 percent year-over-year in 2015.

Like Amazon and Microsoft, Google offers a very full range of IaaS and PaaS services that span compute, storage, networking, big data, machine learning, developer tools and security. Some of its best-known cloud offerings include Compute Engine, App Engine, Container Engine, Cloud Storage and BigQuery.
Along with strong IaaS capabilities, it is Google's PaaS that really shines — and the Google Cloud Platform excels at big data, analytics and machine learning as well.
As the world's undisputed leader in Internet search, Google has undeniable expertise in running data centers. After Amazon launched its cloud computing service in 2006, Google put that data center expertise to work by launching a cloud service of its own. Soon it became known as one of the "big three" public cloud vendors, along with AWS and Microsoft.

Depending on which analyst report you read, today Google is either the third or the fourth largest public cloud vendor, behind Amazon, Microsoft and (possibly) IBM. While its larger competitors tout their broad portfolios of services, Google has a narrower focus and specializes in meeting the needs of developers. Through its Web search and advertising businesses, the company has become particularly adept at handling big data, and it has transferred those capabilities to its cloud computing business as well, developing a solid reputation for prowess in analytics, artificial intelligence and machine learning.

Google Cloud Platform Services
Google Cloud Platform's portfolio of cloud services isn't as extensive as Amazon's or Microsoft Azure's, but it offers some specialized tools for developers that are hard to find elsewhere. It organizes its cloud services into the following nine categories:

1.Compute — includes Google's original cloud service, the App Engine PaaS, as well as Compute Engine, Container Engine, Container Registry and the Cloud Functions serverless computing offering
2.Storage and Database — includes Cloud Storage object storage, Cloud SQL with MySQL or PostgreSQL database options, Cloud Bigtable NoSQL database, Cloud Spanner relational database, Cloud Datastore NoSQL database and Persistent Disk block storage
3.Networking — includes Virtual Private Cloud (VPC), Cloud Load Balancing, Cloud CDN content delivery, Cloud Interconnect for enterprise-grade connections to Google's Cloud and Cloud DNS for Web domain serving
4.Big Data — includes the BigQuery large-scale data warehouse, Cloud Dataflow for batch and stream data processing, Cloud DataProc with Spark and Hadoop capabilities, Cloud Datalab for analytics and visualizations, Cloud Dataprep for data preparation, Cloud Pub/Sub messaging, Genomics for genetic scientists and Google Data Studio for business reporting
5.Internet of Things — includes Google's Cloud IoT Core for secure device connection and management
6.Machine Learning — includes Google's Cloud Machine Learning Engine, as well as its APIs for job search, natural language, speech, translation, vision and video intelligence
7.Identity and Security — includes Cloud IAM identity and access management, Cloud Identity-Aware Proxy, Cloud Data Loss Prevention API, Security Key Enforcement, Cloud Key Management Service, Cloud Resource Manager and the Cloud Security Scanner
8.Management Tools — includes Stackdriver Overview, Monitoring and Logging, all of which support both Google Cloud Platform and AWS. This category also includes app optimization and deployment tools like Trace, Debugger, Cloud Deployment Manager, Cloud Endpoints, Cloud Console, Cloud Shell, Cloud Mobile App, Cloud Billing API and other Cloud APIs
9.Developer Tools — Includes the Cloud SDK with its command line interface for Google Cloud Platform services, container tools, Cloud Source Repositories, Cloud Tools for Android Studio, Cloud Tools for IntelliJ, Cloud Tools for Powershell, Cloud Tools for Visual Studio, Cloud Tools for Eclipse, Gradle App Engine Plugin, Maven App Engine Plugin and the Cloud Test Lab for On-Demand Testing

google cloud features and costs

WHY YOU SWITH TO GOOGLE CLOUD PLATFORM-
Google's biggest advantage when it comes to cloud computing is its experience as the world's leading search engine. By powering Internet search, Google learned how to design and manage Web-scale data centers, and that expertise allows it to achieve high reliability and fast performance, as well as economies of scale that enable very low prices.

Those low prices are a key differentiator for Google. It has committed itself to price leadership in the public cloud, and offers a variety of discount programs and rightsizing recommendations to help customers keep costs low.

In addition, Google employs a vast number of developers itself, and that gives the company insight into what developers need and want from a cloud computing provider. Many of its cloud offerings are tailored for the needs of developers, particularly developers who are building cloud-native apps.

The company also touts its commitment to innovation and openness. It is a leader in the fast-growing area of data analytics and machine learning. It also boasts fast performance and easy set-up and deployment.
google cloud platform
The Google Cloud Platform offers a diverse array of tools, and is considered particularly strong in data analytics.
LINK TO SEARCH MORE AND GO INTO DEPTH-https://cloud.google.com/

Maintain a develop branch

One of the best practice is to maintain two branches.

  1. Develop - for all the developer commits to the project
  2. master - to sync the code which doesn't break the build and use it for building the main project.

Refactor and Architect GoCloud

Hello @PratikDhanave

I was here to contribute to this package but I found the repository unorganized. So, I suggest you refactor and re-architect the gocloud just like nodecloud as well as I suggest to add versions for every updated version of SDK or API.

I would love to work with you on this project.

List of rising/trending cloud providers

List of rising/trending cloud providers with their advantages aside from GCP and AWS.

1. Atlantic.net
Atlantic.Net is a trusted and proven hosting company in web hosting industry. It's reputation is founded upon over twenty years of direction and counsel given to CEOs, managers, engineers, and IT professionals. Clients and affiliates know they can rely on its support and services to make their businesses grow and prosper. Customer satisfaction is, always has been, and forever will be paramount at Atlantic.Net. You can depend on it!

  • API controls
  • Storage API
  • SSL Certificates

atlantic net

2. Microsoft Azure
Azure Virtual Machines lets users deploy a wide range of computing solutions. Users can deploy a virtual machine nearly instantly, and pay by the minute. With support for Microsoft Windows, Linux, Microsoft SQL Server, Oracle, IBM, SAP, and Azure BizTalk Services, users can deploy any workload and any language on nearly any operating system. Azure Storage provides users with the ability to scale, to store, and retrieve large amounts of data. Azure Blob Storage is used to store unstructured data, such as documents and media files. Azure Table Storage is functional for structured NoSQL data. Users can use Azure Queue Storage to reliably store messages, and the SMB-based Azure File Storage for existing or new applications.

  • Virtual Networking API
  • Compute API
  • Storage Provider API
  • Analytics of final reults

microsoft azure

3. IBM Cloud
The IBM Cloud has been built to help you solve problems and advance opportunities in a world flush with data. Whether it’s data you possess, data outside your firewall, or data that’s coming, the IBM Cloud helps you protect it, move it, integrate it and unlock intelligence from it — giving you what it takes to prevail in a competitive market.

  • SoftLayer Computing API
  • Infrastructure
  • Object Storage API

ibm cloud

4. Rackspace
Users can instantly provision bare-metal servers using the OpenStack API or the control panel to bring more consistency and predictability to application performance. It offers hosts for virtual machine flavor classes, as well as all the bare-metal servers, receive redundant, dual, bonded 10Gbps network connections to fuel high-bandwidth applications. All servers also have a blazing 10Gbps connection to Cloud Block Storage. OnMetal servers are single-tenant, bare metal servers provisioned via the same OpenStack API as the Rackspace cloud. They can be spun up or down as quickly as VMs to offer the agility of multi-tenant environments with the performance of single-tenant hardware. OnMetal servers are engineered as 100 percent solid-state with external cooling. This provides increased mean time between failures (MTBF).

  • Monitoring
  • OpenStack API
  • Control Panel
  • Block Storage API
  • Infrastructure services

rackspace

5. GoDaddy
GoDaddy was using a hosting company from India and it had a great deal of trouble with their tech support. Their English was mediocre and their response time to issue was very slow. It could take several days before we heard from them, and weeks to solve the issue. The cost was very high, thousands of dollars per month. Their servers experienced a security breach and we lost 3 of our websites permanently because their backup system failed. GoDaddy offers immediate and expert tech support. They provide daily backup and restore services. The cost is less than $100 per month for the same amount of cloud space we had with our former company. They use the cloud servers for web hosting, as well as email hosting. They also use their domain name service. GoDaddy has performed above and beyond the call of duty. It has benefited us by have minimal downtime for its websites, fast loading speeds and extreme diligence in solving issues. It have very few issues.

  • Backups
  • Solid-State Drive API
  • DNS API

godaddy

Information and image source

Issue Template and Pull Request Template are not available

I think it's better if there are Issue Template and Pull Request Template in this repository. So every contributor can make good issue and pull request. Also these templates help contributor to pinpoint issue, trouble, and error quickly.

Needs more Informations

The Readme.md should have more Information on the how to use the program or the download link of gocloud software. It needs more information regarding the the program as for a beginner new to coding and cloud computing.

Refactor and fix code and test cases

As you can see, the Travis CI builds are failing due to unnecessary imports, functions, variables and the test cases are failing. I tried to fix it (#126) thinking it would take only some time but it seems that the codebase has many errors.

List down rising/trending cloud providers

1. Open Stack

OpenStack is used for launching a large pool of servers through it's APIs. Following are the potential APIs provided by OpenStack

  • Compute API
  • Database Service API
  • DNS API
  • Load balancer API
  • Network API

and many more

2. Microsoft Azure

Microsoft Azure is the next competitor to Amazon Web Services. It provides features like the following

  • Compute
  • Data + Storage
  • Networking
  • Analytics

3. Rackspace

Rackspace is the next potential competitor, well know for it's Mailgun and DNS offerings

  • Compute services
  • Cloud services
  • Network services
  • Data and storage services
  • Infrastructure services

Is this project abandoned ?

Seems there are some issues and big portion of code is written three years ago, it brings a question, whether this project is abandoned or not ?

It would be nice to clarify actually.

List of rising/trending cloud providers

Here is a list of few rising cloud providers with link to their websites.

  1. Microsoft Azure
    Azure is a comprehensive set of cloud services that developers and IT professionals use to build, deploy and manage applications through our global network of datacenters. Integrated tools, DevOps and a marketplace support you in efficiently building anything from simple mobile apps to internet-scale solutions.
    API Management WebPage
    Azure vs AWS
    image
  2. IBM Cloud
    The IBM Cloud has been built to help you solve problems and advance opportunities in a world flush with data. Whether it’s data you possess, data outside your firewall, or data that’s coming, the IBM Cloud helps you protect it, move it, integrate it and unlock intelligence from it — giving you what it takes to prevail in a competitive market.
    Why IBM Cloud?
    image
  3. Oracle Cloud
    Oracle Cloud is not only the lowest cost and most automated, but it's the industry's broadest and most integrated cloud, with deployment options ranging from the public cloud to your data center. Oracle Cloud offers best-in-class services across Software as a Service (SaaS), Data as a Service (DaaS), Platform as a Service (PaaS), and Infrastructure as a Service (IaaS). Oracle Cloud helps organizations drive innovation and business transformation by increasing agility and reducing IT complexity.
    Why Move to the Oracle Cloud
    image
  4. Hyve
    Hyve guarantees reliability, scalability, security and performance, taking pride in delivering each solution, tailor-made to the clients' requirements. All solutions are backed by Hyve's superior customer service and 'extra mile' support culture. Clients include Carluccio's, TKMaxx, Lionsgate Films, RSPCA and NHS. Hyve is PCI DSS, ISO 27001 and G-Cloud certified.
    Why Hyve?
    image
  5. Verizon Cloud
    image

Image Source

Documentation requires changes

The documentation (README.md/Wiki) needs to be improved at a few places.
The following points should be mentioned:

  1. Links to sources (if any)
  2. How to install and set this project up
  3. How to use it (a good UI development will also do well)
  4. A lengthier description of the application and what it does, etc. should be provided
  5. FAQs/common mistakes/common errors should be mentioned

I am also creating a PR for the changes in this: #29

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.