News for hackers. Stuff that matters.
Re:Portable Cloud Programming with Go Cloud by cflewis on Tuesday July 24, 2018 @01:00PM (#17602904)
Hey ho. I worked on this project.

The majority of the team is in SF for Google Cloud Next to present this. I'm about to hop into the car to head up myself to watch, so I can do a little AMA throughout the day. Reply to this to make sure I see your question!

Here's a question I've already seen:

> Is this a Google project or a Go project?

It is a project led by the Go team, and we are very aware of our responsibility to be cloud provider neutral. At the same time, while the project is so new and evolving so rapidly, we need to have working examples that we can change atomically in a single repository (atomic changes necessary for rollbacks and such). We don't want to have cloud provider-specific code in the Go project, so the code is currently sitting under the Google GitHub org. When the interfaces to different products stabilize, the intention is to graduate them up to the Go GitHub org. Then anyone can code implementations to that interface for whatever cloud they like in separate repos, similar to the way `database/sql` is structured. The cloud provider-specific code will always live outside the Go project.

But things are very new, so change is possible.

Re:Portable Cloud Programming with Go Cloud by gant on Tuesday July 24, 2018 @01:11PM (#17603007)
I'm a little bit concerned because the last package that Google seems to have purpose-built for Go+Google (AppEngine?) was context, that gave us things like context.Context, a generic KVS that needs reflection, heavily relies on convention and doesn't work in linear time and "just make every function take a context and use context.TODO if you don't need it".

It also seems to be one of the biggest points of controversy for Go 2, with calls from "everything should have a context" to "context should go away".

Re:Portable Cloud Programming with Go Cloud by ironjunkie on Tuesday July 24, 2018 @02:17PM (#17603632)
yeah, that context thing is a huge mess.

The libraries that support it have now all their function signature way longer, and it is not well understood if it is a "Request for cancellation" or something else

Re:Portable Cloud Programming with Go Cloud by atombender on Wednesday July 25, 2018 @07:34AM (#17608453)
Context is a pet peeve of mine. It's a design mistake as implemented, even if it serves an important function. It infects everything, forcing every method to pass contexts around, and it conflates multiple separate concerns (cancellation, deadlines, and key/value data).

Given that all of a Go program sooner or later will need contexts somewhere, it would be much cleaner to let goroutines have this stuff implicitly. I don't know enough about the intervals to say whether this is feasible with the current runtime, though.

Re:Portable Cloud Programming with Go Cloud by gant on Wednesday July 25, 2018 @09:19AM (#17609005)
People really seem to dislike context in the standard library too:

https://github.com/golang/go/issues/20280

Re:Portable Cloud Programming with Go Cloud by thermodynthrway on Tuesday July 24, 2018 @09:19PM (#17606264)
After Google threw half of Android into "Google Play Services" I don't believe it.

> Then anyone can code implementations to that interface for whatever cloud they like in separate repos, similar to the way `database/sql` is structured

Of course they can, but you're working on a Google-centric version first right? Otherwise why would it be at Google Cloud Next?

That makes all other cloud providers second tier, and I don't think you should call yourselves "platform neutral". If you were, you would code up multiple platforms from the beginning, like is normally done for support on different operating systems for example

Re:Portable Cloud Programming with Go Cloud by lazyhacker on Wednesday July 25, 2018 @01:29AM (#17607078)
(Eng Manager for Go Cloud) The APIs and HTTP server released today all work on AWS as well as GCP and support for Azure is a top priority but didn't make it for today.

Please see the comment from our PM regarding Azure: https://news.ycombinator.com/item?id=17604358

Re:Portable Cloud Programming with Go Cloud by JustARandomGuy on Tuesday July 24, 2018 @01:58PM (#17603460)
Is this compatible with the Go runtime of Google App Engine[0] currently? I was having difficulty getting the golang Google Cloud Storage client to work on App Engine several months ago.

0: https://cloud.google.com/appengine/docs/go/

Re:Portable Cloud Programming with Go Cloud by cflewis on Tuesday July 24, 2018 @03:57PM (#17604395)
Possibly! We're targeting Go 1.11 as we want the module support. It might work on GAE as is, but we haven't tested.
Re:Portable Cloud Programming with Go Cloud by merb on Tuesday July 24, 2018 @03:25PM (#17604159)
a lot of stuff is hard to do an App Engine Standard with Go. (especially `dep` support and I guess `vgo` aswell)
Re:Portable Cloud Programming with Go Cloud by rajathagasthya on Tuesday July 24, 2018 @01:11PM (#17603008)
This looks great! Are there any beginner friendly issues for contribution? Didn't find a related tag in Github issues.
Re:Portable Cloud Programming with Go Cloud by zombiezen on Tuesday July 24, 2018 @04:01PM (#17604427)
Hi, Tech Lead for Go Cloud here! Glad that you're excited to contribute! We don't have a tag yet since we're just starting out. The best way you can contribute right now is to use Go Cloud for yourself and file any issues that you find.
Re:Portable Cloud Programming with Go Cloud by padiyar83 on Tuesday July 24, 2018 @01:44PM (#17603336)
+1
Re:Portable Cloud Programming with Go Cloud by justinclift on Wednesday July 25, 2018 @10:09AM (#17609316)
Why the MySQL support?

Seems pretty weird to include support for an Oracle offering from the get-go, especially given the bad blood between Google and Oracle.

Re:Portable Cloud Programming with Go Cloud by lazyhacker on Wednesday July 25, 2018 @02:19PM (#17611493)
It's more important to us to address what developers want and many developers are using MySQL even on clouds.
Re:Portable Cloud Programming with Go Cloud by justinclift on Wednesday July 25, 2018 @06:59PM (#17613710)
Was there consideration for going with (say) MariaDB instead?
Re:Portable Cloud Programming with Go Cloud by ptman on Tuesday July 31, 2018 @07:04AM (#17652139)
I haven't looked in detail, but aren't they compatible? Wouldn't it work with mariadb as well?
Re:Portable Cloud Programming with Go Cloud by mfer on Tuesday July 24, 2018 @03:19PM (#17604118)
> we are very aware of our responsibility to be cloud provider neutral

Yet, Azure support is listed as unplanned.

The language could mean that this is not going to be planned. The fact that y'all have not worked with Azure Go folks to get this moving is something to ponder.

A reminder that Go is a Google language and isn't vendor neutral?

Re:Portable Cloud Programming with Go Cloud by vsekhar on Tuesday July 24, 2018 @03:53PM (#17604358)
PM for Go Cloud here (and poster of the Azure feature request).

"Unplanned" on the issue tracker just means we haven't assigned it to a sprint milestone for the team yet.

Azure and more clouds are very much in the works. As an open project, there are many approaches and we're open to all of them.

One other point: since Go interfaces are implicitly fulfilled, anyone can write and share implementations of Go Cloud for new providers or custom services without asking anyone for permission. If you take a look at the implementations we've provided, you'll find it's actually rather easy.

More to come.

Re:Portable Cloud Programming with Go Cloud by jhabdas on Tuesday July 24, 2018 @05:14PM (#17605000)
Hi PM guy. If project is to remain independently cloud-gnostic and people file a lot of bugs and pull requests it'll definitely help Google or Alphabet or whatever deliver that k8s abstraction y'all've workin' on. That's great for you.

My my question is, what if developers want access to innovations in specific cloud providers, such as reduced redundancy storage on S3? Wire up or own provider? Will there be some sort of community-provided provider registry or will we be grepping awesome lists on GH? Are providers extendable in any way?

Thanks and have a sunny day.

Re:Portable Cloud Programming with Go Cloud by cflewis on Tuesday July 24, 2018 @06:17PM (#17605409)
This is a great question.

The main goal of Go Cloud is that the abstraction is not leaky and that you don't get access to specific features in the way you are describing in the application itself.

Now if the specificity of the thing you want happens at provisioning time but the API is the same (e.g. choosing to use Aurora on AWS vs standard RDS), then there's no problem. Go Cloud doesn't need to know about that.

If the API changes too, then that's a much different thing, and gets back to the leaky abstraction which we want to avoid. If you can't simply wire new providers to your application code and have it Just Work, then we've done our job wrong.

But remember that it's all Just Normal Go, there's no magic here. It's just standard Go. If you want to write an app that ties itself to something specific on some cloud you can; just write the code you'd write now. But that necessarily means you're tied to that product.

Re:Portable Cloud Programming with Go Cloud by DocSavage on Wednesday July 25, 2018 @09:13AM (#17608956)
Contributors could also add drivers that not only fulfill your Blob interface but add features that might creep into multiple services. For example, someone could contribute a SuperBlob that fulfills Blob and also adds conditional writes, which GCS supports. On the app side, if they want to check if some feature is available that speeds up operations, they could then see if the returned Blob is also a SuperBlob and if so, perform the more optimized approach.
Re:Portable Cloud Programming with Go Cloud by Walkman on Wednesday July 25, 2018 @01:42PM (#17611179)
Usually if you want to use a library like this, you can't really do anything else, but implement the smallest common subset of the services combined.

In the minute you implement something provider specific, you just lost the whole point of this library and you did not needed it in the first place.

Re:Portable Cloud Programming with Go Cloud by skybrian on Tuesday July 24, 2018 @03:27PM (#17604172)
Maybe they're hoping Microsoft will do it?
Re:Portable Cloud Programming with Go Cloud by jhoechtl on Wednesday July 25, 2018 @12:26AM (#17606900)
Which is not unreasonable thinking
Re:Portable Cloud Programming with Go Cloud by go-question on Wednesday July 25, 2018 @01:58AM (#17607153)
Is there a session or talk on this at Cloud Next?
Re:Portable Cloud Programming with Go Cloud by lazyhacker on Tuesday July 31, 2018 @01:24PM (#17655088)
Re:Portable Cloud Programming with Go Cloud by cube2222 on Wednesday July 25, 2018 @03:14AM (#17607426)
There was yesterday.