10 ms·
App Engine for Go Now in General Availability
- melling 11y agoI've been using Go on App Engine for the past 6 months for a weekend project. My goal is to build a little search engine for Swift language/iOS resources. At the moment, I don't crawl any sites, just search titles and tags. I've been happy with the performance. Seems snappy? http://www.h4labs.com/dev/ios/swift.html http://www.h4labs.com/dev/ios/swift.html Anyway, I'd like to hear from other Go web developers. Libraries, frameworks, etc that work well on App Engine.
- karangoeluw 11y agoAre you making the code open?
- melling 11y agoHard to say. My current plan is to simply cobble something together. I do have a simple Go Web Server that I used when I started my other Go web server on Digital Ocean: https://h4labs.wordpress.com/2014/10/13/simple-go-web-server/ https://h4labs.wordpress.com/2014/10/13/simple-go-web-server... Direct source: https://github.com/melling/GoWebServer https://github.com/melling/GoWebServer Go on App Engine is not hard: https://cloud.google.com/appengine/docs/go/ https://cloud.google.com/appengine/docs/go/
- quadrature 11y agois it supposed to look like this http://imgur.com/0vngGP1 http://imgur.com/0vngGP1 or is the CSS messed up ?
- melling 11y agoYes, I'm an engineer. :-(. I was going for a simple Google results look. I had something that I thought was nicer but Google wanted mobile ready pages so I made it sparse.
- quadrature 11y agoNo worries, I was just wondering if something was wrong on my end. There's a lot of simple things you could do to make it look better, you can start by pushing the whole site up. Right now most of the valuable content happens below the fold of the site. A lot of the stuff on top either doesn't need to be there or doesn't need to be the size that it is, so just prioritizing the screen space for results would go a long way. Then you can do simple things like adding dividers between results. This looks a lot cleaner and usable http://imgur.com/zLdnKuy http://imgur.com/zLdnKuy edit: also you can just twitter bootstrap everything together
- melling 11y agoThanks. I'll give it a try.
- ariwilson 11y agoNice! I've been using this for a few years for my Scrabble solver app but it's good to know they've committed to it for the long term :).
- pekk 11y agoWhether to use Go on App Engine or not is a much less important question than whether to use App Engine or not. Java is also a good choice on App Engine. But either way, using App Engine dramatically affects almost any decision you'll make about how to build, and it ties your fortune to the sometimes-capricious product decisions made for App Engine.
- ryandvm 11y agoThis cannot be stated strongly enough. App Engine is a powerful platform, but the lock-in is very real. It's not that Google prevents you from getting your data, but as you develop you start to lean on more and more App Engine specific services (e.g. Datastore, identity, images, task queues, etc.) just because they're so convenient to integrate with. You also have to engage in a lot of funny little hacks to deal with App Engine idiosyncrasies. The next thing you know, you've got 50,000 lines of code and the thought of porting it all to another platform with an identical topology is hardly any more palatable than the prospect of rewriting it all from scratch (since you've invariably accumulated warts you'd like to refactor anyway). App Engine is great for MVPs and toy projects. And it can be great for large scale projects, but you better be sure you'll never want to run it anywhere else...
- melling 11y agoKhan Academy runs on App Engine: https://cloud.google.com/files/KhanAcademy.pdf https://cloud.google.com/files/KhanAcademy.pdf
- jamra 11y agoOne of the techniques to mitigate that problem specifically in Go is to create interfaces for everything. For example, instead of calling the datastore directly, create an interface with only the methods you need. Then, if you need to swap out your data store, you do so from the implementation of the interface, not having to change the code your business logic runs in.
- Jabbles 11y ago
- chrisfosterelli 11y agoI've been trying out App Engine for Go the last couple weeks for a side project, but it's been a bit of a headache. Having to use their data store was a little annoying to begin with, but I was able to get past that one. Once I started playing with user accounts I was very frustrated to learn that they only support Google Account login functionality... I have been looking at implementing my own but Go doesn't appear to have a common authentication package and the advice often seems to be "roll your own". Any advice for doing this? That said, this is the only Go hosting service I could find that has a free tier and their development binaries are very well done!
- sktrdie 11y agoThe only reason I use AppEngine is because they offer free hosting. I guess we have to pay the price of using proprietary APIs for free stuff.
- pekk 11y agoIf cost is your main concern, you can get VPS hosting from a dollar a month.
- sktrdie 11y agoIs it as reliable as AppEngine?
- moe 11y agoIf you're willing to spend $5/mo then DigitalOcean is a safe bet with excellent reliability. If you're a new customer then google for a Coupon before you sign up (saves you $20). Don't try to go even cheaper, that way lies madness.
- d_luaz 11y agoYou cant compare AppEngine with DO or Heroku with AWS. Yes, AppEngine is costlier than DO 5-10X is comparing cost of computation power. You pay the price for not having to deal with DevOps, scalability and some cool API/services.
- 0xFFC 11y agooff topic , Do you think they will do same thing for dart too ?
- yowmamasita 11y agoProbably not. But you use Dart, NodeJS and any other languages with Managed VMs https://cloud.google.com/appengine/docs/managed-vms/ https://cloud.google.com/appengine/docs/managed-vms/
- nodivbyzero 11y agoThis is good news. Just out of curiosity, how App Engine with Golang is different than Digital Ocean with Golang????
- tonyarkles 11y agoI haven't used App Engine+Go yet, but did a bunch of work with AE+Python a while back. The biggest difference is that you don't have to do any server management. You toss your app to Google, and they handle all of the deployment, distribution to multiple machines, load balancing, etc. I'm assuming that's the case for AE+Go as well.
- fmstephe 11y agoDigital Ocean is (I believe) a virtual machine hosting service. You get a VM with some OS and an ip address. Google App Engine is a very tightly controlled, and very inflexible, system for deploying applications which use google's App Engine services, Datastore, task-queues and an array of other useful things. App Engine provides a very restricted development environment, you can choose from three programming languages, Python, Java and Go. For each of these they provide a custom modified runtime/compiler for running/building your application. The trade-off for this is that App Engine is able to automatically scale the number of instances of your application running to meet user demand (if you are able to pay for it). The restricted environment is somewhat idiosyncratic and is designed for scalability of stateless servers with a large, also idiosyncratic, datastore with memcached caching for speed. Good for a wide range of web-service development preferably with lots of independent requests which touch separate pieces of data. It may not sound like it from the description, but I really like App Engine. But, it is important to know what it is for, and what it is not for. Give it a try :)
- jsolson 11y agoIt's not so restricted if you use Managed VMs instead of (or in addition to) the sandboxed App Engine: https://cloud.google.com/appengine/docs/managed-vms/ https://cloud.google.com/appengine/docs/managed-vms/
- webkike 11y agoI have been really enjoying Go App Engine support for some time now. It's pretty convenient to write web apps in Go, although to be fair all my projects have been super simple. I don't really have any experience making anything beyond a simple forum.
- alanh 11y agoPSA: Google is notorious for blatantly lying about App Engine availability. Today’s yellow alerts and red exes, on the uptime/status page, somehow always become yesterday's green checks. (This was a first-hand source of frustration for the team I was working with a few years ago.) You have been warned.
- crb 11y agoOn the contrary, check out https://status.cloud.google.com/summary https://status.cloud.google.com/summary. Serious incidents (eg https://status.cloud.google.com/incident/appengine/15019 https://status.cloud.google.com/incident/appengine/15019) include a full incident report, including root cause analysis,.
- jfoster 11y agoThere have been incidents that Google didn't acknowledge at all. There was one day where all sites using custom domains were redirected to Google.com for several hours, including their own Chrome Web Store. (which, I presume, runs on App Engine) It eventually resolved after a few hours, but both during & after the incident, there wasn't any public communication from Google. https://groups.google.com/forum/#!topic/google-appengine/IIvw-WuBY2A https://groups.google.com/forum/#!topic/google-appengine/IIv... https://groups.google.com/forum/#!topic/google-appengine/voRDhS3nS78 https://groups.google.com/forum/#!topic/google-appengine/voR...
- alanh 11y agoWell I can certainly hope they upped the honesty factor. (My experience is from 2010 & 2011. If the page you linked to is indeed the new version of the one I recall — is there no standalone App Engine status page? — then it’s certainly be massively redesigned.)
- fizx 11y agoAWS is notorious about displaying outages as green (plus an "informational message"). I think we can assume that everyone games the numbers as hard as they think they can get away with.