Hacker Newsnew | past | comments | ask | show | jobs | submit | branola's commentslogin

Any developer who was burned by App Engine pricing in the past is likely to take the lure of a "70% off" discount with a grain of salt because of the much higher cost of incorrectly relying on Google's pricing pledges.

In case anyone forgets, the pricing changes on Google App Engine caused many developers to abandon apps they had developed on the platform because of hundreds of percent increases in pricing:

https://groups.google.com/forum/#!topic/google-appengine/rSh...


I can immediately off the top off my head think of no less than four examples of useful services Google has discontinued or EOL'ed: Google Reader, Google Code, Google Wave, and XMPP support for Google Voice.

So as well as potential future price hikes, you should be prepared for the possibility that this service might not be around for the long haul. Therefore you should skip using any Google-specific functionality, and instead implement a design that allows you to easily migrate to another VM vendor.


I never got the "google shuts everything down" mentality that has become so prevalent.

I could easily beat those 4 with a multitude of examples from both Apple and Microsoft, that doesn't mean that any of them are untrustworthy, just that they evolve and continue to grow.

At least when google shuts down a service, they give a good amount of "heads up" to those using it, provide examples of trustworthy equivalent services from competitors, and ALWAYS provide an export function if it makes sense to have one.


Apple and Microsoft may discontinue support/sales but the hardware/software they sold you continues to function. That is inherently not true of "cloud" services.


> I could easily beat those 4 with a multitude of examples from both Apple and Microsoft that doesn't mean that any of them are untrustworthy

No, that's pretty much what it means. To varying degrees when you build on top of Apple, Microsoft or Google offerings, you're sharecropping rather than farming. Sometimes, they'll just find that it's in their interest to no longer lease out the farm to you -- or to change the rates/terms.

"Untrustworthy" might be an over strong term, if for no other reason than that invoking "trust" as a relevant concept in this context is probably itself incorrect.


> I never got the "google shuts everything down" mentality that has become so prevalent.

Because their early marketing led people to not expect that of google, whereas with apple and microsoft it's just business as usual.


That thing that jumps out at me from that example data set is that they were all free services. That's not to say there aren't fee-based services that Google has discontinued, or that your point isn't valid, just that your provided data points don't seem entirely relevant to me, given the subject.


Amazon has discontinued Flexible Payment Services, Amazon Webstore Services, and others. Presumably your warning to not rely on proprietary implementations is vendor-agnostic?


Pretty much.

Or at the very least: never rely on one vendor's proprietary implementation(s). Always have at least two in active use (though you can do something like using one vendor 95% of the time), and if/when one goes down make it your top priority to find another.


You're right, though I wouldn't compare App Engine to things like Google Reader. When Google EOLs a highly-visible free service like Reader, it generates a lot of outrage, but consumers can find a replacement like Feedly at reasonably low cost.

The risk of writing apps on a platform like App Engine is far greater because people tend to spend years building software and a business tightly interwoven with the platform, only to be shut down by unpredictably massive rate hikes because you basically have to rewrite to get off the platform, not just the app itself but all your ops stuff too.

While it is possible to dig yourself into that hole using lots of Amazon services, Amazon doesn't require you to use platform-specific APIs, many of their services like EBS are very easy to replace, and Amazon's services have not been subjected to the same project-ending rate hikes. In practice, people move on and off EC2 all the time. So if you are going to trust a vendor, it's more reasonable to trust Amazon.


This is Compute Engine, not App Engine.

App Engine has a very idiosyncratic API; GCE is more or less a direct clone of EC2.


Google AppEngine is just one part of Google Cloud. The discussion and article at hand are specifically about Google Compute Engine.


App Engine was in preview when its price changed.


It was in "preview" for 3 years.

During those 3 years no warning was given that the pricing changes were going to be of such a magnitude.

As a result people had sufficient time and not enough warning to build entire businesses on an infrastructure that they later had to abandon.

That's unforgivable.


The new pricing made it App Engine a sustainable business, because the old pricing model didn't actually account for costs and encouraged some very wasteful practices. The only other option to actually charging enough to cover costs would be to shut the service down. I'm sure more people would be more upset about that.

App Engine has always been a unique PAAS because its APIs were designed to try to force developers into better distributed app architectures. The non-relational DB with entity groups and limited queries, the 30s request limit, originally not offering long-running instances, the task queue, memcache as a service, all made for scalable apps.

But the costs unfortunately weren't designed the same way. Charging by CPU time, and having datastore access free was especially bad for a market where apps typically use very little CPU, but access data a lot.

A lot of blog posts came shorty after the price change that said after making the recommended changes to datastore calls, and enabling multithreading that they got their bill down and performance up significantly. Many apps were doing absolutely no caching, or logging every request to the datastore, because datastore was ridiculously cheap for small records. Some were doing what should have been batch work per-request because they didn't use task queues.

Since 2011, I think all price changes with Google Cloud have been price drops, some pretty big. Last year, App Engine prices were dropped 30%.


It was Google, not the users, which set the old pricing model which people optimized for when they wrote their apps. Many apps which had to be shut down were already doing "right" things like caching, using task queues, and economizing on datastore accesses. It was Google, not the users, which designed App Engine so that porting away would essentially require a rewrite. It was not the users but Google which neglected certain popular language runtimes so that they were no longer cost-effective after the price hikes. And it was Google, not the users, which kept the issue opaque so there was no warning of how big the price hikes were going to be. If certain users found that they could sustain a double or triple bill, that doesn't mean it is the fault of the other users that they were forced to mothball their apps.

The users didn't decide any of these things, and are not to blame for them. What kind of service blames its customers for its own mistakes?

Google earned this distrust fair and square by suddenly forcing huge numbers of customers to rewrite all their existing code. Little price cuts don't matter: other services are already more cost-effective and are cutting their prices all the time, but even if there were price parity the risk attached to the lock-in just isn't worth it.


I don't think they are blaming the customers, and if you read posts from back then, I think they take a similar tone: they didn't get the pricing model right, and in order to make App Engine a real sustainable product with an SLA, they needed to update the pricing.

https://plus.google.com/110401818717224273095/posts/AA3sBWG9...

As for the unique API, of course some of it's unique, because there weren't any standard APIs for the unique parts. Datastore is based on Google's internal NoSQL store. There's are/were standard APIs for NoSQL. Same with Task Queues.

The "proprietary API" bit is overblown though, IMO. The Python version shipped with a somewhat tweaked, Django support, and has grown to support WSGI and standard Django. The Java version uses Servlets with some constraints. Memcache is pretty standard. You can pretty easily abstract away the proprietary bits to run on a standard stack, or use an open source implementation of the APIs.


Nit: it looks like it's been 60 second limit on requests since release 1.5.5:

http://googleappengine.blogspot.com/2011/10/app-engine-155-s...


They published the pricing in May. Nobody cared until the calculator came out in September. You're selling it like Google gave everyone a week.

The price increase also came with an SLA. Just to be clear, you're saying that businesses were entirely built atop a product with no SLA, and that's not the bigger problem?


> build entire businesses on an infrastructure that they later had to abandon.

Frankly, if your business is built entirely around a single 3rd party provider, and you are totally incapable of pivoting cloud providers at short notice... well then you are "doing it wrong".


That's the point that was made above. Don't build anything that relies on this architecture unless you can migrate.


Like Netflix? They seem to be doing alright.


> Like Netflix? They seem to be doing alright.

Could you elaborate a little?

Netflix doesn't rely on a single provider for hardware, data centers, nor bandwidth. Sure they use EC2 for some things, but also have a great deal of hardware in data centers throughout the country, as well as custom hardware in ISP data centers, etc. I'd be shocked if there didn't use some of the other cloud provider offering too.

Netflix has no single point of failure.

Building your business around a single cloud provider creates a single point of failure.


That goes back to 2011. Has anything been changed on people more recently?


yes: http://techcrunch.com/2014/03/25/google-drops-prices-for-com...

I run a $MM enterprise business almost entirely on GAE/python with a staff of ~40, public-facing site, etc and the monthly bill is under $1500/mon. Sure, I'd prefer lower $ and faster performance but truthfully, I'm no longer complaining: GAE/python saves me $$$ in IT staffing costs including security upgrades on dozens of packages that are either pre-integrated or I don't need at all (SQL & NoSQL databases incl multi-DC failover, memcache, reverse proxy, email hosting, auto-scaling, etc. etc.)


This doesn't surprise me at all. It is trivial to run a site on app engine that can handle hundreds of requests a second continuously without leaving the free tier.

Sure, when the change from billing CPU time to instance hours came in some app's bills sky-rocketed. But that was because they were poorly coded such that instances were blocking and unable to serve incoming requests.

With a thread safe application and the proper configuration there is absolutely no reason why instance-hours pricing shouldn't be competitive.


> This doesn't surprise me at all. It is trivial to run a site on app engine that can handle hundreds of requests a second continuously without leaving the free tier.

Really? The free tier comes with 28 instance hours per day. That'd mean your app would have to serve hundreds of requests per second, meaning each request must take substantially less than 10 ms, on a 600 MHz, 128 MB RAM machine.

If your request do any work at all, I doubt you can handle them in <10ms on a 600 MHz CPU.


>meaning each request must take substantially less than 10 ms

Correction, each request would need to have less than 10ms of CPU time - the instances support concurrency.

My web frontend, by design, does very little - any CPU heavy operations are done by other systems using the task queue. Writing it in golang has helped as well, wouldn't get that performance from python.

Write a simple Hello world example in golang and get it to do some mathematical calculations to simulate "work", I think you'll be surprised at how many requests a second you can squeeze out of a single instance.


Yes, the 10 ms would be CPU time, not wall time.

But still, 10 ms really is not a lot on a 600 MHz machine. How long does your front end take to serve one request? How many qps do you serve from a single instance?

I have some go code with a trivial, completely unoptimized blog, rendering a couple of articles. Poking at appstats suggests I spend a bit more than 10 ms CPU time, App Engine reports ~30 ms CPU time.


Typical request: "X-AppEngine-Resource-Usage ms=259 cpu_ms=4"

That particular request is authenticated, writes a file to google storage, and then returns a response (with a few other things like logging etc.)


Before the pricing change app engine did not support concurrent requests to a single instance for python. As a result, applications used many more instances than they needed.

When using the calculator this would make the price increase seem enormous to many customers. When concurrent request support was added (it was available to trusted testers at this time) all a user would have to do was add "threadsafe:true" to the app.yaml file to enable it (assuming their code wasn't doing anything silly).


Deploying to app engine caused us big pain in the long run. I just had to spend two days migrating a legacy app to the new hrd. The migration was painful, app engine "billing bugs" when upgrading etc made the process real hard.

Also when the bugs occured, I realised there was no way to get quick support.

Thankfully we moved our main app away to ec2 around when they increased the pricing a couple of years ago.


Stopped clicking with a mouse completely and never looked back. Dwell clicking apps are a godsend for anyone with mouse-related injuries.

http://code.google.com/p/windows-dwell-clicker/


Is this something one could use as an alternative to "HTML5 Boilerplate" or does it serve a different purpose?


HTML5 Boilerplate uses normalize.css. See http://html5boilerplate.com/docs/The-style/


Uhm, the largest "html5 boilerplate" actually uses normalize. Normalize.css straightens the subtle differences in the default stylesheets for the different browsers. It is css only, not really a template. It is like giving different car manufacturers specs and designs to build a car. They all build the same car but slightly different. Normalize tries to make them look all exact the same (they still behave different though)


Sierra Nevada will receive $212.5 million

Didn't realize beer was such an integral part of space exploration.



I prefer Mousetool (on Windows at least):

http://code.google.com/p/windows-dwell-clicker/


I agree that the post is mistitled and should be called Why you need side projects. The two quotes at the end of the piece support this:

“If you observe a really happy man you will find him building a boat, writing a symphony, educating his son, or looking for dinosaur eggs in the Gobi Desert.” - Australian psychiatrist W. Béran Wolfe

“Find a happy person, and you will find a project.” - Sonja Lyubomirsky


I haven't read the article yet, going there next, but I really like that last quote:

'“Find a happy person, and you will find a project.” - Sonja Lyubomirsky'

I think of people who often try to make an unhappy person their pet project. It would be an interesting twist to do the reverse. As a life-long pessimist I have made many happy people feel sad. Were these my projects?


Pessimists are people that default to expecting the worst outcome. I know happy pessimists and unhappy pessimists. People who have left a trail of many happy people feeling sad behind them are called assholes.


I understood that quote that if you find someone working on a project, they are happy.


A little off topic, but: Sonja Lyubomirsky's book on happiness is great. A friend gave it to me as a birthday gift a few years ago.


It´s better to test your idea if you have the optimal (or at least necessary) structure for that. I call it "company".


Reminds me of Stewart Lee's standup bit on "the values of the Carphone Warehouse" (a British mobile phone retailer):

http://www.youtube.com/watch?v=GwH1fLEMDkY


Thanks for posting this. Seriously funny.


Not bad. But I prefer WiredDeals:

http://wireddeals.com/

The advantage of WiredDeals over DealsFerret is you can run searches and see the latest activity on the big deals sites without needing to sign up for an account. And, like DealsFerret, you can sign up for an account if you need alerts. I'm not associated with WiredDeals, by the way. Just an avid user for several years and like not having to dig through the big deals sites to see what's happening on a regular basis.


Love it! . . . But . . . I have Chrome set to delete all cookies whenever I close my browser and to save session cookies otherwise. So this extension works as long as the browser hasn't been closed once. But after the browser is closed and cookies deleted, the extension forgets what has been read when HN is reopened.


Actually it uses html5 localstorage, but if you delete that too, the list gets reset...


What parameters are you using to define who the "best" coders are?


The key is finding the best fit, not only the "best" Coders. People try to use numbers to evaluate candidates, but at the end of the day, we're all human.


/raising hands/ Oh me me me me... let me answer that... me me me...


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: