Golang (Go) has been angling to be the cloud-native language of choice for developers since its inception with attractive features like concurrency, where multiple tasks are executed at the same time. Concurrency maximizes performance on the multi-core processors that form the backbone of cloud infrastructures. The latest feature to enhance Go’s cloud credentials is Go-cloud, which offers enterprises portability between cloud vendors.
Go-cloud provides an abstraction layer for using common services offered by most cloud vendors, including access to storage, databases, logging, tracing, health checking, etc. Initially, only Google Cloud Platform (GCP) and Amazon Web Services (AWS) are supported. But Go-cloud’s abstraction layer means any cloud platform, including Azure, Rackspace, or even a private cloud platform can be accomodated, eliminating vendor lock-in.
Breaking the Proprietary Mindset
To date, developers that want to call GCP- or AWS-based services need to use very different syntax. So, for example, if you wanted to move your application from AWS to GCP, you’d have to research, rewrite, and test all of your service calls. Using valuable programming resources to do such a rewrite would come at the cost of adding new features. As a result, such an effort to move to a different vendor would typically be a non-starter. Enterprises are left at the mercy of their cloud provider.
Go-cloud is creating a common, stable interface for cloud services so developers can make a single API call to Go-cloud, and then swap in their cloud provider of choice. This is similar to what Go’s Database/SQL module did for abstracting relational databases.
Calling the Go Community
Unfortunately, as of this writing, Go-cloud is still in alpha. It’s going to need help from the community to maximize its value. Help that will add support for more cloud platforms and update the the Go-cloud API when backends change.
The ideal solution would be to have the cloud vendors create a single, standard interface to commoditized cloud services. Unfortunately, that’s unlikely to happen anytime soon since cloud vendors currently gain no benefit from being interchangeable.
Go-cloud is changing the narrative by driving the shift to an agnostic cloud, while simultaneously adding another jewel to Go’s crown as the king of cloud-native languages.
ActiveState is the only vendor that offers commercial support for Go. Download our ActiveGo distribution in order to implement your Go application in production risk free.