1
votes

In terraform we get a state file, and CloudFormation also has a notion of a working state. How does go cloud handle the state, do we have to create it ourselves?

For more info on Go Cloud

2
Go cloud is an abstraction over the APIs for using cloud services, not for provisioning them. It is not a competitor to terraform/cloudformation.Adrian

2 Answers

3
votes

Terraform wants to solve the problem of managing and provisioning Cloud services.

Go Cloud wants to solve the problem of using Cloud services in application code.

So, they work well together. For example, the Go Cloud sample guestbook app (https://github.com/google/go-cloud/tree/master/samples/guestbook) uses Terraform to provision the resources needed to run the app on various Cloud providers; the application code in the sample has a small amount of provider-specific setup code, but the application logic itself is provider-agnostic.

1
votes

go-cloud:

The Go Cloud Project is an initiative that will allow application developers to seamlessly deploy cloud applications on any combination of cloud providers. It does this by providing stable, idiomatic interfaces for common uses like storage and databases. Think database/sql for cloud products.

Terraform:

Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. Terraform can manage existing and popular service providers as well as custom in-house solutions.

So with go-cloud you could create a tool like terraform that, for now can provide 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