Katie,

Thanks for asking the question.


I’ve been using GCP for about 6 months now. I found the tutorial material and 
reference documentation to range from pretty good to good enough - there are a 
few rough points, but nothing that really bothered me. So I didn’t get stuck 
much in the early days.


Some things that could be smoother (this is all python):


1. Default way to handle 3rd party dependencies in an app - there are options 
and they work ok, but this is so common it would be nice to have an officially 
supported method. Especially since the common ones break on managed VMs because 
you don’t support appengine_config.py there.


2. Webapp2 - it’s OK, but definitely not great. From the outside there doesn’t 
seem to be a strong reason to be using something that has not gained broader 
traction when supporting something like Flask shouldn’t be hard. That would 
gain a much broader ecosystem rather than the very narrow, App Engine focused 
ecosystem around webapp2.


3. Cloud Storage - I could not find a quick and nice way to securely expose 
native links from cloud storage to clients via a REST API without having to 
have the clients reauth to cloud storage. So I’m just pulling from cloud 
storage on the backend, doing my own authorization, and serving them via my own 
REST API. A hack that I’ll get rid of eventually, but I didn’t want to fiddle 
anymore. This seems like a common use case to me, but who knows.


4. Cloud Endpoints - the biggest problem I had in early days was cloud 
endpoints. I have what I feel is a really common use case - I just need to do 
some CRUD operations on datastore entities using a REST API. I looked at 
enpoints and it looked like exactly what I needed. But then I saw I needed to 
largely duplicate my data model in NDB and Cloud Endpoints. Except there is 
this open source library that claims to connect them together 
(http://endpoints-proto-datastore.appspot.com), but it’s quirky, has quirky 
docs, and is kinda, sorta supported by Google. And then what’s with the 
assumption that these APIs will accept and return the same data types 
(seriously - who does that by default)? And then there was the tooling to 
generate client libraries that’s - honestly - just not great. Eventually the 
CORBA flashbacks got bad enough that I just completely abandoned cloud 
endpoints in favor of rolling it myself. For me, cloud endpoints definitely 
created _way_ more problems than it solved.



5. User service - when evaluating options things like the User services popped 
out to me. I thought, great, I’ll use a PaaS and things like user auth will be 
sanely handled. Except that it is so limited as to not be viable at all for a 
public product.


Beyond the beginner issues, I think there is a real problem once you move 
towards creating real apps. There is a need for more in-depth documentation of 
designing apps effectively to use the platform. Things like best practices 
around data modeling in the datastore (e.g., when to de-normalize and how to 
handle data updates once you do). There is some of this (e.g., 
https://cloud.google.com/appengine/articles/modeling), but it is typically 
out-of-date and there is not really enough of it. For better or worse, there is 
not a big network of bloggers handling these topics like there are for open 
source tools like rails, postgresq, etc.


The biggest beginner problem I see right now is the architectural options 
around App Engine, Managed VMs, and GCE. On paper you guys have a nice blend of 
offerings that can allow developers to choose the right amount of control that 
they want / need. The reality, though, is that there are some hard choices to 
be made because of inconsistencies around what services are available on the 
different options and how to effectively wire together the components. A 
concrete example for me: I need to use numpy and some other non-pure python 
code in some background processing, so I needed to move off of App Engine for 
that work. I wasted quite a bit of time figuring out how / whether I could use 
the Datastore (via ndb) and task queues on the different options (including 
auth, network architecture, and scaling). None of it is rocket science, but I 
felt like I was inventing things when I knew that others had already come up 
with effective strategies. For me - the ideal situation would be if you just 
supported the same services through the same APIs everywhere, so I hope that is 
where you were headed.


Other random thoughts / complaints:


1. GCP Roadmap - it would be nice to have some nice, clear roadmap on where 
things are headed. Right now, I restrict myself to only what is available and 
supported right now because I have no idea where you guys are headed.


2. Community - there is not a supportive / coherent community around GCP. 
Coming from a largely open source background this gives me a lot of culture 
shock. It would be great if there was at least a set of your engineers out 
engaging effectively in the various forums. Not just support - talking about 
best practices, explaining how things work, etc.


3. Stack Overflow - the whole notion of pushing all of the questions from this 
mailing list to stack overflow is really off putting to me. I understand what 
you are trying to do but a) stack overflow seems to be where GCP questions go 
to be completely ignored and b) the way it’s done is pretty heavy handed. Why 
not at least post a link to the answer back to the list? I’ve always found 
mailing lists as an effective way to passively be aware of common questions and 
gain knowledge. Stack overflow is not effective in that role for me.


4. This mailing list - honestly, I keep thinking that I should unsubscribe from 
this list because so many of the questions are very basic and they are 
generally just ignored. It’s kind of painful to watch - especially given that 
one volunteer is handling so much of this single handedly. I think it gives a 
terrible impression of GCP and makes me feel like very few experienced 
developers are using GCP.


I hope this feedback is helpful.


Karl





> On Apr 15, 2015, at 1:35 PM, Katie Ball (Google Cloud Support) 
> <kmrichard...@google.com> wrote:
> 
> 
> Hi,
> 
> 
> My name is Katie, and I am on the Google Cloud Platform technical support
>  team.
> 
> 
> This message is to Google Cloud Platform community members, especially if you 
> are newer to GCP. I would like to know what our team can do to help you have 
> a better and more enjoyable experience during the first days on GCP.
> 
> 
> Did you need technical support?  If so, I’d like to hear all about it.
> 
> 
> I’d also like to know:
> 
> What did you find most difficult about the first-time user experience?
> 
> 
> Where did you get stuck?
> 
> 
> 
> 
> Please reply to the group with your answers or any ideas you have on how the 
> technical support team can help new customers get familiar with GCP. 
> 
> 
> And as a thank you for the great ideas, we will be giving away support 
> coupons worth $450 (equivalent to 3 months of silver support) to 5 lucky 
> community members who post a response. Please make sure to reply before April 
> 22nd. 
> 
> 
> Thanks for your insights, and cloud on!
> 
> Katie
> 
> 
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Google App Engine" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to google-appengine+unsubscr...@googlegroups.com
> .
> To post to this group, send email to google-appengine@googlegroups.com
> .
> Visit this group at http://groups.google.com/group/google-appengine
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/google-appengine/4f59c819-731f-422c-b33d-a68ea4d525fd%40googlegroups.com
> .
> For more options, visit https://groups.google.com/d/optout
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/F744F754-B7A7-4893-99A7-081B74AEDEE5%40rakkoon.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to