back

by jay_kyburz·14y ago·view on hn ↗
Actually, I think its great for startups. If you're a small team trying to work out what your product is, how to sell it and who is going to buy it, you have more important things to do than learn how to set up and run a server.

Once you've worked out you have a product that people want you can start thinking about managing your own servers.

People complain about migration, but its really not that big a deal.

1 comments
So instead of learning how to admin a server - a skill that is transferable anywhere and is pretty much a commodity skill for most web-based startups when they're - you know, "starting up" - you suggest people tie themselves to a proprietary app engine and datastore which limits what you can do in ways that aren't really transportable anywhere else? Spending time learning about GAE oddities, pricing limits, language limits/restrictions and such... seems a pretty horrible waste of time for people to engage in.
I've been developing on appengine for over 2 years now. Thanks to the platform, I've never been worried about traffic spikes. Whether you get profiled on TC or a celebrity tweets about your app, you know it will run. Given, you would not learn admin skills, but you'll learn a lot of other things.

I learnt how denormalized data in the datastore can help speed things up for your app. I learnt sharding thanks to app engine. The pricing has made me make use of memcache more often and trying to avoid hitting the datastore. When I look at it, I feel I've brought in more discipline in my code because of app engine. I am now in the habit of building APIs that would run instantly. If a http call takes too long, my instinct is to make it run as a background task and then return the result.

I've learnt all of these because I've been on App Engine. I can see a significant improvement in what I'm building now. The apps we build now, all our users say it's "fast and responsive". A lot of that credit goes to App Engine and the things it has taught me.

Nothing you learn in life is really a waste of time.

Great that you've learned things, but nothing you've mentioned there is specific to GAE. Many people learned abour sharding and such well before GAE even existed (indeed, perhaps even before Google existed).

This is akin to saying "Rails made me a better developer", which in and of itself is not bad or wrong, but isn't really terribly useful as a datapoint when deciding which framework to choose. Frameworks by their very nature (almost always) force concepts on you that improve your code. So too with GAE - by limiting some of what you can do, they can provide a more focused service.

That's because he/she was replying to the post above that said you can't learn any transferable skills from GAE. They were just mentioning some more abstract/general things they learned from GAE.
I've been building apps professionally on GAE for the last year, and one of the reasons I'm leaving my job is because the knowledge is non-transferrable and the platform is not really growing, as far as I can tell. It's a dead-end career wise.
Learning how to admin a server is a total waste of time which brings zero value to the end user. If I can hand that drudgery off to someone else, I'll be adding features and stealing your customers while you're giddy about colorizing your bash prompt.
Setting up a load balanced system and front-end web cache brings "zero value" to end users? You may as well make the same argument over design or for that matter development.

Learning how to program a loop is a total waste of time which brings zero value to the end user. If I can hand that drudgery off to someone else, I'll be adding features and stealing your customers while you're giddy about nesting your loops.

Learning how to use photoshop is a total waste of time which brings zero value to the end user. If I can hand that drudgery off to someone else, I'll be adding features and stealing your customers while you're giddy about reducing your PNGs.

And both those statements are true. If there's a third party that you can pay to do your photoshopping, and they deliver high-quality product, damn right I'm going to hand my photoshop jobs off to them rather than do it myself. Likewise if there were a third party development shop _that delivered higher quality than doing it in house_. Concentrate on your USP; for anything else, if you can get it done competently externally, hand it off.
Learning how to admin a server is a simple enough task for a small-ish company.

We set up on Rackspace Cloud in a couple of hours, and we're running just fine. We're lucky in that our core market doesn't give us traffic spikes.

If and when we run into scaling problems, we'll have a learning experience but that's the same whether you're on App Engine, Amazon or just a cheap web-host running PHP/cPanel/MySQL for £20/year.

Yeah, good luck stealing customers from someone else by developing for a third party's arbitrary stack, that they manage and update as they see fit, lacks tons of critical components, often sees unreported downtimes, and isn't flexible when your business needs change.
As someone who's been building major production applications on GAE for the last three years (and on traditional stacks for the decade prior), it's obvious that you haven't even cracked the manual.

GAE is not perfect but it's a much faster environment to develop on than IaaS services like EC2. I spend 100% of my time developing features and 0% of my time developing infrastructure. "DevOps" isn't even a job description in my present company.

It is true that there are occasionally some components (eg large memory indexes) that need to be "outsourced" to other parts of the cloud. It's trivial to do, but we judge each very carefully because of the added operational load.

GAE skills are also be transferable anywhere. It's by far the quickest way to setup little reliable API's like the stripe liason service I built to send email alerts about transactions with secure links to the card numbers. There's only a few transactions a week, so App Engine is free.

It's also a great queuing service for running background tasks on an infrastructure that needs zero maintenance.

The cloud is the future and GAE greatly increases your power as a developer, so I'd say learning App Engine will make you a commodity rather than someone with unwanted skills.

Instead of learning to admin a server, and then follow up with admin for the rest of your life, you can hand that duty over to experts. Should hundreds of thousands of people be engaged in doing essentially the same thing.

If you really thing appengine is shitty or overpriced, then it should be pretty easy for others to replicate and eat their lunch. The fact that no one else has managed to yet says a lot.

As an anecdote, reddit frequently has outages, they run on aws. If they switched to gae they wouldn't, it's as simple as that.

Instead of learning to admin a server, and then follow up with admin for the rest of your life, you can hand that duty over to experts. Should hundreds of thousands of people be engaged in doing essentially the same thing. =================

Yep. Everything I've ever taken up in life I'm still doing X years later. I've never ever transferred a job to someone else, outsourced a task I learned, or hired someone to do what I do. Nope. 100% of the time I'm doing everything I ever used to. Still. WTF?

I think most cell phone service is shitty and overpriced, but it doesn't mean anyone can just set up a competitor - it's extremely capital intensive to compete at that scale.

Yeah, I forgot that GAE never goes down.

http://www.crn.com/news/cloud/231001916/google-app-engine-cl...

http://groups.google.com/group/google-appengine-downtime-not...

Reddit is one of the top 1% of the 1% in terms of traffic. I suspect GAE would probably have trouble with Reddit on a global 24/7 basis. Perhaps not as much as Reddit's having themselves at times, but nothing's perfect. And I suspect Reddit's pocketbook wouldn't be able to afford the marginal benefit GAE would provide.

You're leaving out several key parts:

* reddit on GAE would have no options if they ran into a feature which is too expensive on the GAE architecture. Reddit on EC2 has been able to change their backend architecture dramatically to deal with growth and new features — that's a really powerful thing to give up since it means you aren't limited to GAE's lowest-common-denominator functionality.

* Even assuming reddit could affort to spend kilobucks per day on GAE, how many good sysadmins and developers could they hire for that same amount of money? At their scale, the answer is a LOT of people - and that gives a lot more flexibility since money going to GAE is a sunk cost which scales linearly with traffic whereas people generally give better than linear returns.

reddit on GAE would have no options

This is not true at all. It's very easy to run a hybrid with parts of your application in other parts of the cloud. I do this. There's even a remote API stub so you have direct access to the full suite of GAE APIs from servers in EC2 or whatnot.

There are certainly limitations to what you can run inside of GAE, but there's almost always a good way to work around it while preserving the benefits of scalability, multi-datacenter reliability, etc. I'm not saying it's for everyone, but it's great for most common web applications.

Costs between aws and gae are roughly the same, and architectures when you get above rdbms's are also the roughly the same.

The only real difference is that gae forces you to code for scalability while aws leaves with possibilities to shoot yourself in the foot, which reddit apparently does.

Reddit historically had an extremely poorly designed backend, resulting in lousy performance and thus the outages that people experienced at scale. This has little to do with AWS vs AppEngine, and more to do with suboptimal code being forced to run at extreme scales. Not the best anecdote, sorry.

I'll say they're getting better now--for a while they were a major PITA for AWS folks.