Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make gocloud development scalable #101

Merged
merged 6 commits into from
Jun 23, 2018

Conversation

OddCN
Copy link
Contributor

@OddCN OddCN commented Jun 11, 2018

Now we don't need to add function definitions for all the modules in all the cloud providers even if that provider doesn't support that particular module.

separately

Now we can develop each module of each provider separately

for example

Digital Ocean does not support container service. so

gocloud.DigitalOceanProvider().Compute()
gocloud.DigitalOceanProvider().Storage()
gocloud.DigitalOceanProvider().LoadBalancer()
gocloud.DigitalOceanProvider().DNS()

gocloud.DigitalOceanProvider() can only call these four.

for example

development for Vultr support is only compute module done. so now there is only .Compute()

gocloud.VultrProvider().Compute()

for example

For Machine Learning, in gocloud, only Amazon provider implemented interface for Machine Learning. Now we can access the Amazon provider 's ML by

 gocloud.AmazonProvider().MachineLearning().CreateMLModel()
 gocloud.AmazonProvider().MachineLearning().DeleteMLModel()
 gocloud.AmazonProvider().MachineLearning().GetMLModel()
 gocloud.AmazonProvider().MachineLearning().UpdateMLModel()

unified API

If different cloud providers provide the same service, such as compute storage dns, we implement the functionalities from same unified interface.

So this ensures that the API we provide is uniform

@shlokgilda
Copy link
Contributor

This sounds really amazing!!

@rehrumesh rehrumesh merged commit d8f46f6 into leopardslab:master Jun 23, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants