News for hackers. Stuff that matters.
Re:Google Cloud Platform – The Good, Bad, and Ugly by sethvargo on Thursday July 12, 2018 @12:12PM (#17515985)
Hey there! Seth from Google here. Thank you for writing up this article and providing this valuable feedback - we really appreciate it.

I’m personally taking this feedback and making sure it’s shared with the relevant teams (both positive and negative).

On the DevRel team at Google, we often write friction logs (my colleague just authored a post about friction logs in detail: https://devrel.net/developer-experience/an-introduction-to-f...) to help our product and engineering teams identify and fix any rough or unexpected edges in our offerings. This feedback will be valuable to our teams the same way a friction log is valuable.

Thank you again for taking the time to write this up!

Re:Google Cloud Platform – The Good, Bad, and Ugly by tonglil on Thursday July 12, 2018 @01:26PM (#17516753)
A lot of what he wrote is on point.

For example:

> I have reported bugs/clarifications against AWS docs and got prompt feedback and even requests for clarification from AWS team members. This has never happened for my comments submitted against Google’s documentation.

I always submit "feedback" (for the last 2 years), but the lack of changes in the docs make them seem to disappear into a black hole, so I stopped doing so.

Would be great if the docs for GCP were on GitHub (like the K8s, and now AWS, documentation) so we can at least see that docs are being worked on and iterated, and share/validate common issues and suggest fixes.

Minor things like this also create a lot of developer confusion in large user orgs:

> The API libraries and tools are spread across several GitHub organisations including GoogleCloudPlatform, Google, and possibly others, which can make it a little difficult sometimes to track down the definition of something.

> It would be easier if I didn’t need to think about this API access

Everything in the "ugly" is spot on.

Re:Google Cloud Platform – The Good, Bad, and Ugly by sethvargo on Thursday July 12, 2018 @01:50PM (#17516976)
Thank you for the feedback. While I can't share specific details, we are always looking for ways to improve the documentation, bug reporting, and feedback process.

I also totally agree that these little things matter, even for small organizations. An incorrect or incomplete piece of documentation can cost someone hours or days, not to mention the emotional cost. Rest assured that we are working to make the experience better.

Re:Google Cloud Platform – The Good, Bad, and Ugly by optimusclimb on Thursday July 12, 2018 @12:27PM (#17516153)
Had to use the cloud storage python API yesterday to retrieve the sizes of many blobs I have stored there.

First time using said API. Creating the client was straight forward enough...oh look, there is a section of the API docs on Blobs, cool - create a blob...and there's a size property.

And it has no data. Scan through ALL of the docs on the page...ahh, there's a "reload()" method, and sure enough, calling it retrieves the data.

Though...why doesn't constructing the object fetch the properties? And if it doesn't, why don't you just write some sentences somewhere telling people the general flow they should expect for how to interact with the API?

From my experience with all other GCloud docs, the answer is - because Google couldn't care less if their customers can figure out how to use their products. You write some minimal API docs on functions, MAYBE give one example of doing one specific activity, and then it should be OBVIOUS how to do the rest.

Having used both - would never, ever choose to use GCP over AWS if given the choice - and the main reason, aside from any technical differences - is that one company seems to care about what the experience of using their product is, and the other just doesn't.

Re:Google Cloud Platform – The Good, Bad, and Ugly by wikibob on Thursday July 12, 2018 @02:28PM (#17517304)
I have to say I 100% agree about the documentation.

Having used both GCP and AWS, although the core GCP offerings are fantastic and far superior to AWS, the GCP documentation is a disaster.

It’s totally inexcusable, and really disappointing because it has a huge effect on the perception of the platform among folks that are AWS users and take a quick look at GCP.

I can’t see any reason why the documentation issue shouldn’t be solvable in 3 months with enough money. Take a wheelbarrow down to the bank, fill it up, and put out an open offer to everyone on the AWS documentation and developer relations teams to double their salary and stock.

The core of GCP is so great, that it’s such a shame the final polish seems to be impossible to accomplish.

Re:Google Cloud Platform – The Good, Bad, and Ugly by sethvargo on Thursday July 12, 2018 @01:57PM (#17517044)
Thanks for sharing your experience. This is definitely not the feelings we want users to experience. If you remember, could you share the documentation page(s) you were on? I'll make sure they are updated to reflect the proper fields and steps to take.

We do care deeply about our users' experiences with both GCP and the GCP ecosystem. Feel free to send me specific areas where you've experience pain in the past and I'll get them addressed (email is the same as my handle - at google - dot com)

Re:Google Cloud Platform – The Good, Bad, and Ugly by optimusclimb on Thursday July 12, 2018 @02:12PM (#17517159)
Thanks for the response. See my response to bduerst in this same thread - it was that page.

Also to be clear - I don't think this particular example I gave is the end of the world/egregious - I just used it as representative of the fact that the general pattern I've seen of the docs following where details are explained, but the "obvious" bits of simple usage are not discussed.

Re:Google Cloud Platform – The Good, Bad, and Ugly by mustacheemperor on Friday July 13, 2018 @03:56AM (#17521209)
Seth, thanks for taking the feedback directly here, but...

Shouldn't we be able to make these requests given the built in feedback tools in the documentation, and actually expect some result? It's great that you're willing to address this specific issue, but it's frustrating to basically see plain text validation that the feedback forms are not attended to, and developers should be emailing individual team members problematic documentation pages if we're in the cohort exposed to your contact information.

Re:Google Cloud Platform – The Good, Bad, and Ugly by bduerst on Thursday July 12, 2018 @01:49PM (#17516971)
Can you point to which docs were you using? On github it says that if it reports 'none' then you need to load the resource.

https://googlecloudplatform.github.io/google-cloud-python/la...

Re:Google Cloud Platform – The Good, Bad, and Ugly by optimusclimb on Thursday July 12, 2018 @02:08PM (#17517132)
Was reading that page. What it specifically says is:

> The size of the blob or None if the blob’s resource has not been loaded from the server.

That's pretty vague imho, because there is no high level overview or tutorial to tell you that you need to explicitly cause the load from the server. Point in fact, the function you need to use is "reload()", and the documentation of this func is "Reload properties from Cloud Storage." To me, the "re" part makes it a bit of a misnomer - as it implies there would have been some sort of initial load in the first place (there is not.)

Imagine if the interface for going to a web page in chrome was: 1. Type the URL in the location bar. 2. Hit "refresh."

Re:Google Cloud Platform – The Good, Bad, and Ugly by meeks on Thursday July 12, 2018 @04:29PM (#17518343)
To conclude that:

> Google couldn't care less if their customers can figure out how to use their products.

That feels like a pretty strong leap to make from your complaint about using the term "reload" when "load" is better.

I can understand you are providing an example, and perhaps you feel the documentation has many such examples. From personal experience reading extensive documentation, I think you are being slightly unfair in this instance.

If I had to guess, given the speed of development of Google Cloud, it will take some time to get to the level of mature documentation of AWS who has had years of head start.

Re:Google Cloud Platform – The Good, Bad, and Ugly by optimusclimb on Thursday July 12, 2018 @05:41PM (#17518860)
> That feels like a pretty strong leap to make from your complaint about using the term "reload" when "load" is better.

I never made that leap - you're saying that. I'm saying that GCP docs are all severely lacking in "how to" guides.

API references are not so helpful without an explanation of how you're intended to use them. So, the problem isn't that the function name is "reload()" instead of "load()" - it's that nowhere does it tell you the pattern is to instantiate the object you're interested in (in this case, a Blob), and then you must make a call to retrieve the data from the server before the data you're interested in will show up.

Additionally, my commentary was made after now using many different GCP services - this was just something recently in mind.

Re:Google Cloud Platform – The Good, Bad, and Ugly by naasking on Thursday July 12, 2018 @09:56PM (#17519998)
> I can understand you are providing an example, and perhaps you feel the documentation has many such examples. From personal experience reading extensive documentation, I think you are being slightly unfair in this instance.

I kind of agree with the other poster. Getting up and running with .NET on flexible instances has been challenging to say the least. The datastore documentation does not give a good overview or introduction to how interact with this system.

Re:Google Cloud Platform – The Good, Bad, and Ugly by theptip on Thursday July 12, 2018 @12:59PM (#17516497)
Just to echo the OP -- the Cloud SQL proxy has been a pain point for me for years, it makes deploying to Kubernetes a PITA, since I have to use a different configuration vs. my dev setup. Whitelisting RDS networks inside the VPS is a feature that's existed in AWS for many many years.

Also agree that Stackdriver is pretty underwhelming, though it does have the perk of providing zero-configuration log capture in GKE.

Lots of problems though -

* UI is super-slow, yet it drops old records when you scroll, so scrolling up and down by more than 100 lines causes a reload of the logs I was just looking at. (Note that e.g. Kibana will do infinite scrolling to load more log entries, but doesn't drop old ones when you scroll, which is much more usable).

* It's really hard to work with large log traces; I'd love a quick way to "show raw logs for this time-period/search" so that I can either copy into a text editor or use browser search to explore. An example use-case here is "select all logs with this request correlator", which could include thousands of logs from a request, then jump around that log stream to look for interesting events. Re-running the search is painfully slow for exploring results like this.

* I've also had problems with alerts; the algorithm used for uptime checks is pretty naive, it just checks if the endpoint was down for the entire threshold period, which doesn't catch a flapping endpoint (e.g. down for 1s, up for 1s). Grafana can be configured to detect that the average latency spiked over the period, even if it's not fully down. This has led to us not being alerted for a production outage, so I've moved our critical alerting off Stackdriver. (Again, the promise here is great; if you could get alerting working as well as Grafana, it would be super-powerful to be able to alert on any synthetic metric generated from any log stream in the cluster. It's just half-baked right now.)

All that said, I've been happy with GCP in general, in particular GKE has made running a k8s cluster a lot easier.

Re:Google Cloud Platform – The Good, Bad, and Ugly by sethvargo on Thursday July 12, 2018 @01:52PM (#17516994)
I'm trying to reproduce the Cloud SQL Proxy in Cloud Shell that both you and the OP have mentioned, but I've been unable to reproduce (and thus file a bug). I'm sure I'm missing a step. If you're willing, I would love if you could drop me a quick note (sethvargo at google dot com) with the steps you're taking, commands you're running, and output you're seeing. This will help me escalate it to the right team.

I'm also going to share your feedback about Stackdriver with our product team as well. Thank you for that!

Re:Google Cloud Platform – The Good, Bad, and Ugly by theptip on Thursday July 12, 2018 @03:53PM (#17518073)
Just to clarify with some more detail (for the HN record), the issue with Cloud SQL is that while you can whitelist an individual internal IP, you can't whitelist an internal network (like 10/8). This means you need a sidecar service of some sort to add the whitelist rules when a new instance/pod comes up that should be able to access the DB.

In AWS for a simple app I'd just whitelist 10/8 and have the DB open to all internal instances (with TLS for added security as required).

I'll follow up by email too, happy to provide detailed feedback on this sort of thing.

Thanks for taking the time to engage with the community on this stuff!

Re:Google Cloud Platform – The Good, Bad, and Ugly by digaozao on Thursday July 12, 2018 @07:00PM (#17519328)
Better yet. In AWS I can whitelist a security group and all ec2 instances with that security group would get access to RDS.

This would be handy with tags in gcp.

Re:Google Cloud Platform – The Good, Bad, and Ugly by atombender on Friday July 13, 2018 @05:48PM (#17527044)
We have similar experience with StackDriver Logging. It's felt unfinished since day one. Two problems come to mind:

(1) Some time ago I needed to get a month of logs (filtered by an expression) in order to compare the logged data against a database. The Console does not have any such option. You can set up "exporting", but that only starts replication from the moment you set it up; no historical data. You can use the APIs or "gcloud beta logging read", but the performance is terrible. I got maybe 200-500KB/sec. After keeping the command running continuously for 3 days (!), I still only had 20% of the log data.

These days, we have exporting set up to pipe all the logs into BigQuery and GCS, just to get around the crappiness. That gives some query capabilities, as well as the ability to quickly grab the original data for processing with other tools.

(2) We're on GKE, and none of the container's labels end up in log entries. Surely this is pretty key stuff. There seems to be no way to customize the payloads that GKE's Fluentd sends to StackDriver.

(3) There's no way to tail logs. The gcloud command doesn't have it, and the Console doesn't either. It feels like such a missed opportunity.

I think Google would be better off ditching StackDriver Logging entirely and instead let the user set up rules to send logs to different services that actually work. The default could be BigQuery. I don't understand the point of having a separate, proprietary query language for logs when you have SQL.

I've looked briefly at the other StackDriver stuff (most of which is still on stackdriver.com, always causing a confusing redirect and often re-authentication), and it's been similarly underwhelming. We use Prometheus with Grafana, and StackDriver seems pointless in comparison.

Re:Google Cloud Platform – The Good, Bad, and Ugly by merb on Thursday July 12, 2018 @03:52PM (#17518066)
the biggest problem I had with cloud sql proxy or cloud sql in generell is that postgresql is limited to 100 connections. since I'm a small customer hosting many low traffic projects I want to share my instance as much as possible, however running pgbouncer for a lot of ups is painful since cloudsql does not allow to query the auth table (what's used by pgbouncer if you don't add all database username/password on your own).

I think a lot of problems would be solved if there would be a way to setup cloud sql proxy that comes with transaction pooling, especially when using k8s and having a pooling namespace (multiple load balancers for HA) where all other apps connect to.

also cloud sql and ipv6 is not funny. (i.e. a lot of things in gcp is ipv4 only which is sad)

Re:Google Cloud Platform – The Good, Bad, and Ugly by wikibob on Thursday July 12, 2018 @02:21PM (#17517242)
Thank you, this is very helpful because these little things are the stuff that you can’t find in any documentation but end up biting you in production.
Re:Google Cloud Platform – The Good, Bad, and Ugly by talonx on Friday July 13, 2018 @10:10AM (#17523102)
From personal experience, the documentation for GCP and especially the client libraries is one of its weakest points. This does not seem to be getting fixed soon, so it might need more than just accepting feedback to fix it.

For example, see this 3 year old thread on the same topic that is still pertinent - https://news.ycombinator.com/item?id=9497576

Re:Google Cloud Platform – The Good, Bad, and Ugly by subsaharancoder on Sunday July 15, 2018 @07:55PM (#17537794)
Small nitpick, this tutorial https://codelabs.developers.google.com/codelabs/firebase-web... mentions firebase-cli 3.3.0, which was deprecated for firebase-tools (current version is 3.19.3). Might be worth updating the docs to reflect latest packages.