4 ms·
Although the author mentions they haven't had experience with AppEngine, it's the reason why I love Google Cloud SO much over anything else. If you're a startu
by neya 8y ago
Although the author mentions they haven't had experience with AppEngine, it's the reason why I love Google Cloud SO much over anything else.
If you're a startup running something on Elixir (or even Rails), AppEngine's experience is hard to beat.
Not many people do know:
* You can run multiple microservices on AppEngine under one application.
* Each of these can have many versions serving different percentages of traffic.
* There is an on the fly image resizing service, which means, you don't need to run complex imagemagick setups on your machine, instead you can simply call your image with parameters appended Eg. - /my.jpg?size=120x80 and it will be resized on the fly. And it's pretty damn fast, too.
* If you're also using Cloud SQL, you can directly let your app talk to it without whitelisting IPs or even using the proxy, just using sockets.
* You can lock your app under what google calls IAP, a login layer that allows only authorized users to access your app. IF you're building prototype for clients, it's a no brainer and saves you from adding custom auth. (https://cloud.google.com/iap/docs/app-engine-quickstart https://cloud.google.com/iap/docs/app-engine-quickstart)
* The development experience is superb, and has gotten better in the last 2 years.
For the record, I tried AWS ElasticBeanstalk recently and it has a lot of bugs, especially with the new interface changes, so I kept coming back to AppEngine. Seriously, if you're doing a startup in 2018, there is no reason to not use AppEngine.
- dantiberian 8y agoI looked long and hard at App Engine, but I wasn't able to use it as I needed to be able to accept file uploads that were larger than the upload limit on the App Engine load balancer. Otherwise it likely would have been my choice. I'm looking at using it for some internal applications soon though.
- amorphid 8y agoI haven't tried this myself, but could you have your client(s) get around this via multipart upload?
- QuercusMax 8y agoI don't think you mean multipart upload - that's a single request that contains multiple files. You're talking about some kind of resumable uploads.
- amorphid 8y agoI mean 2+ concurrent uploads, which I've used before on S3, but not on GCP. [1] [1] https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview....
- neya 8y agoIf you're trying file uploads that directly sit within your application, AppEngine (sort of) discourages that, the right approach would be to let your app upload the files to a CDN (like google cloud storage, if you're on GCP) and manage access through ACLs.
- dantiberian 8y agoYeah, the issue (which I didn't explain well) is that Deps is a Maven repository and needs to speak the Maven protocol. That makes it difficult to do the ACL signing for direct uploads, especially if I want to make it clean for users configuring it.
- stefano 8y agoYou can have the client upload to a cloud storage bucket, then notify the server that the file is ready. Upon receiving the notification, the server can start a background task that reads the file from the bucket and uploads it to the Maven repository. It's a few extra steps for something that should be simpler, but it's workable.
- dantiberian 8y agoThe client in this case is Maven, SBT, Leiningen, e.t.c., so I don't think I can get that kind of control over how Maven would upload the files.
- foota 8y agoI'm curious, could you use a 307 redirect to redirect the user agent to a signed upload URL?
- stefano 8y agoThe only way to do that on App Engine is to have the client ask the server for a temporary signed URL to a writable cloud storage resource, and then have the client upload to that URL (i.e. the only way is by sidestepping App Engine...).
- wasd 8y agoApp Engine is really awesome! There's a few caveats I would add if you're using it for Rails or Elixir which requires the Flex environment. * No integration with Standard APIs * Slow / build deploy times * Minimum pricing of $40 per machine / month Overall, I feel like the direction App Engine is headed makes it purely better than other PaaS services but if you're running a low traffic website that isn't standard environment (Java 7/8, Python 2.7, Node 8, PHP 5.5, Go 1.6/7/8/9), Heroku is probably still more economical and better developer ux. I hope they add Ruby and Elixir to the standard environment. I don't think any other PaaS would compare.
- fishbone 8y agoI’ve been using AppEngine for years and really like it. Had an interesting billing issue recently. I enabled a task queue to run a longer running task in the background but I didn’t realize there’s a default to retry failed tasks indefinitely. This started slowly increasing my front end instance hours (and my bill). A few hundred bucks later I figured it out and specified a retry attempts limit.
- nothrabannosir 8y agoI had a similar issue and contacted them for a refund. It worked out fine and they refunded the full amount. It might be worth giving it a shot!
- Jedi72 8y agoWould love to see Google embrace Elixir, the Erlang runtime doesnt play very nicely with Kubernetes but gives so many benefits. If they can get it so that you can set up a VPS of linked Erlang nodes, it would be everything I need
- subsaharancoder 8y agoElixir on GCP https://cloud.google.com/elixir/ https://cloud.google.com/elixir/
- alasdair_ 8y agoAppengine gets very, very expensive as you scale and still has a ton of limitations that only bite you once you have some load.
- fulafel 8y agoThe generous free tier in App Engine is also very nice - lets you run a lot of personal / experimental stuff for free.
- tutanchamun 8y agoWhat happens if the free quotas are reached? Will the app terminate until the free quotas are available again, or will the user be billed?
- deleted 8y ago[deleted]