Go Cloud aims to help developers write simpler and more portable cloud applications
Go is not just a pretty language! We know that more developers use it at work now [according to the results of the Go 2017 user survey] but if Go Cloud’s plan works, Go will become *the* language of choice for developers building portable cloud applications. Let’s see what Go Cloud is all about.
Go 1.11 is expected to be released next month but the tech giant behind this popular language is giving us more reasons to love it. Meet Go Cloud, a set of open generic cloud APIs which aims to help developers write “simpler and more portable cloud applications,” Google’s Eno Compton and Cassandra Salisbury wrote in a recent blog post.
Their Write once, run on any cloud slogan says it all: if you’re an application developer, you’ll be able to use Go Cloud to “seamlessly deploy cloud applications on any combination of cloud providers.”
Right now, only Google Cloud Platform (GCP) and Amazon Web Services (AWS) are supported but the team is working side by side with cloud industry partners and the Go community to add more cloud providers to the list.
Go Cloud: Portability across cloud providers just got easier
Multi-cloud and hybrid-cloud environments have their benefits but they also have more than a few challenges. In order to migrate their workloads between cloud providers without significant changes to their code, some teams try to decouple their applications from provider-specific APIs; this will produce simpler and more portable code but due to the short-term pressure to ship features, they have no choice but to sacrifice longer-term efforts toward portability. The result is that “most Go applications running in the cloud are tightly coupled to their initial cloud provider,” Eno Compton and Cassandra Salisbury explained in the blog post.
You can do this or you can give Go Cloud a try. What’s this, you ask? In short, this new open source project is a set of open generic cloud APIs which promises to help you write simpler and more portable cloud applications.
Go Cloud also sets the foundation for an ecosystem of portable cloud libraries to be built on top of these generic APIs. Go Cloud makes it possible for teams to meet their feature development goals while also preserving the long-term flexibility for multi-cloud and hybrid-cloud architectures. Go Cloud applications can also migrate to the cloud providers that best meet their needs.
– Eno Compton and Cassandra Salisbury
Go Cloud offers generic APIs for:
- Unstructured binary (blob) storage
- Variables that change at runtime (configuration)
- Connecting to MySQL databases
- Server startup and diagnostics: request logging, tracing, and health checking
SEE ALSO: Go modules will land in Go 1.11
The idea is to develop “vendor-neutral generic APIs for the most-used services across cloud providers such that deploying a Go application on another cloud is simple and easy.”
If you want to give it a try, this tutorial should help you understand how Go Cloud works. By the way, you might want to check if you have the latest stable release of Go because even though previous versions may compile, they are not supported. Also, if you’re using GCP or AWS, you can migrate parts of your existing application but if you’re using a different cloud provider or an on-premise service, you can extend Go Cloud to support it by implementing the driver interfaces.
Run along now, it’s time to take Go Cloud for a spin. While you’re at it, you should also make contributions to help evolve the project to meet your needs. The team behind Go Cloud encourages you all to file an issue to tell them what could be better or what future APIs the project should support.
For updates and discussion about the Go Cloud project, join the project’s mailing list.